导航

云成本管理方法论(四)——云优化管理之管理措施

Posted on 2018-04-11 12:04  FryFish  阅读(829)  评论(1编辑  收藏  举报

我们将在此篇文章中继续讨论云优化管理中的管理措施。

管理措施

问题类型

因为判定规则分析中的判定结果较分散,为便于后继的分析和使用,我们将判定结果进行分类,不同的类别称为“问题类型”。

在判定结果中,“数据错误”属于 IaaS 平台问题,此处不做考虑,另外,“资源不足”和“快照或备份不足”属于性能及容灾优化而非成本优化的范畴,也不做考虑。所以全部的问题类型如下:

  • 闲置资源:1)[组合]无父资源;2)[聚合]父资源已停止;3)[聚合]无子资源。
  • 遗留资源:1)[快照关联]源资源不存在。
  • 过度冗余:1)快照或备份过多。
  • 预留不足:1)预留资源不足。
  • 预留过剩:1)预留资源低利用率。
  • 低利用率:1)资源低利用率。

优化管理问题类型

需要注意的是,有些问题类型的“问题”可能是用户有意的处理方式,所以并不是真正的需要优化的问题。我们称这种既可能属于正常使用方式也可能属于未合理使用的问题类型为弱问题类型。在实践中,需要对弱问题类型增加一些辅助判定条件,以减少不需要优化的误判“问题”。

因为问题类型是优化管理中的一个核心概念,我们有必要总结一下其获得方式:

以 “资源状态 + 资源关系状态” 或 “资源指标 + 指标合理范围” 作为输入信息,经过条件匹配或比较运算,从而得出问题类型

问题类型判定

当然,除了前面分析的基本的判定规则和问题类型,对于某些资源类型也会有其特殊的问题类型及判定规则,这将在分析具体资源时来补充。

事前管理

事前管理的主要工作是制定判定规则,在前面“判定规则”章节已做了一般性的说明,下面针对具体情况再做一些补充。

- 闲置资源

闲置资源指资源处于“活动中”状态,但并没有发挥作用。如闲置资源定义中所列举,一种资源未发挥作用有多种可能,可能是自身未与可使用它的资源进行关联,也可能是它所从属的资源未被使用,也可能是它并未包含任何具有实际服务能力的资源。同时,基于闲置资源的这一本质理解,我们也可以后继将其他的判定结果也归入此问题类型。

- 遗留资源

遗留资源是指存在快照资源,但生成快照资源的源资源已不再存在。此情形可能是用户有意为之,也可能是因为疏忽遗忘,尤其是“遗留”时间很长的遗留资源,所以它属于弱问题类型。对于此类问题的判定需要增加如“遗留时长”等辅助判定条件。

- 预留不足

预留不足是指满足特定预留匹配规则的实例资源用量大于预留资源用量。判定预留不足的一个关键条件是预留匹配规则,此匹配规则一般随资源类型的不同而不同,下面仅列举 AWS 云三种主要预留资源与其实例资源的匹配规则:

  • 虚机(EC2):可用区、租用方式、实例类型和操作系统四个属性完全匹配[1]
  • 关系型数据库(RDS):是否跨可用区部署、实例类型和数据库引擎(及授权方式)三个属性完全匹配。
  • 缓存(ElastiCache):实例类型和缓存引擎两个属性完全匹配。

另外,如前面说明,不能仅因为瞬时或短时间的预留资源少于实例资源就将其判定为预留不足。因为预留资源的购买时间单位都较长,一般都在 1 年以上,所以计算“预留不足状态”平均时长的时间单位选择也会较长,一般可选择月为单位。比如,在最近 30 天中,如果有一定数量的实例资源在 50% 以上的时间中都处于预留不足的状态,则可认为这些资源有预留不足的问题。当然,因为有些预留资源的匹配规则比较复杂(比如 AWS 虚机预留实例中的大小灵活性规则)导致预留与实例资源之间实际是一种多对多的动态匹配,以及因为我们优化的目的是节省成本,所以还必须根据预留资源与实例资源之间的价格差来确定合理的“预留不足状态”平均时长,所以对于预留不足实际的判定有一个非常复杂的逻辑。

