• 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. 谢谢!