云成本管理方法论(一)——云成本管理模型

由于零固定投资和具有弹性等显著优势,云计算已被绝大多数的企业所采用[1]。但与此同时,由于尚未形成有效的管理实践,云资源的过度使用和浪费已成为云用户关注的最主要问题[2]

云用户最关注的问题和挑战

其中,据 RightScale 调研结果企业云服务使用费用普遍存在 30% ~ 45% 的浪费。另据 Gartner 数据,2017年云服务(仅包括 IaaS 和 PaaS)市场额度约在 460 亿美元,因此仅 2017 年,企业在云服务使用中的浪费达到 140 亿美元以上

来源:Gartner - Worldwide Public Cloud Services Forecast(2017年10月)

可以看到,对云服务成本的有效管理已成为云用户的迫切需求,同时,对此问题的研究具有巨大的市场价值,因此,作者将在后继展开一系列系统的分析研究,尝试形成一套尽可能全面完整的云成本管理方法论,以便为云用户和云管理软件提供商提供有助的参考。

内容计划

要真正管理好云资源成本,方法论和管理措施同样重要,前者为我们提供一个可行的探索途径和指导,后者将为我们提供切实可操作的方法。所以要建立一套可行且可操作性的云成本管理实践体系,必须兼顾这两者。所以作者也将尝试从这两方面来做一个完整的探索和讨论。

就目前想到的,作者计划按如下大纲来完成这一系列文章:

  • 一、《云成本管理模型》 —— 建立云成本管理基本分析框架
  • 二、《云成本管理之使用管理模型》 —— 具体化使用管理场景下的云成本管理模型
  • 三、《云成本管理之优化管理模型》 —— 具体化优化管理场景下的云成本管理模型
  • 四、《云成本优化效果测量模型》 —— 分析云成本优化效果不同测量模型及其优缺点
  • 五、《计算资源云成本管理分析》 —— 根据不同云平台下不同类型计算资源的共性及差异,细化和补充其管理措施细节
  • 六、《存储资源云成本管理分析》 —— 根据不同云平台下不同类型存储资源的共性及差异,细化和补充其管理措施细节
  • 七、《网络资源云成本管理分析》 —— 根据不同云平台下不同类型网络资源的共性及差异,细化和补充其管理措施细节
  • 八、《其他资源云成本管理分析》 —— 根据不同云平台下不同类型非计算、存储、网络类资源的共性及差异,细化和补充其管理措施细节

云成本构成要素

云成本是指云用户在特定时间内使用特定数量的云资源或服务所产生的费用[3]。像任何商品的成本一样,云资源成本由两个变量决定:使用量和单价,我们将它们统称为“云成本构成要素”。出于表述的便利,我们后面一般会将这两个变量称为用量和价格。因此有:

云成本构成要素:用量、价格

云成本构成要素

需要注意的是,在很多情形下用量是时间相关的,即用量是资源静态数量与使用时长的乘积。如 1 台虚机运行 1 小时所产生的费用,1 GB 块存储 1 个月产生的费用等。

云成本管理模型

对于云成本的管理,我们的基本思路是,要管理或控制某一因素,必须先制定出相应的规则来判定此因素是否符合期望,如果不符合期望,就需要对此因素实施既定的处理措施。

基于上面的思路,引入我们的云成本管理模型:

云成本管理模型

在此管理模型中,云成本管理活动由四个维度决定,它们分别是:

  • 管理对象
  • 管理时点
  • 判定规则
  • 管理措施

这样,可以将云成本管理定义为:

云成本管理是预先定义管理对象、管理时点、判定规则和管理措施,并在特定的管理时点,对特定的管理对象根据对相关判定规则的判定,实施相应管理措施的一系列活动。

根据在管理对象上的差异,我们将云成本管理分为两大类:使用管理和优化管理。使用管理的管理对象是一个个单独的资源对象,优化管理的管理对象是资源指标及不同资源之间的关系。

云成本使用管理与优化管理

下面对这四个维度分别进行说明。

管理对象

如前分析,云成本由用量和价格两个云成本构成要素决定。同时,作为云成本管理的两种类型,使用管理和优化管理的核心目标都是成本,因此这两个要素将是基本的管理对象或对管理对象的分类依据。下面分别说明。

什么是管理对象?

- 使用管理

在使用管理中,对于云成本我们也有会一些直接的管理期望(如成本预算),因此它也需要作为一个独立的管理对象。因此,使用管理包含如下三个管理对象:

  • 成本
  • 用量
  • 价格

- 优化管理

如前所述,优化管理的对象是资源运行指标或资源对象之间的关系,因为不同资源之间的关系较为多样,难以事先列举,所以我们暂仅对管理对象做如下分类:

  • 资源关系类
  • 资源指标类

管理时点

管理是一个系统工程,所以对管理对象的管理不能只在对资源的使用行为进行时进行。一般地,我们需要在事前、事中和事后三个阶段都进行管理。当然,因为这三个阶段有其不同特点,所以管理目标和内容也会有所不同。