- 预留过剩

预留过剩是指满足特定预留匹配条件的实例资源用量小于预留资源用量。预留过剩的判定方法与预留不足完全相同,仅在两种资源的用量比较关系上有差别。

- 过度冗余

对于过度冗余类型,首先需要理解冗余本身并不是问题,而“过度”冗余才是问题。但何种程度才算过度,需要参考商务策略或业务需求来得出。简化来说,刚好满足商务或业务的需要就是合适,而超出这些需要就是过度。对于过度冗余的判定,可根据资源类型、备份类型、备份数据的大小及资源数据的重要性(比如开发环境和生产环境数据库重要性的差异)等实际因素来确定其备份数的合理范围。

比如,对于虚机镜像,一般只需要 1 份备份;对于开发环境的数据库快照,可设置 0~1 份备份,而对于生产环境,一般需要保留(7 天) 7 份备份;对于对象存储(如 AWS S3),可根据数据的数量和重要性,采用低冗余或标准存储类型。

- 低利用率

资源低利用率是指处于活动中状态的此类资源的用量大于业务所需。但一种资源往往会具有多种指标,所以一般不能通过单一指标的值来判定一种资源是否低利用率。与此同时,对于判定一种资源是否低利用率应选择哪些指标也往往跟业务需求及软件设计有关。所以在我们说某一种资源低利用率时一般并没有一个确切的概念。因此,在设计成本优化管理软件时,对于资源低利用率的判定规则,应提供一定的可定制能力。

另外,资源指标的合理范围一般是行业或业务经验值,没有确切的参考标准。在实践中,一般会由云优化管理产品的提供商对行业经验值整理归纳提出,或是企业人员根据自身经验或参考资料设定。同时,不管是来源于云管理产品提供商还是企业人员,随着应用和实践经验的不断积累,这个合理范围往往也会不断调整变化。

事中管理

优化管理的事中管理措施包括发现(违规)问题、报告问题及处理问题。前两项工作参照通用管理模型中说明即可,这里仅对处理问题措施即优化措施进行说明。

- 闲置资源

闲置资源优化措施:停止或终止资源。

对此类问题的处理需注意下面两点:

  1. 有些闲置资源,比如已停止的虚机挂载的存储卷,可能是因为被疏忽,也可能是充当的备份的作用,如果是后者,直接终止此资源是不恰当的,所以对于闲置资源要区分实际情况确定是否实施优化。
  2. 在停止某些闲置资源时,可能会导致其子资源也成为闲置资源,对于此情况可一并处理。

- 遗留资源

遗留资源优化措施:停止或终止资源。

由于遗留资源是一种弱问题类型,除了在判定时要增加辅助判定条件外,在执行优化措施前,最好应首先由资源实际使用者确认可否执行优化措施。

- 过度冗余

过度冗余优化措施:停止或终止过度冗余部分的资源。

如前所述,冗余本身并不是问题,所以这里的优化措施只是消除冗余中“过度”的那一部分,而非消除全部的冗余资源。

- 预留不足

预留不足优化措施:修改现有预留或实例资源匹配属性或购买预留实例。

预留资源不足有两种可能原因,一种是启动的实例资源没有匹配上已购买的预留资源,另一种是已购买的预留资源不足。如果是前者,则应优先考虑修改预留资源的匹配属性以实现匹配,如果无法通过修改预留资源属性实现,再考虑修改实例资源匹配属性[2];如果是后者,再考虑购买新的预留资源。

- 预留过剩

预留过剩优化措施:修改现有预留或实例资源匹配属性或出售预留实例。

