云成本管理

日期:2019-05-08 10:05:19 | 人气:

不想对每个月的云账单感到大吃一惊?采用含有容器、容量预购等措施的云成本管理策略将有助于您控制好难以驾驭的云开支。

在云中开展业务与您在本地运营是完全不同的。既然运营不同,那么控制成本的策略也就不尽相同。

从财务角度来看,数据中心需要大量的建设资金,服务器和软件许可也需要额外的资金,还有用于服务器和冷却系统供电,以及维护和管理的运营支出,这类支出虽然不多但是也非常重要。

在云中,没有资金投入。相反,有很大的运营支出,包括服务器虚拟机实例、存储、网络、软件许可等其他繁琐的开支。

从成本管理角度来看,把计算负载转移到云中有明显的好处,但也存在重大风险。

当有人想在您的数据中心安装新服务器机架时,需要做好订单、等待批准、解释理由,整个过程是完全受控的。整个过程要经过批准,很多公司会需要6个月的时间。机架安装好后,就没有人再注意它负载有多重,是不是在用,除非它的负载太重以至于不能正常工作。是的,这在成本上是不明智的——所以要在数据中心推动虚拟机和容器(例如,Docker)的应用,以提高服务器的利用率。

如果有人想在云中建立新的虚拟服务器集群,可能只需要几分钟的时间就能够启动了。虽然您会有政策要求经过管理审批后才能使用新的云资源,每个部门的云资源也都有配额,但几乎每个有云账户的人在有需要时,都可以建立他们想要的东西,事后才作出解释——如果管理层发现了。

如此的自由究竟是好还是不好,取决于您的观点。从业务敏捷和开发的观点看,这很好。从财务管理的角度来看,如果做得好,那还说得过去,否则就是潜在的灾难。

在本文中,我将讨论怎样避免“让您大吃一惊的云账单”。我从优化云开支的个人技术策略开始,以云开支管理的主题来结束。

1.资产利用率

据埃森哲云全球总经理Michael Liebow,云服务会导致“僵尸灾难”,不是人类的僵尸,而是僵尸服务器。僵尸服务器利用率很低甚至没有用:花了您的钱,但没干什么事。

Liebow和他的同事们还提到了“孤儿”,这是被遗弃的服务,使用这些服务的资源在用完后已经被删除了,还有“暴饮暴食者”,这是过度服务的虚拟机。如果管理不好,这三种不正常的状态很容易让您的云账单猛增20%~40%。

及时地找到云中未充分利用的资产并非易事,也不会自动完成。云提供商的账单只是按月提供,对于一家拥有相当规模云产业的大企业而言,这可能含有一亿多条费用。如果您一直等着账单生效,您才会发现已经闲置了30天的虚拟机等服务还在产生很高的费用,早就应该被关闭或者减小其规模。

当您要管理多个云的多个帐户对,这会变得更难。好消息是,您可以通过电子方式每天从您的云提供商那里得到账单信息;坏消息是您可能需要许可或者开发新工具来管理你的云资产。

2.容量预购

您减少云资源开支的一种方法是以折扣价购买基本容量,这个方法可以使用多年。每一云提供商在这方面都有点不同,会定期的更改其计费策略。警告:这是一个让人难以理解的领域,即使提供商声称对定价透明。

亚马逊对其预购计划的解释如下:

“与按需实例定价相比,保留实例有更大的折扣(高达75%)。此外,当保留实例被分配给特定的可用性区域时,提供了容量保留,使您觉得更应该在需要时启动实例。

对于资源使用量比较稳定或者可预测的应用程序,保留实例要比按需实例成本低很多。”

亚马逊建议以下情形使用保留实例:

● 资源使用量比较稳定的应用程序

● 可能需要保留容量的应用程序

● 客户承诺使用EC2长达1年或者3年期,以降低总计算成本

作为一个具体的例子,在北弗吉尼亚区有一个运行Linux的计算优化c4.8xlarge虚拟机实例,它的按需成本是每小时1.591美元,提供36个虚拟CPU和60GB的内存。如果您把这个实例保留一年,一次性提前付清,您的费率将降至每小时0.947美元,节省了40%。标准3年期也是一样,费率降至每小时0.621美元,节省了61%。对于更灵活的可兑换的3年期,费率是每小时0.739美元,节省了54%。如果前期付款少,等效费率会略有上升,但差额与资金的时间成本大致相当。

