云成本管理方法论(三)——云优化管理之判定规则
云优化管理四个管理维度中管理时点在通用管理模型基础上不需要额外补充,所以主要说明其他三个维度(管理对象、判定规则和管理措施)。另外,为了贴近我们熟悉的优化概念,我们将优化管理中的违规称为问题,并将处理违规称为实施优化。
因为优化管理相对较复杂,我们将分两篇文章来讨论。此篇文章主要讨论管理对象和判定规则。
管理对象
优化管理中的管理对象是资源指标和资源之间的关系(后面会看到,严格来说是“资源关系状态”)。其中,资源指标种类很丰富,并且一般会随资源种类的不同而不同,但是对于具体资源其指标种类是确定的,所以并不需要做一般性的分析。所以,我们重点需要分析影响资源成本优化的不同资源关系。为此,下面先对一些基础概念进行说明。
资源基本关系:
- 关联 —— 如果一种资源的某一属性为另一种资源的标识信息,则称这一属性为关联属性,并称这两种资源具有关联关系。其中,具有此关联属性的资源称为关联资源,通过此属性标识的资源称为被关联资源。比如虚机一般会有一个安全组 ID 属性,在这一关联关系中就称虚机为关联资源,安全组为被关联资源。
- 聚合 —— 聚合关系是一种强的关联关系。具有聚合关系的资源之间有整体和部分的关系。比如负载均衡器与虚机之间具有聚合关系,其中负载均衡器为代表整体的资源,虚机是部分资源。在聚合关系中可能会有双向关联,比如虚机会有“存储卷”集合属性,存储卷同时有“虚机 ID”属性。
- 组合 —— 组合关系是一种强的聚合关系。组合关系中代表部分的资源只从属于此组合关系中代表整体的资源,而不能同时作为其他资源的部分资源。比如,虚机与存储卷具有组合关系,一个存储卷不能同时与多个虚机形成关联关系。
另外需要注意的是,无论在聚合还是组合关系中,代表部分的资源都有可能不与任何代表整体的资源发生关联。而由于聚合关系中的部分资源对整体资源没有强的依赖性,所以部分资源一般在这种情况下仍能够独立实现其业务功能(比如未关联负载均衡器的虚机仍可对外提供服务);但对于组合关系,部分资源在这种情况下一般不能独立实现其业务功能(如未挂载到任何虚机的存储卷无法对外提供数据存储服务)。
基于资源基本关系的定义,我们再定义如下几个概念:
- 强制关联 —— 关联资源中的关联属性值不能为空。比如虚机与私有 IP,以及卷快照与存储卷之间是强制关联。
- 外键关联 —— 关联资源中关联属性如果不为空,则其对应的被关联资源必须存在(未被销毁)。如存储卷与虚机之间是外键关联,即如果存储卷的虚机 ID 不为空,则此虚机必须存在。
- 快照关联 —— 快照关联是一种特殊的强制关联,但不是外键关联。快照关联中关联资源是快照,被关联资源是快照的来源资源。我们也可以将快照关联中的关联资源称为快照资源,将被关联资源称为源资源。如虚机和由此虚机生成的镜像之间有快照关联,其中镜像是快照资源,虚机是源资源。需要注意的是,虚机与生成此虚机的镜像之间并没有快照关联,而只是一般的关联关系。
-
托管 —— 若一种资源的生命周期(创建,修改,停止,销毁等)完全受另外一种资源管理(且一般情况下不受人工干预),则这种关系称为托管关系,它是一种强的组合关系。同时,我们称进行管理(即进行托管)的资源为管控资源,被管理(即被托管)的资源为托管资源。伸缩组与虚机是一种典型的托管关系。
-
父资源 —— 父资源是具有聚合关系的一组资源中代表整体的资源。
-
子资源 —— 父资源是具有聚合关系的一组资源中代表部分的资源。子资源可能是单个资源(如虚机的公有
IP)也可能是一组资源(如伸缩组中的虚机)。
从上面的例子也可以看到。同一资源可能会有多种聚合关系(如虚机与负载均衡器以及虚机与伸缩组),而且不同的聚合关系可能既有一般聚合关系也有组合关系。
需要明确的是,真实的资源之间具体应属于哪种关系是由其功能特征决定的,是固有的,所以对这些关系本身我们并没有办法去改进或优化。但是,我们可以对其关系状态进行优化。因此,下面列出各种关联关系的不同状态:
- [关联]已关联/未关联[1]
- [强制关联]已关联/未关联
- [外键关联]已关联/未关联
- [快照关联]已关联/未关联
- [聚合]已关联/未关联
- [组合]已关联/未关联
- [托管]已关联/未关联
其中,由于关联关系中的“已关联”和“未关联”只具有最基本的信息,无从判断问题,因此将不作为管理对象。同时,还有如下几种非关联关系的关系状态也将作为管理对象:
- 预留资源与实例资源用量匹配关系
- 同一资源对象快照或备份的份数
另外,优化管理中的管理对象除资源关系状态外还有资源指标,所以汇总后云成本优化管理全部的管理对象如下:
- 强制关联-已关联
- 强制关联-未关联
- 外键关联-已关联
- 外键关联-未关联
- 快照关联-已关联
- 快照关联-未关联
- 聚合-已关联
- 聚合-未关联
- 组合-已关联
- 组合-未关联
- 托管-已关联
- 托管-未关联
- 预留与实例资源匹配关系
- 快照或备份的份数
- 资源指标
判定规则
优化管理中的规则判定结果为是否存在问题(即违规),以及问题的类型。问题类型可结合管理对象和资源状态两方面的信息进行判断。
在定义资源状态之前,我们先定义两种物理资源类型:
- 运行所需资源 —— 云资源在其提供业务功能时需要占用的物理资源。
- 定义所需资源 —— 云资源的定义、关系及元数据信息占用的物理资源。
可以发现,有些资源如VPC,子网,用户账号、权限及秘钥等信息在其整个生命周期中都不会占用运行所需资源。这种资源在一般情况下价格为零。
任意资源可能的状态有如下三种(忽略如“销毁中”等转换状态):
- 活动中
- 已停止
- 已销毁
首先,一种资源如果在其全部生命周期中都不会占用运行所需资源,则其只有活动中状态,没有已停止状态。对于会占用运行所需(物理)资源的云资源,活动中状态是指正在或有能力占用运行所需资源的状态;已停止是指不会占用运行所需资源的状态。已销毁是指已删除其定义所需资源的状态。
下面针对不同的管理对象来分析其判定规则。
关联关系相关
注:
1. 与使用管理的描述方式有所不同,关联关系相关的判定条件由表格的表头(被关联资源状态)及每行的第一列(关联资源状态)构成,其他单元格中内容即为判定结果。同时,从判定条件到判定结果之间的映射关系即构成了违规判断方法。
2. 判定结果有三类:“/”表示不存在此情形,“无”表示此情形属正常情况,其他情况为问题描述。
- 强制关联-已关联
关联资源状态 | - | 被关联资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁或未创建 | |
活动中 | 无 | 无 | 无 |
已停止 | 无 | 无 | 无 |
已销毁 | / | / | / |
- 强制关联-未关联
关联资源状态 | 违规判定结果 |
---|---|
活动中 | 数据错误 |
已停止 | 数据错误 |
已销毁 | / |
- [外键关联]已关联
关联资源状态 | - | 被关联资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁或未创建 | |
活动中 | 无 | 无 | 数据错误 |
已停止 | 无 | 无 | 数据错误 |
已销毁 | / | / | / |
- [外键关联]未关联
关联资源状态 | 违规判定结果 |
---|---|
活动中 | 无 |
已停止 | 无 |
已销毁 | / |
- [快照关联]已关联
快照资源状态 | - | 源资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁或未创建 | |
活动中 | 无 | 无 | 源资源不存在 |
已停止 | / | / | / |
已销毁 | / | / | / |
- [快照关联]未关联
快照资源状态 | 违规判定结果 |
---|---|
活动中 | 数据错误 |
已停止 | / |
已销毁 | / |
- [聚合]已关联
父资源状态 | - | 子资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁或未创建 | |
活动中 | 无 | 无 | 数据错误 |
已停止 | 父资源已停止 | 无 | 数据错误 |
已销毁或未创建 | 数据错误 | 数据错误 | / |
- [聚合]未关联
资源角色 | - | 资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁 | |
父资源 | 无子资源 | 无 | / |
子资源 | 无 | 无 | / |
- [组合]已关联
父资源状态 | - | 子资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁或未创建 | |
活动中 | 无 | 无 | 数据错误 |
已停止 | 父资源已停止 | 无 | 数据错误 |
已销毁或未创建 | 数据错误 | 数据错误 | / |
- [组合]未关联
资源角色 | - | 资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁 | |
父资源 | 无 | 无 | / |
子资源 | 无父资源 | 无父资源 | / |
- [托管]已关联
管控资源状态 | - | 托管资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁或未创建 | |
活动中 | 无 | 无 | 无 |
已停止 | 数据错误 | 数据错误 | 数据错误 |
已销毁或未创建 | 数据错误 | 数据错误 | / |
- [托管]未关联
资源角色 | - | 资源状态 | - |
---|---|---|---|
活动中 | 已停止 | 已销毁 | |
管控资源 | 无 | 无 | / |
托管资源 | 数据错误 | 数据错误 | / |
匹配关系相关
- 预留与实例资源匹配关系
预留资源小于可匹配实例资源用量 | 预留资源等于可匹配实例资源用量 | 预留资源大于可匹配实例资源用量 |
---|---|---|
预留资源不足 | 无 | 预留资源低利用率 |
用量关系相关
- 快照或备份的份数
份数低于合理范围 | 份数处于合理范围 | 份数高于合理范围 |
---|---|---|
快照或备份不足 | 无 | 快照或备份过多 |
资源指标相关
- 资源指标
指标低于合理范围 | 指标处于合理范围 | 指标高于合理范围 |
---|---|---|
资源低利用率 | 无 | 资源不足 |
补充说明
结合用户实际使用资源时的操作,我们会发现,如上判定规则判定得出的很多问题在用户合理的使用过程中实际也会发生。比如,在人工创建一个存储卷与完成挂载此存储卷之间会存在一定的时间差(在此期间会处于“无父资源”的状态),在业务不繁忙的时段预留资源可能会低利用率,一台虚机的 CPU 利用率在访问低谷时可能很低等等,这些状态都与用户的不合理操作无关,也并无可优化的问题。
进一步考虑这个问题,会发现很多的“问题状态”必须持续一定的时间,或是达到总时长的一定比率后才会成为问题。所以,在实际制定判定规则时,一般都需要增加“持续时长”和/或“平均时长”等辅助判定条件。
下期预告
下期文章:《云成本管理方法论(四)——云优化管理之管理措施》,将针对本篇文章中判定规则所发现的各类可优化问题,来一般性地说明对这些问题的优化措施。
-
直观地理解,可认为已关联是指关联属性值不为空,未关联是关联属性值为空。同时,对于聚合关系中的父资源,未关联指其关联子资源的集合属性为空。 ↩