当用户选择一个SaaS技术路线的时候,会面临“多租户SaaS”和“单租户SaaS”两个选择。尽管大部分的ISV提供的是多租户的SaaS,但开发者同样需要知道这两种架构的区别,以保证选择了正确的路线。当前和未来的功能需求,行业的细分,安全的考虑,这些都是选择需要考虑的要素。
下面是一些关于“多租户SaaS”和“单租户SaaS”架构对比的汇总。
什么是多租户SaaS架构?
在一个多租户的环境中,应用都是运行在同样的一个或者一组服务器上,被称为“单实例”架构(Single Instance)。多个租户的数据是保存在相同的位置,并且通常是依靠分区来确保租户之间的数据隔离。正因为所有的应用都运行在相同的服务器(组)上,就必须有一个标准的SaaS架构,包含了对硬件、网络以及操作系统的相同配置能力。
鉴于多个用户在运行相同的应用实例,并且所有的数据都保存在一个多租户隔离的数据库中,单一用户仅仅有有限的能力,或者压根没有能力,去做一些在基础功能集上的定制化。这个不仅指的是功能本身会受到限制,更说明在这种架构下很难实现定制化。因此,多租户比较适合通用类需求的客户,即不需要对主线功能进行调整或者重新配置的客户。
这种标准化对于一些希望使用开箱即用的软件的客户是一个福音。大部分知名的SaaS提供商,都非常擅长分析和预测他们客户的需求,并且以标准化的版本提供最相关的功能。很多时候一个“多租户SaaS”会选择一部分特定群体的客户作为他们预售版本的体验者,来快速验证和测试他们的产品。
关于多租户特性是否是SaaS软件的必要特征,业界一直有着争议。而且,这种特性还被一些SaaS提供商认为是“真SaaS”的标识特性。但是,我们可以从下面看到,单租户SaaS同样有着他们与众不同的优势。
什么是单租户SaaS架构?
单租户SaaS架构,有时也被称作多实例架构(Multiple Instance),指的是为每个客户单独创建各自的软件应用和支撑环境。单租户SaaS被广泛引用在客户需要支持定制化的应用场合,而这种定制或者是因为地域,抑或是他们需要更高的安全控制。通过单租户的模式,每个客户都有一份分别放在独立的服务器上的数据库和操作系统,或者使用强的安全措施进行隔离的虚拟网络环境中。
在一个单租户SaaS的环境中,每个租户购买特定的软件实例,并通过客制化满足他们的特定需求。虽然这些云服务提供商提供了基础的功能,用户能够得到很多的可配置能力:比如,用户可以调整不同的配置需求,向内部数据库或者外部合作伙伴的数据库添加不同的模块。
究竟哪个更合适?
虽然多租户环境很安全,并且足以满足很多公司的需求,但单租户SaaS可以提供更高的安全管控,毕竟公司之间的数据泄漏的可能在技术上就被禁止了。出于这个原因,单租户的架构有时候适合某些需要安全管控、甚至必须有法律合规性要求的行业。同时,定制化需求大于通用化需求的软件,同样不适合采用多租户的架构。
不能单纯脱离应用场景来评价“多租户SaaS”和“单租户SaaS”谁更好,每个都有自己独特的差异化优势。如何使用,取决于你的运行位置、行业、安全规定、IT能力,以及相关的其他因素。