什么是管理时点?

管理时点是预定的可明确界定的实施管理行为的时间点。管理时点可以是确定的时刻,可以是某些阶段,也可以是特定事件的发生点。就我们要研究的内容,我们定义如下几个管理时点:

  • 事前
  • 事中
  • 事后

这里的“事”,对于使用管理是指使用云资源的活动,既包含创建、删除资源等有明确时间点的活动,也包括保持虚机运行、保持数据持久化状态等时段性的活动;对于优化管理,是指可优化问题的检查和处理活动。

判定规则

判定规则是指对管理对象的限制、约束和期望规则。判定规则往往会以口头、书面或是程序逻辑等多种方式体现,同时这些不同方式对于参与者的约束程度也是不同的,比如说口头要求的约束强度会比较弱,而固化的程序逻辑的约束强度会很强。

什么是判定规则?

根据约束强度从弱到强的顺序,我们把常见的一些判定规则类型罗列如下:

  • 口头要求
  • 实践示范
  • 制度规范
  • 程序逻辑

其中,“实践示范”是指未书面描述,但现有参与者正在执行的流程或规则。通常来说,判定规则的强弱会影响管理的成本和效果,比如约束强度俞强的类型,其前期准备阶段的成本会更高,但后期执行的成本会更低,同时执行效果会更好。

另外,需要特别注意的一点是,对于一套用于实际执行的判定规则,其每项规则应是可衡量的。也就是说,应有明确的算法或标志可判断某一规则是否被违反。

管理措施

首先,定义两个名词:

  • 违规 —— 违反判定规则
  • 合规 —— 符合判定规则

进而有如下定义:

管理措施是判定违规,并报告及处理违规的一系列活动

可以看到,违规是管理措施的核心关注,所以也可以说,管理措施就是围绕违规进行的各项活动。

什么是管理措施?

在不同的管理时点,其管理措施会有所不同,可以做如下分组: 事前:

  • 制定规则

事中:

  • 发现违规
  • 报告违规
  • 处理违规

事后:

  • 改进规则

下面逐个做具体说明。

- 制定规则

在前期制定判定规则详细规则说明和可行的判断方法。

- 发现违规

发现违规的难点在于对判定规则是否被违反的判定。一般来说,判定规则强度越弱,其是否违规的界限会越模糊,同时对于违规的判定结果也越不确定。

而发现违规是后继管理措施的前提和基础,所以判定规则的强度对于管理措施的可行性及效果有着关键的影响。所以,在条件允许并具有经济可行性的情况下,应制定强度尽可能高的判定规则。

对于如何发现违规,一般有如下的一些方式:

  • (人工)随机抽查
  • (人工)定期巡检
  • (人工)节点检查
  • (程序)定时扫描
  • (程序)事件判定

其中,节点检查是指在流程的特定节点检查判定规则是否被违反,从而决定流程的下一步走向。 事件判定是指在发生资源操作或监控事件时,判定此操作是否将要导致或已经引起判定规则被违反,从而决定拒绝还是许可此操作。另外,对于(实时)监控情形,根据其是轮询触发还是事件触发,应归于定时扫描或事件判定,所以不将监控作为单独的方式列出。

- 报告违规

报告违规的方式比较多样,一般有:

  • 电话
  • 消息(包括手机短信、IM软件发送的消息及应用通知等)
  • 邮件(包括文档)
  • 网页
  • API

等等。具体采用何种违规报告方式,一般与违规的发现方式有关,比如对于人工发现方式,一般会通过电话或邮件报告,对于事件判定方式,一般会通过 API 返回值报告。

- 处理违规

对于使用管理,处理违规的方式一般只有两种:

  • 许可
  • 拒绝

许可即允许创建资源或允许资源继续运行;拒绝指拒绝资源创建请求,或中止正在运行或使用中的资源。

但对于优化管理,处理违规的方式与管理对象、管理时点、资源种类等因素均有关系,因此具体内容非常多样,我们将在后面专门研究。

- 改进规则

根据前置管理措施的执行情况和分析结果,需要对判定规则不断进行改进。这样才可以使云成本管理活动形成一个持续的正向反馈闭环。

云成本管理流程

在云成本管理模型中,我们定义了三个管理时点:事前、事中和事后。这三个管理时点前后相连形成一个循环,构成了一个闭环的云成本管理流程。

云成本管理流程

我们也可以将三个管理时点称为三个阶段,因此云成本管理流程就是按照事前、事中、事后的顺序循环往复这三个阶段,并在每个阶段中实施其相应的管理措施。

下面对这三个阶段做进一步的说明。

事前管理

事前管理措施

在事前管理阶段,主要的管理措施是制定详细、准确和具有可操作性的判定规则。这里的“可操作性”是指判定依据应该有切实可行的获取方式,同时,判定结果应该是确定的、无二义的。

