多租户是SaaS范畴的特有产品,租户是指运用SaaS体系的客户,做许多租户体系架构规划需求了解其相关概念。本文介绍了多租户的概念,比照传统软件形式与SaaS形式的差异,并经过剖析多租户的三种阻隔形式,逐渐梳理出多租户的体系架构规划,希望对你有所启示。
多租户是SaaS范畴的特有产品,在SaaS服务中,租户是指运用SaaS体系的客户,租户不同于用户,例如,B端SaaS产品,用户或许是某个安排下的职工,但整个企业安排是SaaS体系的租户。多租户技能是一种软件架构技能,能够完成多个租户同享体系实例,而且租户间能够完成数据与行为的阻隔。
传统软件项目一般是指,面向客户开发一套特定的软件体系,并布置在独立的环境中,一般是企业内部环境。而SaaS形式,是将软件服务布置到云端环境,能够面向不同的客户供给相同的软件服务。
关于SaaS形式,多租户间的资源阻隔是十分根底的才能,出于本钱和运营功率考虑,SaaS服务商需求构建多租户可一同拜访软件的环境,不同租户尽管拜访同一套SaaS产品服务,但资源拜访需求严厉阻隔开。
第二层是体系根底数据的阻隔,首要包含安排,用户,人物,权限,产品才能授权联系等。
第三层是体系运用过程中,各类事务动态数据的阻隔,例如事务单据、操作记载等。
多租户架构首要是处理第一层的阻隔问题,即核算、存储、网络等资源的阻隔。为了完成多租户阻隔架构,咱们先要搞清楚常见的几种多租户阻隔形式。
有些SaaS服务商会挑选竖井阻隔形式,即每个租户都运行在阻隔的一套资源中。有人会说,这不便是传统软件形式吗,为什么会是SaaS形式呢?但假如这些竖井式的资源,具有标准化的租户身份辨认、入驻流程、计费体系、布置流程、运营流程,那儿它依然是SaaS形式,只不过每个客户都有一套端到端的根底设备。
满意强阻隔需求:一些客户为了体系和数据的安全性,或许提出十分严厉的阻隔需求,希望软件产品能够布置在一套彻底独立的环境中,不好其他租户的运用实例、数据放在一同。
计费逻辑简略:SaaS服务商需求针对租户运用资源进行计费,关于杂乱的事务场景,核算、存储、网络资源间的联系相同也会十分杂乱,计费模型是很有应战的,但在竖井形式下,计费模型相对来说是比较简略的。
下降毛病影响面:因为每个客户的体系都布置在自己的环境中,假如其间一个环境呈现毛病,并不会影响其他客户运用软件服务。
规模化问题:因为租户的SaaS环境是独立的,所以每入驻一个租户,就需求创建和运营一套SaaS环境,假如仅仅少数的租户,还或许能够办理,但假如是不计其数的租户,办理和运营这些环境将会是十分大的应战。
本钱问题:每个租户都有独立的环境,花费在单个客户上的本钱将十分高,会大幅削弱SaaS软件服务的盈余才能。
灵敏迭代问题:SaaS形式的一个优势是能够快速呼应市场需求,迭代产品功用。但竖井阻隔战略会阻止这种灵敏迭代才能,因为更新、办理、支撑这些租户的SaaS环境,会变得十分杂乱和低效。
体系办理与监控:在同一套环境中,对布置的根底设备进行办理与监控,是较为简略的。但每个租户都有独立的环境,在这种非中心化的形式下,对每个租户的根底设备进行办理与监控,相同也是十分杂乱、困难的。
信任许多SaaS服务商会优先挑选同享形式,即多租户同享一套根底设备资源,这样能让SaaS软件服务愈加高效、灵敏、低本钱。
高效办理:在同享战略下,能够集中化地办理、运营一切租户,办理功率十分高。一同,对根底设备配置办理、监控,也将愈加简略。比较竖井战略,产品的迭代更新会更快。
本钱低:SaaS服务商的本钱结构中,很大一块是根底设备的本钱。在同享模型下,服务商能够依据租户们的实践资源负载状况,动态弹性体系,这样根底设备的利用率将十分高。
租户相互影响:因为一切租户同享一套资源,当其间一个租户很多占用机器资源,其他租户的运用体会很或许受到影响,在这种场景下,需求在技能架构上规划一些约束办法(限流、降级、服务器阻隔等),让影响面可控。
租户计费困难:在竖井模型下,十分简略核算租户的资源耗费。但是,在同享模型下,因为一切租户同享一套资源,需求投入更多的精力核算单个租户的合理费用。
传统大企业更喜爱私有化布置、个性化交给的传统形式,因为他们需求更强的管控和更高的安全性。但是,中小企业付费才能有限,需求往往也愈加标准化,所以更喜爱价格更低的、订货更简略的SaaS产品。为了满意不同客户的需求,还有一种混合了竖井模型与同享模型的形式,即分域阻隔形式。在该形式下,会细分根底域、专用域,根底域是运用同享模型,一切租户同享一套资源;而专用域是运用竖井模型,每个租户都有独立的资源环境。关于大多数中小客户来说,他们都是在根底域环境运用SaaS产品,只要少数的大客户会在专用域运用SaaS产品,一般他们付费才能强,有激烈的强阻隔需求。但需求留意的是,为了防止多套产品版别呈现,SaaS服务商需求确保根底域、专用域的产品版别共同,个性化的部分尽或许经过构建PaaS渠道,让ISV参加建造。不然,一旦SaaS产品的标准化程度下降,后续各版别的保护将变成灾祸。
了解各种多租户阻隔形式后,咱们来总结下多租户体系的定位。多租户体系是为了满意多用户运用一套产品,并完成用户间的数据与行为阻隔,但依据用户需求不同,能够同享或阻隔软硬件资源,体系架构上能够灵敏支撑多种阻隔形式。
多个租户支撑同享一套云资源,如核算、存储、网络资源等。单个租户也能够独占一套云资源。
用户:在某个租户内的详细运用者,能够经过运用账户名、暗码等登录信息,登录到SaaS体系运用软件服务。
处理计划:为了处理客户的某类型事务问题,SaaS服务商将产品与服务组合在一同,为商家供给全体的打包计划。
产品才能:指的是SaaS服务商对客户售卖的产品运用,特指能够协助客户完成端到端场景处理计划闭环的才能。
云资源:SaaS产品一般都布置在各种云渠道上,例如阿里云、腾讯云、华为云等。对这些云渠道供给的核算、存储、网络、容器等资源,笼统为云资源。
单个渠道用户能够相关到多个租户下,例如,渠道用户张三,能够是租户A的用户,也能够是租户B的用户。单个租户下能够具有多个用户。
单个租户能够订货多个处理计划,处理计划能够包多个产品才能,产品才能运行在某个资源域上。
安排单元间有上下级联系,单个安排下能够有多个职工,职工与单个用户进行绑定。
对SaaS产品来说,租户是最顶层的概念,租户内部具有安排、用户、产品才能、云资源等模型,租户就像租了一套大房子,其他模型都是房子内部的家具或设备。
在各种阻隔形式下,辨认租户身份,获取租户的资源配置,是十分要害的。当一个用户登录SaaS体系后,体系会回来租户上下文信息,上下文会包含用户绑定的租户信息,以及阻隔形式。租户上下文信息会被附加在每一次体系交互中,贯穿整个体系调用链路,让上游调用方知道路由到哪些下流资源。
在竖井阻隔形式下,因为资源自身便是阻隔的,所以能够依据占用的核算、存储、网络资源来计费计量,逻辑相对简略。在同享形式下,计费计量就比较杂乱,咱们要能精确地收集到各个租户对实践资源的运用状况,一般会依据恳求并发量、存储容量、数据目标数量等数据来进行组合计费。
本文首要介绍了什么是多租户,比照传统软件形式与SaaS形式的差异。经过剖析多租户的三种阻隔形式,逐渐梳理出多租户的体系架构规划,包含概念模型、场景推演、运用架构等。