FAQ 最佳实践 门户安全
行云管家多租户概述

一、术语

“行云管家私有部署运营版”存在“运营中心”与“多租户”的概念。运营中心有且只有一个,其主要职责是对行云管家运行实例进行配置与维护,以及对租户进行支持、服务与管理;租户也称之为团队,可以有一至多个,其主要职责是将IT资源导入至租户,并在租户的工作界面中完成对IT资源的日常运维管理操作。

运营中心的工作界面是“行云管家管理控制台”,其默认登录地址为:http://ip/console ;租户的工作界面是“行云管家门户”,其默认登录地址为:http://ip/ 。

一个运营中心,多个租户(团队)

二、租户

在行云管家中,租户又称之为团队,租户是完全自治且相互隔离的。

2.1、租户的自治性

所谓完全自治,是指租户是自成体系的。在租户中拥有用户和资源,用户会形成组织架构与角色,资源有多种类型,如主机、数据库、应用、CDN、Bucket等,用户与资源之间通过权限模型完成精细化授权。

当指定的用户被授予合适的权限访问指定的资源后,用户就可在租户体系内完成对资源的运维管理、操作审计等行为,而上述流程是完全自治的,无需其它第三方的介入。

2.2、租户的隔离性

同一个用户可以加入多个团队(租户),同一个资源也可以导入到多个团队(租户)。但这里稍有差异的是:加入不同团队的同一个用户,会被行云管家认为依然是同一个用户;而导入到不同团队的同一个资源,则会被行云管家认为是不同的资源。

举个例子,张三,其在行云管家中的账号为 zhangsan,他加入了团队A和团队B,当他登录行云管家后,可以在团队A和B中进行切换,在这里的团队,更像是一种“工作空间”的概念。一台主机,其IP为192.168.9.10,它可以导入到团队A,起个名字叫WebServer1,也可以被导入到团队B,起个名字叫WebServer2,在物理上,它依然是同一台主机,其IP都是192.168.9.10,但在行云管家A、B两个团队的视角下,它是两台不同的主机,在团队A中叫做WebServer1,在团队B中叫做WebServer2,只是它们的IP都是192.168.9.10。

由此谈到“租户的隔离性”,是指团队与团队之间的资源,以及用户在不同团队内的操作行为,是完全隔离,相互不可见的。

继续延用上述例子,在A团队中拥有的资源,在B团队中完全看不到,张三在A团队中所做的操作,只能在A团队中查看,在B团队中也看不到,反之亦然。

三、运营中心

运营中心有且只有一个,其主要职责是对行云管家运行实例进行配置与维护,以及对多租户进行支持、服务与管理。

3.1、运营中心的用户与权限体系

运营中心拥有自己的用户与权限体系,您可在运营中心中创建一个新的用户或者一个新的角色,授予角色以不同的权限,并将用户加入到指定的角色。如下图所示:

运营中心用户体系

运营中心角色与权限体系

但这里需要提及的是,运营中心的用户与权限体系,和租户的用户与权限体系是完全不同的,换言之,同样是张三这个人,如果他既希望是运营中心的人,也希望加入到某些租户,那么他应该有两套账号密码,分别是运营中心的账号和租户的账号。

3.2、对行云管家运行实例进行配置与维护

运营中心的首要职责是对行云管家运行实例进行配置与维护,如设置访问协议和访问域名,更改存储方式、开启短信网关等行为,如下图所示:

对行云管家运行实例进行配置与维护

3.3、对租户进行管理

运营中心的第二个职责是对行云管家中的租户进行管理,如创建新的租户(团队)、创建租户中的用户,指定租户管理员等行为,如下图所示。

对租户进行管理

3.4、资源池

除了用户与角色,运营中心可不可以拥有自己的资源?可以,这就是资源池。我们可以把OpenStack、VMWare等私有云,以及阿里云、AWS等公有云,以资源池的形式导入至运营中心。如下图所示:

运营中心资源池

问题来了,在运营中心导入资源池是做什么用途?我们不推荐用户在运营中心工作界面(既管理控制台)中完成对资源池的运维管理,因此,运营中心的资源池,其主要目的是将资源池分配给指定的租户,并由租户完成对资源池的运维管理。

一个非常典型的场景是:一家企业有一个VMWare私有云,希望把这些计算资源分给三个团队使用,而从管理的角度来看,希望这三个团队是相互隔离、单独核算的,于是可以在运营中心导入VMWare资源池,针对该资源池设置好计费规则、工单流程等一系列初始化配置,然后将该资源池分配给这三个团队(租户)使用,而这三个团队日常的管理行为依然在租户的工作界面(暨行云管家门户)中完成。

3.5、工单中心

如果团队(租户)在日常工作中遇到问题,希望和运营中心的用户进行沟通,如何解决?答案是通过工单完成。

还是延用上述例子,团队A希望申请一台VMWare虚拟机,可以通过工单和运营中心进行交互,由运营中心在资源池中创建主机,并通过工单自动将创建好后的主机分配给团队A。

运营中心的工单

四、场景与实践

以下会针对一些具体的业务场景,给出行云管家推荐的解决方案。

  • (1)一个用户可以加入多个团队,在不同团队之间如何切换?

在行云管家私有部署版本中,并不会限制一个用户能够加入多少团队,用户登录行云管家后,可以轻松的进行团队之间的切换。如下图所示:

用户如何切换团队

  • (2)是否存在一个超级用户,可以管理所有租户的所有资源

坦率的说,目前并没有特别好的办法可以解决这个问题。因为这样一个超级用户的存在,会导致破坏租户资源隔离的模型。可能的方案有两种:

方案一:假设有一个用户,他隶属于每个团队。在检索团队资源时,他可以跨团队检索资源,如下图所示:

跨团队检索主机

方案二:将所有的资源全部放到运营中心,日常所有的运维操作全部在运营中心完成?但这意味着同样的管理行为既可以在门户中完成,也可以在管理控制台中完成,显然也不是最佳方案。