云计算服务多租户设计浅析
随着云计算的兴起和普及,越来越多的软件产品和服务都以云服务的方式交付出来。传统的软件都是直接面向用户的,云服务通常面向的是租户,租户下又有用户,因此,租户概念的引入,给设计云计算产品带来了复杂性。
本文站在个人的角度通过分析多租户的概念,云计算产品中为什么要用多租户,多租户是怎么设计的,分享下个人对多租户管理的看法。最后,通过一个实际的例子具体看一下DeepNote是怎么设计多租户的。
什么是租户?
提到“租户”,相信大家的第一反应是跟房子有关的租户。租户跟房东签约租赁业主的房子、房子里的各项设施以及房东的各种服务。
租户与业主签约,签约的内容一般包括:
租赁范围:居住空间、床、沙发、电视、水、电、煤气等等
租赁期限:一般签1年或者3年。
双方的权责:业主负责房屋以及各项设施的保障并从租户那里收取租金。租户缴纳租金,享受房屋以及房屋内各项设施的使用及服务。
云计算中的租户也差不多,租户与云服务商签约,租赁云服务商提供的IaaS、PaaS、SaaS等服务。签约的内容包括:
租赁范围:IaaS、PaaS、SaaS等服务
租赁期限:按时长、包年包月
双方的权责:云计算服务商向租户收取租金,提供云计算服务并保障服务的稳定性。租户享受云计算服务商提供的服务并向云计算服务商缴纳租金。
为什么要租赁云计算服务?
对于客户来说,建设和运维自己的业务系统需要花费的周期太长,不利于业务的迅速构建和推广,前期建设的成本也会很高。通过租赁云计算服务的方式,前期可以在有限成本下迅速将自己的业务推向市场,同时云服务的稳定性、可用性、安全性等由云服务商兜底。
目前很多新兴的互联网公司就是把服务架设在云计算服务之上的,比如大家熟知的拼多多,就使用了腾讯的基础设施(IaaS)云服务。
云计算租户管理应该具有哪些能力?
在云计算平台中,一个租户可以是一个个人用户或者一个组织单位。租户在云计算平台上租赁云服务商提供的服务,租户需要提供身份信息、联系人及联系方式信息,以及用于支付云服务租金的扣款账号信息。对于组织性质的租户,还应提供个人用户账号的管理,方便组织内用户使用云服务,同时需要对使用云服务的用户根据角色,授予不同的权限。
一、对租户信息管理的能力
租户的身份信息,对于个人用户,维护身份证、手机号、扣款账号等信息。
对于组织租户,维护营业执照、扣款账号、联系人、联系人手机号等信息。
二、租户内用户管理的能力
如果租户是一个组织的话,使用云服务的最终还是组织内的个人用户。每个组织性质的租户都应有一个管理员,负责维护租户信息、租赁服务信息以及本租户内用户的管理。
具体的用户管理功能包括用户的添加删除和用户权限的分配管理。对于权限的分配,通常采用RBAC模型,即通过为角色授权以及建立用户和角色的关系为用户授权。
三、租赁服务的管理能力
租户管理员和有权限的用户都可以租赁云服务商的服务,对租户服务的管理能力包括服务租赁、退租、续租等操作。进一步,租户管理员可以限制每个用户可租赁服务的配额,以控制本租户租赁云服务的支出成本。
云服务商还应为租户提供已租赁云服务的监控能力,比如用量、性能、可用性、稳定性、安全性等指标,进一步可提供可视化数据报表。
四、查看订单与计费的能力
租户管理员需要知道每一笔订单的详情,每一分钱的去向,因此,云服务商需要为租户提供多维度、精细的订单与费用报表。
订单记录了订单生成的时间,发起订单的用户,租赁的服务及价格等信息。此外,云服务商还应为租户提供账单,账单记录了某一计费周期内每一笔钱的花费情况。
进一步,云服务商还应为租户提供费用统计等可视化报表。
以DeepNote举例
DeepNote由一个位于旧金山的小团队开发,它是一种云协作、云硬件,上云的 Notebook 编程环境,可与现有的Jupter兼容,方便部署,并且免费,是新一代的数据科学notebook。
DeepNote提供的是一种SaaS化的Notebook服务,功能类似Jupyter Notebook,租户在DeepNote上租赁Notebook服务,同时向DeepNote缴纳租金。每一个用户对Notebook来说都是一个租户,用户还可以创建团队,把一个团队作为一个租户。我们来看下,DeepNote对多租户管理的能力。
一、管理租户
默认情况下,每个用户都有一个My space,用户也可以创建团队账户。其实My space本质上也是一个特殊的团队账户,只不过这个账户仅有一个成员。
二、管理用户
对用户的管理包括用户和权限,DeepNote对权限的管理是把用户绑定为不同的角色,每个角色权限不同。
DeepNote定义了三种角色:Viewer、Member和Admin,其中Viewer权限最少,Admin权限最多。
三、管理服务
DeepNote把每个Notebook用一个Project表示。DeepNote提供了3中类型,以小时为周期租赁服务。
用户启动服务就表示了租赁服务的开始,停止服务表示租赁服务中止。
四、查看订单与计费
我实际没买DeepNote的服务,因此订单和账单都看不到,暂时不放DeepNote的截图了。截了一张滴滴云的图来示例订单和账单。
小结
云计算服务通过多租户管理为租户提供可复用的能力。租户从云计算服务商租赁服务并向云计算服务商支付租金,云计算服务商对多租户的管理能力主要包括:管理租户、管理用户、管理租赁服务、提供订单和账单的查询等服务。