客户可以灵活地更改标准保留实例的可用区域、实例大小和网络类型。可兑换3年期保留实例更加灵活,例如,能够使用不同的各种实例和操作系统,还可以长期租用保留实例。

Azure在其通用D32-v3实例中有容量相似的虚拟机(CPU更少,RAM更大),它提供了32个虚拟CPU和128GB的内存,按需成本是每小时1.60美元。Azure不提供保留实例,相反,它提供了一种企业协议,预先承诺会降低价格,尽管还没有公布有多少折扣。

谷歌提供了具有32个虚拟CPU和120GB内存的n1-standard-32虚拟机,每月持续使用会有折扣,成本是每小时1.52美元。您不必承诺会继续使用更多的资源以获得持续使用折扣,相反,它会随着使用时间的递增,按照25%、50%和75%的使用级别,自动应用折扣。

谷歌还针对虚拟机提供了承诺使用折扣,您可以通过购买1年或者3年的承诺合同来获得折扣。任何应用了承诺折扣的资源将不再应用持续使用折扣。采用了承诺使用折扣后,虚拟机的价格会比普通虚拟机价格低57%。把折扣应用于某一区域大量的vCPU或者内存,这样,它们就不会受到实例机器类型变化的影响。承诺使用折扣没有前期成本。每个月都会对您的账单实行承诺折扣。美中不足的是,无论您使用与否,都要按照承诺来付费。

3.Spot和低优先级实例

亚马逊EC2 Spot实例支持您出价购买空闲亚马逊EC2计算资源。由于Spot实例与按需定价相比通常会有折扣,因此显著降低了运行应用程序的成本,在相同的预算下增强了应用程序的计算能力和吞吐量,并支持新类型的云计算应用。

当您的出价高于Spot价格后,就会运行Spot实例,与按需实例相比,会有50%~90%的折扣。采用Spot实例,对您的收费永远不会超过您设定的最高价格。当您的实例运行时,按照使用期间的实际使用量收取Spot费用。如果Spot费用超过了您设定的价格,在终止您的实例之前两分钟会通知您,不会针对您实例运行的这部分时间来收取费用。

如果您在Spot实例请求中包含了持续时间请求,那么实例会继续运行,直到您选择终止它,或者直到设定的时间结束为止;由于Spot价格的变化,您的实例不会被终止。据我刚刚了解到的,在北弗吉尼亚区,一个c4.8xlarge实例的Spot实例运行Linux的成本是每小时0.3591美元,而按需成本则是每小时1.591美元。

Azure称其与亚马逊Spot实例对应的产品为“低优先级”实例。据我所知,在东部区,一个低优先级D32-v3实例的成本是每小时0.345美元,按需的成本是每小时1.60美元。但是,在我的账户里,不能选择这一选项。

谷歌与Spot实例等效的产品被称为“抢占式实例”。对于这种抢占式的实例,您能够以比普通实例低得多的价格来建立并运行它。然而,计算引擎如果要使用这些资源用于其他任务,那么可以终止(抢占)这些实例。抢占式实例有很大的计算引擎容量,因此,其可用性随着使用情况而变化。在北弗吉尼亚区,抢占式n1-standard-32实例目前的成本是每小时0.3424美元,而全价是每小时1.712美元,持续使用的价格是每小时1.52美元。据谷歌,对于每一项目,每7天,抢占式费率通常在5%至15%范围内变化。

4.容器

未充分利用的服务器和空间有限的新机架促使企业把数据中心的一些专用服务器转换为虚拟机主机。然后,当虚拟机主机内存的使用成为问题时,他们把一些虚拟机转换为容器主机。

虚拟机的虚拟化与容器虚拟化之间的基本区别是,除了应用软件,虚拟机含有完整的操作系统和一套完整的虚拟硬件,而容器只含有部分操作系统、部分库和应用软件。虚拟机和容器都支持与其他应用程序的隔离;虚拟机隔离度更高,安全性更好,但在内存使用方面成本较高。

RAM是云中最昂贵的租用资源之一,与虚拟机相比,容器通常只需要三分之一的RAM资源来运行相同的软件。这就使得在容器中运行您的云资产在成本上非常吸引人,只要您觉得隔离度低不是问题即可。

