单租户SaaS架构

也被称作多实例架构,指的是为每个客户单独创建各自的软件应用和支撑环境。单租户SaaS被广泛引用在客户需要支持定制化的应用场合。每个客户都有一份分别放在独立的服务器上的数据库和操作系统,或者使用强的安全措施进行隔离的虚拟网络环境中。

多租户SaaS架构

应用都是运行在同样的一个或者一组服务器上,被称为“单实例”架构(Single Instance)。
多租户比较适合通用类需求的客户,即不需要对主线功能进行调整或者重新配置的客户。多个租户的数据是保存在相同的位置,并且通常是依靠分区来确保租户之间的数据隔离。

  • 多租户可以分为几个不同的类别:
  1. 云中的简单虚拟化,其中只对硬件进行共享。
    它提供了最强的分离度,租户的数据彼此物理不可见,备份与恢复都很灵活,但是资源共享低,成本高。
  2. 共享应用程序,对每个租户使用不同的数据库。
    租户间数据彼此逻辑不可见,上层应用程序的实现和独立数据库一样简单,但是备份恢复稍显复杂
  3. 共享应用程序和数据库(效率最高,真正的多租户)。
    租户数据在数据表级别实现共享,它提供了最低的成本,但是引入了额外的编程复杂性(程序的数据访问需要用 tenantId 来区分不同租户),备份与恢复也更复杂。
  • Hibernate中的多租户
    Hibenate4.0 开始支持多租户架构——对不同租户使用独立数据库或独立 Sechma,并计划在 5.0 中支持共享数据表模式。
  • 数据安全性问题很重要

参考

http://www.ibm.com/developerworks/cn/cloud/library/cl-multitenantsaas/