一个租户就是一个客户,例如我们开发的产品是给到某个企业使用,那么该企业就是我们的一个租户。
多租户技术或称多重租赁技术,是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。
简单讲:
在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重点就是同一套程序下实现多用户数据的隔离。
开发人员辛辛苦苦开发出来一个产品,最好的情况是可以同一时候提供给多个客户使用。这样可以大大减少服务的运维成本:节省资源——将服务所需资源利用最大化(运维团队统一、硬件使用等)。
另外,这样也能够减少服务的开发成本:我们仅仅需要考虑怎样实现单用户的服务逻辑,业务逻辑相应其全部客户都是同样的,不管什么客户来使用,程序提供的服务都是一样的,我们需要关注该服务的业务逻辑怎样实现。
从上述理解租户概念的过程中,我们了解到,多租户实现的核心是数据隔离。在当下云计算时代,多租户技术在共用的数据中心以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍可以保障客户的数据隔离。目前各种各样的云计算服务就是这类技术范畴,例如阿里云数据库服务(RDS)、阿里云服务器等等。
那么如何进行设计呢?多租户在数据存储上主要有三种方案:
简单的说,就是一个租户的背后就是一个数据库,该方案的用户数据隔离级别最高,安全性最好,但成本较高。
优点:
为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。
缺点:
增多了数据库的安装数量,随之带来维护成本和购置成本的增加。
即多个或所有租户共享Database,但是每个租户一个Schema。
优点:
为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可支持更多的租户数量。
缺点:
如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据;如果需要跨租户统计数据,存在一定困难。
注解【Schema】:在数据库中,schema是数据库的组织和结构。模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)等。数据库模式可以用一个可视化的图来表示,它显示了数据库对象及其相互之间的关系。
即租户共享同一个Database、同一个Schema,但在表中增加TenantID多租户的数据字段。这是共享程度最高、隔离级别最低的模式。
优点:
该方案的维护和购置成本最低,允许每个数据库支持的租户数量最多。
缺点:
隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量。
衡量三种模式主要考虑的因素是隔离还是共享。
成本角度因素
隔离性越好,设计和实现的难度和成本越高,初始成本越高。共享性越好,同一运营成本下支持的用户越多,运营成本越低。
安全因素
要考虑业务和客户的安全方面的要求。安全性要求越高,越要倾向于隔离。
从租户数量上考虑
系统要支持多少租户?上百?上千还是上万?可能的租户越多,越倾向于共享。
平均每个租户要存储数据需要的空间大小。存贮的数据越多,越倾向于隔离。
每个租户的同时访问系统的最终用户数量。需要支持的越多,越倾向于隔离。
是否想针对每一租户提供附加的服务,例如数据的备份和恢复等。这方面的需求越多, 越倾向于隔离。
信息监管因素
要考虑政府,机关,企业,公司的安全和信息监管相关的一些政策和规定。
技术储备
共享性越高,对技术的要求越高。
CMP中的租户,主要以企业内部的组织架构为基础进行划分,在单客户下的租户数量并不会非常多,涉及的数据也主要是云资源相关数据。综合考虑第三种数据存储方案更加适用于CMP产品,整体的开发维护成本也较低。
产品的租户体系:
产品基于腾讯蓝鲸平台,CMP建立租户的时候以蓝鲸平台的组织为基础,可以将组织人员全部纳入租户,并进行部门、项目的创建以及人员分配,实现不同人员管理不同资源。从而实现所有云资源的高效、有序管理。
租户定义页面:
纳管资源(原理上即是对数据进行隔离):
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。