- 1. Multi-Tenant SaaS ApplicationsMaintenance Dream or Nightmare
--汇报人:邹立达International Workshop on Principles of Software Evolution 2010
- 2. 1.什么是多租户多租户是一种结构---服务提供节点提供一个应用程序实例,多租户共同访问该实例。
- 3. 2.多租户的好处在服务端,应用的部署变的简单了。因为我们只需部署一个实例即可。
高效地利用硬件,节省成本。特别是对中、小企业有吸引力。
- 4. 3.多租户模式的困难企业担心初始成本过大。
现有的单租户程序如何迁移到多租户程序。
用户担心维护时,需要复杂地定制,维护成本高。
- 5. 4.1多租户的定义多租户应用---多个租户共享硬件资源,硬件资源提供一个共享的应用和数据库实例。每个租户认为自己独占资源,因为实例提供高度的定制以满足租户所需。
租户---是指求租SaaS解决方案的企业实体。一个租户一般会有多个用户。
- 6. 4.2定义强调的关键几个方面共享硬件资源
高度定制的软件
只应用一个实例(程序、数据库)。
- 7. 4.3多租户与多用户的区别相同点---共享应用
不同点---多租户支持高度定制。
交互界面不同
工作流不同
SLA不同
- 8. 4.4多实例的特点多实例给每个租户一个独立的实例,利用虚拟化技术可以很好地在云环境应用。
缺点---只能在较少的租户数量下。
实例过多,管理困难。
资源占用较多。
- 9. 5.1多租户的特点硬件共享
虚拟机,内存占用过大,限制租户数量
共享程序、独立数据库
共享程序、共享数据库、独立table
共享程序、共享table(pure multi-tenant)
- 10. 5.2多租户的特点用户定制
用户可根据自己的需要自行定制应用程序。
应允许多个版本同时运行。
- 11. 5.3多租户的特点共享实例
方便部署与管理
易扩展
为数据集成提供便利。因为用户数据集中到一个地点。
- 12. 5.4多租户的优点总结硬件资源高利用率
应用程序的易管理性
低成本
为数据集成提供机会
- 13. 6.挑战性能
初衷,按需所取。
资源阻塞:一个租户阻塞式地占用大量资源,会对其他租户有影响。
多实例的解决方案:平均分配硬件资源,利用率低
共享table的方案(pure multi-tenant)还没有提出
- 14. 6.挑战扩展性
可假设中小企业的数据可放置在一个节点上。
租户可能分布在各个国家。
安全
租户不想把自己的关键数据暴露给竞争对手。
- 15. 6.挑战零当机
租户数量持续增加需要横向扩展,多租户系统版本演化成为常态。
不能干扰当前租户的使用
每小时当机成本4500K美元。
维护
软件需版本演化
在演化时,多租户模式更新较少的实例。但增加了软件设计的复杂度。
需研究,评估硬件和部署的好处是否大于维护成本增加。
- 16. 7.多租户结构设计
- 17. 7.1租户验证层确保每个租户只能访问自己的数据
用户属于租户
- 18. 7.2定制层交互界面布局---比如主题与风格
通用定制---比如密钥设置、个人资料
文件I / O配置组件允许租户设定的文件规范---比如产生报告
工作流定制---比如ERP,每个企业的工作流程是不一样的。
- 19. 7.3数据库层隔离租户---通过映射为每个租户进行记录。
查询---确保用户查询的只是自己的数据。
负载均衡---提高性能、SLA约束
特殊要求---程序指定数据存储地址
希望能根据租户信息,自适应高效的平衡负载。
- 20. 谢谢!