随着不断发展的ECS产品以及日益成熟市场环境,越来越多的用户使用着阿里云的ECS产品。随着用户自身业务的不断增加,需要保有的 ECS 资源数量越来越多,这就导致了这些用户在管理这些资源上出现了不便和困难。
针对资源管理问题,许多用户往往通过对同一类资源以相同的资源名称命名来做到分组的管理。这样虽然达到了分组的功能,但却失去了资源名称本身标识资源身份的作用。
综上所述,用户迫切需要一个专为资源分组的产品功能,在这样的背景下,资源标签系统(以下简称Tag)应运而生。
专为分组操作而生
Tag功能专为用户对资源进行分组操作而准备。一个用户可以使用控制台或者是Open API来对资源赋予Tag。
我们定义的Tag由一对Key / Value组成,对于Tag的限制如下:
- Key最长可以为64个字符,Value最长则可以为128个字符。
- Tag中Key不可以为空,而Value可以为空。
- 同一个资源上,不允许出现相同Key的Tag。也就是说如果用户对资源打的Tag Key与该资源上已经存在的一个Tag Key相同,则这次操作的Tag将会覆盖之前的Tag。
- 不同资源间的Tag没有约束,即不同资源可以存在Key相同的Tag。
- Tag的Key不允许以aliyun开头,此为系统保留字段。
- 对于一个ECS用户而言,账号本身没有Tag数的限制,但对于每一个资源,最多只能打10个Tag。
- 目前ECS中支持Tag的资源种类有实例(Instance)、磁盘(Disk)、快照(Snapshot)、镜像(Image)这四种,后续还会考虑支持更多种类的资源。
通过对每个资源打上不同的Tag,用户可以更方便地通过Tag来管理自己的资源。
目前,阿里云基于Tag提供给用户的功能有:
- 通过指定Tag作为查询的过滤条件,可以查找所有关联此Tag的资源,以达到分组管理资源的目的。
- 查询资源信息的返回结果中也会带有该资源所关联的Tag信息。
适合大型企业及游戏业务
有这样的一位做手游业务的用户,由于公司业务快速发展,需要大量的ECS实例作为支撑。
该用户的公司旗下有多款游戏,均取得了不错的业绩,拥有很广泛的用户基础。但是因为该公司使用的是同一个阿里云账号,所以需要根据不同的游戏,对其所有的ECS进行分组区分。这就需要阿里云提供的Tag功能。
例如用户的一款手游叫做A,而另一款游戏叫做B,那么:
- 对于支持A这款游戏的资源,可以打上Key为“game”,Value为 “A” 的Tag;
- 对于支持B这款游戏的资源,可以打上Key为“game”,Value为 “B” 的Tag。
这样用户需要查询属于支持A游戏的资源时,只需要以Tag(Key=game,Value=A)的过滤条件筛选即可;反之,如果要查询属于B游戏的资源,则需要以Tag(Key=game,Value=B)的过滤条件筛选。
还有一位大企业的客户,企业下面有很多的事业部,不同事业部分别都有自己的技术团队。每个事业部都独立拥有一批ECS实例来支持各自的业务。
该企业用户也是用的同一个阿里云账号,所以需要根据不同的事业部对资源进行分组,同时因为每个事业部中还有不同款的产品,所以还要对每个事业部内的所有机器从产品的维度去对资源做进一步区分。
假设该企业有事业部A和事业部B,A事业部中有两款产品A1和A2,B事业部中有三款产品B1、B2和B3。那么如果要对该企业下的资源做分组,可以用如下的方式:
- 对于A事业部中的A1产品,可以对支持A1产品的资源打上Key为A,Value为A1的Tag;
- 对于A事业部中的A2产品,可以对支持A2产品的资源打上Key为A,Value为A2的Tag;
- 对于B事业部中的B1产品,可以对支持B1产品的资源打上Key为B,Value为B1的Tag;
- 对于B事业部中的B2产品,可以对支持B2产品的资源打上Key为B,Value为B2的Tag;
- 对于B事业部中的B3产品,可以对支持B3产品的资源打上Key为B,Value为B3的Tag。
这样企业负责管理资源的管理员,在查询属于A事业部的资源的时候,可以直接以Tag-Key为A,同时不指定Tag-Value的方式,把所有Tag-Key为A,即属于A事业部的资源全部查询出来;反之也可以查询出所有的B事业部的资源。
如果要查询用于支持某个事业部中具体某个产品的资源,例如A事业部的A1产品,那只需要以Tag-Key为A,Tag-Value为A1作为过滤条件即可。
对于一个控制台用户来说,他可以通过控制台来对资源赋予Tag,从而达到通过Tag功能来对资源进行分组管理和操作的目的。
操作轻松,高效省心
具体操作的示例如下。
图1
如图1所示,用户可以在左侧的标签库中寻找到自己想要作为查询过滤条件的Tag,选中要用作过滤条件的标签后,可以将它添加到右侧的选中列表中。
目前允许用户选定最多5个Tag作为一次查询的过滤条件。
图2
选中5个Tag作为过滤条件后的结果如图2所示。点击确定,就可以在用户该地域下所有的实例中,筛选出与选中的Tag相关联的所有实例。
对于使用Open API的用户来说,阿里云也提供通过Open API方式对资源进行赋予Tag操作,并通过Tag对资源进行管理的功能。
图3
如图3所示,用户可以使用DescribeTags接口,查询某一地域下所有资源有关的Tag。
图4
如图4,可以指定查询某一地域下Tag的Key与指定的Key相同的所有Tag。
图5
如图5,DescribeInstances的返回结果中增加了与该资源相关的所有Tag信息。
目前的Tag功能才刚刚起步,仅仅满足了最基本的用户功能。接下来还会有不断完善的计划,例如:
- 支持更多的资源支持Tag;
- RAM通过Tag对资源授权/鉴权;
- 支持通过Tag对资源进行批量操作。
最后,欢迎用户在使用Tag功能的过程中,为阿里云提供宝贵的建议。希望Tag功能的上线,可以对您在管理资源方面提供更大的便捷性。
为了您更好的用户体验,阿里云一直在路上。