事前管理阶段的工作需要缜密细致,同时相对单调,但这一阶段可以说是三个阶段中最重要的,这一阶段的执行质量将直接决定着后继阶段的执行效果。

事中管理

事中管理措施

对于不同的判定规则,其事中管理的基本措施是一致的,即包含如下三项内容:

  • 发现违规
  • 报告违规
  • 处理违规

具体来说,在创建资源或收到资源扫描结果时,将应用事前阶段创建的判定规则来尝试发现违规。如果发现了违规事件,则将报告此违规。在接收到违规事件后,一般有两种处理方式:忽略和处置。

具体按忽略还是处置处理,由具体的业务要求决定。另外,对于没有明确指定违规处理措施的情形,将默认按忽略处理。

事后管理

事后管理措施

事后管理措施对不同的判定规则也是一致的。事后管理措施的基本内容是将资源当前及历史的总体情况通过报表呈现出来,以便报表查看者了解总体信息及改进判定规则。

一般来说,有如下三种类型的事后管理报表:

  • 资源报表
  • 成本报表
  • 违规报表

其中,如上报表都可以按资源类别,云平台,云账号,成本单元,项目等分组统计。另外,违规报表是对违规事件的统计,其汇总了历史违规记录和当前正在发生的违规事件。

下期预告

下期文章:《云成本管理方法论(二)——云使用管理》,将会针对使用云资源(相对于优化云资源)这一更具体的场景细化管理模型中的判定规则及管理措施等内容。


  1. 根据 McafeeRightScale 等机构的调研数据,已有 90% 以上的企业在使用云服务。
  2. 根据 RightScale 《2017 State of the Cloud Survey》 中调研数据,成本管理已成为成熟的云用户其最为关注的问题。
  3. 从财务实践上来说,成本和费用是不同的,但对于我们要研究的问题,没有必要区分这两个概念,所以在文中会将这两个词作为等价的概念混合使用。另外,由于在讨论成本问题时,多数情形下不需要区分云资源和云服务,因此后面在无特殊说明时,将用“云资源”指代“云资源或云服务”。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

什么是好代码

什么是好代码 你如何定义好的代码?本文通过咨询65个开发人员同一个问题从而得出了一个伪科学的答案。 首先我们相信写好代码是非常重要的。为什么呢?首先,好代码...

23810
来自专栏敏捷开发&项目管理

敏捷项目需求拆解&发现用户故事

需求文档和敏捷中的Epic,User Story, Task之间是什么关系以及如何将需求文档转换成敏捷方式的描述,指导开发人员。 一直是很多公司团队比较困扰的问...

5556
来自专栏量子位

TensorFlow技术主管详解:Google是怎样管理开源软件的

唐旭 编译自 O’reilly 量子位 出品 | 公众号 QbitAI TensorFlow开源一年半以来,在GitHub上已经有了820位贡献者,close了...

2864
来自专栏熊二哥

考试备战系列--软考--01基础架构概念

由于一些知识性的特殊需要,要求掌握比较过时的软件架构设计理论,因而作此文案用于记忆和查询。该部分内容与现实中软件开发相去甚远,也可以理解一些东西之间确实存在很大...

1906
来自专栏JavaQ

我的Java开发之路

最近有一位小伙伴通过公众号给我留言, “我参加工作没多久,看着圈里的技术大牛,特别羡慕,也渴望成为技术大牛,想让您分享一下从小白到大牛是怎样练成的,我该如何提...

4438
来自专栏about云

程序员:如何提高影响力,为自己代言

影响力,让梦想离你更近。 试想一下,有一天你开发了一个新的语言。它比现有的某某主流软件,运行效率将提高了50%,开发效率提高了100%。接着,你在github...

3837
来自专栏JAVA高级架构

卷首语:什么样的人可以称为“架构师”

我曾问过很多自称热爱代码的程序员的发展规划,大多都回答说期望成为一名架构师。而在招聘一方,有的团队会过滤掉多次提起架构一词而一点不提具体内容的简历。可见,虽然在...

3709
来自专栏ThoughtWorks

庖丁解牛:产品需求分析|洞见

在庄子的《南华经》中有一则寓言。说是有位叫丁的厨师,替梁惠王杀牛, 其技法之娴熟,有行云流水一般的顺畅感。惠王就问他为什么有如此高超的技术。他回答说:“臣所喜好...

3677
来自专栏机器学习算法与Python学习

Python数据分析相关资料整理(博客&视频链接)

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 我们会再接再厉 成为全网优质的技术类...

5548
来自专栏Golang语言社区

用医生的思考方式调试你的代码

“现在的编程工作就像是对你需要解决处理的部分做科学研究。” ——Gerald Sussman 设计和维护好的软件就像是一个抵制复杂度的永无止境的奋斗过程。任何足...

3546

扫码关注云+社区

领取腾讯云代金券