多租户架构对云计算的影响

时至今日,企业云的部署早就已经不再是实验性和探索性的了。IDC的研究表明,2009年全球3590亿美元的IT支出中有170亿美元用于云计算。调查还显示,2/3被调查者有扩大使用公共云的计划。当然,这并不是说云计算的部署和应用就没有问题,比如企业如何根据不同的应用类型选择不同类型的云就存在困惑。

尽管理论上说,企业可以根据应用系统的不同特性在私有云和公共云之间进行选择,而实践中常常只有大型企业才有这样的选择权,它们可以根据应用的不同需求在两种云之间选择更合适的,而对中小企业和初创企业而言,由于经济上的原因可能更倾向于采用公共云来支撑其几乎所有的应用。

除了对应用系统的特性进行分析外,云平台及其软件的架构也是选择云服务时需要考虑而被忽略了的关键因素。尤其是多租户架构(Multi- tenancy),严格地说来,了解多租户架构应该是企业将IT应用迁向云端的关键的第一步。

实际上,无论企业是准备采用公共云还是建设私有云,仔细了解多租户架构都是非常必要的: 如果企业准备采用公共云,CIO需要了解公共云的服务供应商对多租户模式的支持程度;如果建设私有云,设计多租户架构的全部责任就落在CIO及其领导下的 IT部门身上,更有必要了解多租户的架构。过去,基于互联网的应用大多采用多用户共享的模式,这使得今天很多用户看到"多租户"这个概念的时候仍然把它看成是过去的那种共享模式。其实,它们是不同的概念,特别是,今天的多租户是建立在应用层,而不是以用户为单位。

何谓多租户?

这里说的"租户"可以是任何企业中的任何一个应用程序(既可以是企业内部也可以是企业外部),这个应用程序有自己的安全需求和专用虚拟计算环境,这个环境可能包含企业IT架构中的几层或者全部,从最基础的存储到用户界面。比如所有的交互式应用在本质上应该是面向多用户或者说"多租户"的。

一个运行在企业内部私有云上、处理企业内部敏感数据的部门级应用程序与一个运行在公共云中面向全球市场发布公共产品目录的应用程序,从"用户" 这个角度来说没有什么不同,无论这个程序是运行在企业内还是企业外,它们都具有相同的面向多用户的架构。应该说,"多租户"是私有云和公共云都具有的共同特征,它可以体现在云的三层中,即IaaS(基础设施作为服务)、PaaS(平台作为服务)和SaaS(软件作为服务)。

以IaaS为例来说明。实际上,如果从架构上来说,无论是公共IaaS还是私有IaaS都已经不仅仅是诸如虚拟化、按云的使用进行收费以贯彻 IT即服务的理念等这些技术,IaaS已经超出了这些技术的范畴,它还应具有完善的制度,诸如服务级别协议、用于安全接入的身份管理、容错、灾难恢复、按需订购以及其他一些关键特性。如果能在基础设施层上提供这些共享的服务,则这样IT基础设施(或者说云)在一定程度上就自动地具有了多租户的特性。

云的多租户特性并不仅仅限于IaaS层,包括PaaS层(如应用服务器、Java虚拟机等)、SaaS或应用层(如数据库、业务逻辑、工作流程和用户界面)也需要有多租户的特征。只有这样,每一个"租户(或者应用程序)"才可以充分享受到云的所有通用的服务,根据云所能提供支持多租户的程度这些共享的服务可以从硬件层一直到用户界面。

如何判定能否支持多租户

我们通常所说的应用程序对多租户的支持程度,其判定依据是基于多少核心应用层(或者SaaS)是可以让各个"租户"共享的。完全支持多租户模式指的是允许多个"租户"共享数据库的表空间、支持对业务逻辑、工作流和用户界面的定制。换句话说,所有SaaS的子层都提供对"多租户"的支撑能力;而最低程度的支持"多租户"也至少意味IaaS和PaaS层可以共享,只是每个"租户"有自己专有的SaaS层;中等程度地支持"多租户",则是具有同样特征的一组"租户"共享数据库的表空间(schemae)及其他应用层,而不同组的"租户"有其自己的数据库和应用程序。

这里对应用程序或者云对"多租户"的支持程度做个总结:

● 最高级别: 不仅IaaS和PaaS支持多租户,SaaS也完全支持多租户。

● 中等级别: IaaS和PaaS支持多租户,SaaS部分支持。

● 最低级别: IaaS和PaaS是多租户,SaaS是单租户模式。

在对多租户模式的支持方面,Salesforce.com是做得比较好的,它有7.3万名客户,这些客户由8~12个多租户的实例(包括 IaaS / PaaS的实例)提供支持,比率为1:5000,换而言之,每个多租户实例支持5000个用户共享相同的数据库表空间;而另一个金融系统的SaaS供应商 Intacct,比Salesforce.com差一些,它有 2500多家客户,共有10个实例提供支持,比率为1:250。

在私有云方面,对多租户的支持普遍不如公共云高,比如SAP的Business By Design,其应用层是用户独享的,因而更适合某些大型的企业客户。

如何选择?

那么,我们在选择公共云服务或者自建私有云时,到底需要云平台多大程度地支持多租户模式?这里没有唯一的答案,适合自己的才是最好的。首先,要认真研究企业的应用系统的特征,包括应用系统的功能和它的重要程度、业务量的变化范围、安全要求等。

对多租户的支持程度较高的云平台通常更适合跨行业的、通用性的应用,例如目录管理和销售人员管理等。基于这个云平台上的应用程序可以很容易地共享存储空间、数据库的表空间等,并且由于供应商和企业集中了自己的技术力量在不断开发和完善这些通用的功能和共享的服务,从而让用户可以很快用上这些新功能。另外,这些应用程序通常对加密和认证的要求很低。

这就是为什么公共云通常更愿意采用支持多租户模式的平台来部署一些通用性的应用的原因,如电子邮件、企业协同、费用报表、旅行核定以及正式生产前一些活动(如产品开发、用户培训、功能测试和验收)。

对于企业的每个应用,IT部门都需要确定其对多租户模型的需求程度,并据此从众多候选供应商中选择一家合适的供应商。

除了部分应用对企业非常重要或者企业的技术力量实在不足之外,私有云的建设任务通常都落在了IT部门。而如今在市场上有不少宣称自己是支持多租户架构技术的,因此,为了建立一个多租户架构的企业内部云,IT部门必须仔细对这些供应商进行评估,然后建立自己的IaaS、PaaS和SaaS层,以支持建立共享的服务和共享的数据库表空间。

"多租户"是云计算的核心原则。虽然"多租户"借鉴和发展了很多主机计算的概念,并把这些概念带到了x86服务器的生态系统中,但它对原来的概念进行很多延展,以支持数以千计的企业内和企业外的"租户",这个过程是复杂的,不少甚至是革命性的,也是值得赞扬的。只有当"多租户"的理念渗透到到公共云和私有云的所有层次,云计算所承诺的可扩展性得到改善、更灵活也更经济这些特性才能真正得以实现。