预留资源过剩也有两种可能原因,一种是启动的实例资源没有匹配上已购买的预留资源,另一种是过量购买了预留资源。如果是前者,应优先考虑修改预留资源的匹配属性以实现匹配,如果无法通过修改预留资源属性实现,再考虑修改实例资源匹配属性;如果是后者,可考虑出售过剩的预留资源。

从预留不足和预留过剩两种问题的原因可以看到,实例与预留资源不匹配可能同时引起预留不足和预留过剩,所以多数情况下,在发生预留不足或过剩的问题时,应先仔细考察两种资源的匹配情况来消除这两类问题。同时,如果正确地按照此方式来进行优化,也会避免预留资源绝对过剩的情况(必须通过出售预留资源来优化)。但是,回到实际情况来看,由于前面在“预留不足”问题类型中关于预留资源匹配逻辑的说明,靠人工是很难准确完成两种资源的匹配的,也就是说此类优化一般都通过云管理平台(CMP)来实现。

- 低利用率

低利用率优化措施:停止或终止过剩的资源。

由于不同资源以及相同资源在不同业务中都会有不同的低利用率判定规则,所以具体的资源低利用率种类非常多样,在实施优化时也需要根据不同的种类采取不同的措施。

常见的低利用率种类有虚机资源数量过剩,缓存资源内存过剩,网络带宽过剩,数据库存储过剩,存储卷容量过剩,存储卷 IOPS 过剩,存储卷吞吐量过剩等等。由于低利用率问题种类众多,所以我们会在后面文章中分资源专题分析,这里仅就 AWS 云平台中“存储卷 IOPS 过剩”做一个示例。

假设用户当前使用的“预配置 IOPS”(标识为“io1”)的卷类型,则要降低 IOPS 有两种方法,一种是保持现有卷类型,并将预配置 IOPS 的值降低到合适值(同时可能伴随减少卷大小);一种是将卷类型变为通用卷(标识为“gp2”),并修改卷的大小,使其基准 IOPS 达到满足需求的合适值。如果仅从降低 IOPS 这一指标值的角度,这两种方法是等价的。但需要注意的是,我们对存储卷 IOPS 过剩这一问题优化的根本目的是节省成本,而非仅是表面上降低这一指标值。我们知道,存储卷的成本由三个因素决定:卷类型,卷大小和预配置 IOPS(对于通用卷类型,不包含此因素)。所以我们需要在给定预配置 IOPS 或基准 IOPS 取值的情况下,通过调整卷类型和卷大小两个因素,来寻求存储卷成本的最小值。

事实上,卷类型、卷大小、 IOPS 值及卷成本之间确实存在确定的函数关系,因此上述求最小值的目标是可以实现的。但因为这些函数关系都是非线性的,所以需要通过较复杂的验算才能得出。考虑到此篇文章的重点是研究方法论,所以这里将不做详细的验算,但为了表明其复杂性,下面给出卷成本与卷类型及卷大小:

EBS 年成本 vs EBS 大小

以及通用卷类型基准 IOPS 与卷大小的函数曲线:

EBS 基准 IOPS vs EBS 大小

实际上,要完成上述的验算,实际还需要提供预配置 IOPS 与其成本(此成本独立于卷大小产生的成本)的函数关系。因为这一关系是连续的和线性的,比较简单,所以不再给出函数曲线图。

事后管理

同通用管理模型中说明。

下期预告

下期文章:《云成本管理方法论(五)——优化效果测量模型》,将给出一些不同的优化效果测量模型并分析其优缺点。在实践中可根据具体应用场景来做选择。


  1. 严格来说,EC2 预留实例有三种预留类型:标准 RI、可转换 RI 和计划 RI。这里只给出了标准 RI 可用区范围(相对于区域范围)的匹配规则。对于完整的匹配规则,我们将在后面虚机相关的专题文章中讨论。 ↩︎

  2. 相较于修改预留资源,修改实例资源的匹配属性需要更繁复的操作,并存在一定风险,所以优先应选择前者。 ↩︎