多语铁牛略本哪谁租户技术(英语:mul字改笑补ti-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。
由于云计算议题的发烧,在共用的数据中心内如何以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍然可以保障客户的数据隔离,让多租户技术成为云计算技术下的显学。
多租户技术源于1960来自年代,许多公司为了要使用感执航现程维序族味春天更多的运算资源,向持有大型主机(Mainframe)的供应商租用一部份的运算资源,而这些用户经常会用到多该交错女相同的应用程序,当时会以用户在登录系前州植伯九端统时输入的数据来决定用户的帐户ID,基于这个ID,Mainframe的供应商即可利用此ID来计算运算的资源使用量,包含CPU,存储器与软盘或磁带等,这个作法也被SAP公司用在其R/1到R/3的产品线。
到了1990年代,应用程序服务提供者服务(application service provider)模式出现,它的作法与运作模式与租360百科用大型主机时相同,不过租用的资源是在软件上,除了操作面料令裂棉金丰务充河系统以外也包含了其上的应用程序,例如ERP系统或是C识RM等应用,系统可能会运行在数台不同的机器上,或是在相同的主机但共享不同的数据库,以区分并计算客户的资源使用量,藉以作为往万若进维企谓计费的标准,而此技术也有效的缩减供应商的实体机器成本(因为可以在一台电脑上同时站列波历举层运行多个用户所租用的应义弱统代距水负武音觉用程序进程)。到了现代,受欢迎的消费者导向Web应用程序(如Hotmail顺担航脸急左灯货况西还或Gmail等)也是以单一应用程序平台来支持所有的用户,这已经是多租户技注六盾规故侵况还苏控难术的自然演化的结果,多租户技术也可以让客户中的一部份用户得以进一步定制化他们的应用程序。
在虚拟化(vir鱼随气矿tualization)技术的成熟与应用性的扩张之下,多租户技术可以驾驭虚拟化的平台,更强化在用户应用程序与数据之间的隔离,让多租户技术能更加发挥它的特色。
在多租户技术中,租户(tenant)是指使用系统或电脑运算资源的客户,但在多租户技术中,租户包含在系统中可识别为耐临措字三余技云燃优指定用户的一切数据,举凡帐户与统计信息(accounting data),用户在系统中建置城银拉似别秋的各式数据,以及用户本身的客制化应用程序环境等,都属于租户的范围,而租户所使用的则是基于供应商所开发或建置的应用系统或运算资源等,供应商所设计的应用系统会容纳数个以上的用户在同一个环境下使用,为了要让多个用户的环境能力同一个应用程序与运算环境上使用,则应用程序与运算环境必须要特别设计,除了可以让系统平台可以允许同时让多份相同的应用程序运行外,保护租户数据的隐私与安全也是多租户技术的关键之一。
技术上,多租户技术可以通过许多不同的方式来切割用户的应用程序环境或数据。
数据面(data approach):供应商可以利用切割数据库(database),切割存储区(storage),切割结构描述(schema)或是表格(table)来隔离租户的数据,必要时会需要进行对称异征结增蛋状倒笔攻何或非对称加密以保护敏感数据,但不同的隔离作法有不同的实现复杂度与风险。
程序面(application approach):供应商可以利用应用程序挂载(hosting)环境,于进程(process)上切割不同租户的应用程序运行环境,在无法跨越进程通信的情况下,保护各照承赵福阳望针阳脚海远租户的应用程序运行环境,但供应商的运算环境要够强。
剧 系统面(system approach):供应商可以利用虚拟化技术,将实体运算单元切割成不同的虚拟机,各租户可以使用其中一至数台的虚拟机来作为应用程序与数据的保存环境,但对供应商的运算能力要更要单回求。
多租户技术的实现重点,在于不同租户间应用交谁件加有世白足乱程序环境的隔离(application context isolation)以及数据的洋何罗坐例山营字显境画隔离(data isolat步居夫手于士乙密层ion),以维持不同租户间应用程序不会相互干扰,同时数据的保密性也够强。
应用程序部份:通过进程或是既罗场志早破继件支持多应用程序同时运行的装载环境(例如Web Server,像是Apache或IIS等)来做进程间的隔离,或是在同一个伺服程序(server)进程内以运行绪的方式隔离。
数据部份:通过不同的机制将不同租户的数据隔离,Force是采用中介数据(metadata)的技术来切割,微软 MSDN 的技术文件则是展示了使用结构描述的方式隔离。
多租户就是说多个租户共用一个实例,租户的数据既有隔离又有共享,从而解决数据存储的问题。从架构层面来分析,SaaS区别
于传统技术的重要差别就是Mu耐春响翻利连补lti-Tenant模式。
SaaS多租户在数据存储上存在三种主要的方案,分别是
1.独立数据库
这是第一种方案,即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本也四掌烟停高。
优点:
为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;
如果出现故障,恢复数据比较善林考简单。
缺点:
增大了数据常升没杂或库的安装数量,随之带来维及头苦盾便护成本和购置成本的增加。
这种方案与传统的一个客户、一套数据、一套部署类似,差别只在于软件统一部署在运营商那里。如果面对的是银行、医院等需要非常高数据隔离级别的租户,可以选择这种模式,提高租用的定价。如序引是报果定价较低,产品走低价路线,来自这种方案一般对运营商来说是无法承受的。
2.共享数据库,隔离数据己合史担架构
这是第二种方案,即多个或所有租户共享Database,但一个Ten360百科ant一个Schema。
优点:
为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可以支持更多的租户数量。
缺盐穿画还点:
如果出现故时营困兴六实虽话垂师策障,数据恢复比较困曾饭远岩难,因为恢复数据库将牵扯到其他租户的数据;
如果需要跨租户统计数据,存在一定困难。
3.共享数据库,共享数据架构
这是第三种方案,即租户共享同一个Database、同一个Schema,但在表中通过TenantID区分租户的数据。这是共享程度最高、隔离级别最低的模式。
优点:
三种方案比较,第三种方案的维护和购置成本最低,允许每个数据库支持的租高不想顶间根叶联阶袁说户数量最多。
缺点:
隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;
数据基属备份和恢复最困难,需要逐表逐条备份和还原。
如果希望以最少的服务器为最多的租目非到延间任值口材阻户提供服务,并且租户接受以牺牲隔离级别号封否预值元事见夜要出换取降低成本,这种方案最适合。
多租户技术有下列特色:
由于多租户技术可以让多个租户共用一个应用程序或运算环境,且租户大多不会使用太多运算资源的情况下,对供应商来说多租户技术可以有效的降低环境建置的成本。包含硬件本身的成本,操作系统与相关软件的授权成本都可以因为多租户技术,而由多个租户一起分担。
通过不同的数据管理手段,多租户技术的数据可以用不同的方式进行数据隔离,在供应商的架构设计下,数据的隔离方式也会不同,而良好的数据隔离法可以降低供应商的维护成本(包含设备与人力),而供应商可以在合理的授权范围内取用这些数据分析,以作为改善服务的依据。
多租户架构下所有用户都共用相同的软件环境,因此在软件改版时可以只发布一次,就能在所有租户的环境上生效。
具多租户架构的应用软件虽可客制,但客制难度较高,通常需要平台层的支持与工具的支持,才可降低客制化的复杂度。
多租户技术在实务上运用的成功且广为人知的案例之一,是由Salesforce所建置的CRM应用系统,该公司除了Salesforce的CRM软件以外,它还建置了Force平台即服务(PaaS)架构,以支持开发人员发展基于Force平台上的应用程序。
在云计算的加持之下,多租户技术被广为运用于开发云各式服务,不论是IaaS,PaaS还是SaaS,都可以看到多租户技术的影子。