直到最近,容器的使用还局限于基于Linux的系统,还缺少适用于容器的编排、工具支持和仪器。这些不再是真正的问题,把负载迁移到云中的容器是简化操作和减少云开支的好方法。

在AWS,运行容器没有额外的费用——您只需要为底层虚拟机和存储付费。Azure允许您直接从资源池中创建和使用容器,每建立一个实例需要0.0025美元,每GB-秒的成本是0.0000125美元,每内核-秒是0.0000125美元。例如,如果您一个月内同时运行3个容器,每个容器使用1GB的内存和2个内核,那么您每个月为其付费不到300美元。

谷歌容器引擎在计算引擎虚拟机实例之上运行Kubernetes容器节点群;您为虚拟机付费。需要为Kubernetes管理付一些费用,6个或者多个节点集群的费用是每小时0.15美元。

5.无服务器计算

无服务器云计算,或者更准确的称之为“函数即服务”,有可能大幅度减少把负载送入云端的成本和相关的工作 。AWS Lambda、Bluemix OpenWhisk、谷歌云,以及Azure函数都提供了一种模型,开发人员可以在其中定义一个按需运行的函数,为函数创建触发器,为函数设置内存分配。云基础设施负责在函数需要运行时为其分配一个容器,因此开发人员不用担心容量或者可伸缩性。

无服务器计算的成本通常包括基于触发器的数量(一般是可以忽略不计的费用)、执行时间和所使用的内存量。根据不同的平台,一个函数调用的运行时间被限制在5至10分钟,实际更常见的是不到一秒钟的运行时间。大部分平台还限制了可以同时运行的函数数量,每个月为函数提供免费的捆绑容量。

作为经验,如果所有函数的执行时间每个月不到一百万秒,或者大约每个月的20%,那么使用无服务器计算函数要比运行小虚拟机便宜。不同的供应商提供的数量有所不同,您应该将函数与全价或者打折的虚拟机实例进行比较。

进行成本分析时,您还需要考虑开发和运营时间,由于大部分管理工作交给了云提供商,因此,无服务计算函数在这方面的成本要低于虚拟机。对于开发和运营成本,使用无服务器计算函数比运行小虚拟机成本更低——即使所有函数执行使用时间达到了每个月的75%。

使用无服务器计算函数的一个缺点是计费的复杂性。如果把函数交给虚拟机,那么无论函数被调用多少次,虚拟机每个月只是生成一条计费。如果您的无服务器计算函数每个月被调用400万次,那么计费日志中会有400万个事件。

6.云开支管理

考虑到云定价的复杂性以及数据中心管理的差异,很多公司需要采用云IT开支管理的新工具。如果在互联网上搜索“云开支管理”、“云成本管理”和“云管理平台”,至少能找到6种可行的方案,以及一大堆不相干的结果。虽然您可以采用自带的工具对资源进行标记和报告,去管理一个云平台的使用,但如果您有两个或者多个云提供商,就很难充分发挥云应用的优势,也难以管理好成本。

无论您使用什么工具,管理云开支最关键的一点是标记您的资源。如果你能查看计费条目,立即就能看出这是与Fizzpop产品相关的测试和开发费用,这要比您只知道虚拟机的序列号好得多。如果能把标记放到报告和管理工具中,这样,您可以放大查看图中的“僵尸”设备,看到它的目的和群组关系,您可以关掉相关设备,对没有使用的服务器虚拟机采取一些措施。

云成本管理并非易事,如果不采用大部分IT企业应用于数据中心的ITIL流程和工具,很难进行云成本管理。 为有效地管理云资产,您应该每天都监控您的成本,并在必要时进行干预,例如,关闭资源、缩减资源,或者使其按计划运行,而不是一直运行它们。

作者: Martin Heller

Martin Heller是InfoWorld的特约编辑和审稿人。他曾是一名网络和Windows编程顾问,1986年至2010年间开发过数据库、软件和网站。他最近担任的职位是Alpha Software的技术和教育副总裁,以及Tubifi的董事长兼首席执行官。

编译: Charles

原文网址:http://www.cio.com/article/3226377/cloud-computing/6-cloud-cost-management-tips.html