点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

云计算成本优化终极指南

  • 2022-01-28
  • 本文字数:3986 字

    阅读完需:约 13 分钟

云计算成本优化终极指南

Pinterest 由于在某个节日期间对云计算使用量的增加,该公司的云计算账单大大超过了原先的预估。Pinterest 必须计划 1.7 亿美元的预留资源上向亚马逊云科技再额外支付 2000 万美元。

 

云计算的可扩展性是福也是祸。过度配置的情况确实存在,每到季末甚至会让科技巨头的首席财务官们瞠目结舌。解决云计算对成本长远影响的唯一办法就是对云计算实施成本优化。

 

可能有人会问:值得在优化云计算成本上花费时间吗?可以先看看通信、娱乐、SaaS 和电子商务领域公司报告的优化收益。

 

  • Zoom 公司在 2021 年一季度的财报中称,其毛利率从前一季度的 69.4% 上升至 73.9%,这主要是由于在公共云资源的优化上下了很大功夫。

  • Spotify 开发了一款叫 Cost Insights 的自定义工具,用于追踪云计算开支,同时鼓励工程师们掌握云计算支出的所有权,这使其每年节省了几百万美元的云计算开支。

  • Segment 在基础设施决策上做了一些增量优化,使公司的毛利上升了 20%,流量增长了 25%,同时减少了 30% 的基础设施成本。这一切都是在三个月之内完成的。

  • 电子商务初创公司 La Fourche 发现自己的云计算账单急剧飞涨,因此启动了 CAST AI 节约报告,以寻求优化机会。通过启动自动化优化,公司将每月云计算的费用降低了 69.9%,而无需增加工程师的工作量。

 

可以看出,做云计算的成本优化是值得的。那应该如何避免云计算费用失控呢?

 

 

从了解你的云账单开始

 

查看你的云计算账单时,你很有可能会感到困惑。由于每项服务都有确定的收费标准,所以账单变得又长又复杂,难以理解。能够知道自己的使用情况并给能信心十足地作出决策几乎是不可能的。

 

这还只是在一个云和一个团队的费用,多个团队或者多云来结算就更麻烦了。

 

费用分摊就是要显示出谁在利用什么资源,否则无法知道应该是谁来承担这笔费用。但在 Kubernetes 上运行的动态基础设施中,费用分摊颇具挑战性。

 

对云计算账单进行核对并分摊费用,能够帮助企业更好地预测需求,并且保证有足够的资源,并且避免过度配置。但是,估算将来需要的资源并不是一件容易的事情。以下可供参考的一系列示例:

 

1. 获取可见性,并对消费报表进行分析,从而确定消费模式。

2. 利用历史数据对峰值资源的使用情况进行定期分析和处理。

3. 考虑到顾客的季节性需求,可以看看它们是否和峰值资源利用有关系。如果有关系,就能更好地做出预估。

4. 对资源的使用情况进行定期监控,并设定警报来控制云计算费用。

5. 建立应用程序级的费用规划,方法是衡量一个应用程序或工作负载所需的具体费用。这让所有云计算基础设施的费用计算都变得方便。

7. 查看云计算供应商的定价模式,并计划一段时间的容量需求。

8. 将所有的数据集中到一起,更好地了解费用情况。

 

上述任务并非一劳永逸,必须定期实施,才能达到理想效果。

 

在这里了解更多关于如何分析你的云计算账单:《为你的云计算账单而大吃一惊?五个常见问题及解决方法》(Surprised by your cloud bill? 5 common issues & how to deal with them)

选择最佳的计算资源

 

如果你的应用程序对计算资源依赖性强,那么合适虚拟机的选择会对费用产生很大影响。但是亚马逊云科技有近 400 种不同的实例。相似的实例类型在不同的云厂商里提供不同的性能,甚至在相同的云计算环境下,更昂贵的实例并不等同于更高的性能。

 

具体如何选择最佳的计算资源呢?

 

  1. 定义最低要求

 

确保在所有计算维度包括 CPU(架构、计数、处理器选择)、内存、固态硬盘和网络连接性上都进行此操作。

 

  1. 选择正确的实例类型

 

你可以从不同的 CPU、内存、存储和网络能力组合中选择,并将其封装到实例类型中,以便对这种能力进行优化。

 

  1. 设置实例的大小

 

请记住,实例必须有足够的容量来适应工作负载,必要时还需要包含一些选项,如突发事件。

 

  1. 检查不同的定价模式

 

三大云计算供应商提供了不同的收费标准:按需(即付即用)、保留容量、Spot 实例和专用主机。这些选项都各有利弊。这份指南对它们进行了详细的介绍:《如何为工作选择最佳的虚拟机类型,并节省你的云计算费用》(How to choose the best VM type for the job and save on your cloud bill)。

 

用 Spot 实例实现更大的节约

 

向亚马逊云科技和其他大型云计算供应商购买闲置容量是非常明智的,因为 Spot 实例比按需购买要便宜 90%。但这也存在一个问题:供应商有权随时收回这些资源。你必须确定你的应用已经做好了准备,然后才能加入 Spot 行列。

 

以下是使用 Spot 实例的一些方法:

 

  1. 检查你的工作负载,看其是否为 Spot 实例准备就绪

 

能否经受中断?完成工作需要多长时间?是否是一项重要的工作负载?这些问题和其他一些问题可以帮助确定 Spot 实例的工作负载。

 


  1. 检查云厂商的服务

 

查看不太流行的实例是一个好主意,因为它们不太可能被中断,并且可以运行更长的时间。在解决一个实例之前,检查它的中断频率。先检查其中断的频率,然后再决定一个实例。

 

  1. 是时候投标了

 

设置你要为你所选的 Spot 实例支付的最大数额。请注意,它只会在市场价格符合你的报价(或更低)情况下运行。我们的经验是把最高价格设定在按需定价的水平。

 

  1. 分组管理 Spot 实例

 

通过这种方式,你就能够同时请求多个实例类型,从而提高获取 Spot 实例的几率。为使上述所有功能正常工作,请准备好在配置、设置和维护任务上花费大量时间(除非你决定将其自动化)。

 

想了解更多关于现货实例的信息?这里有一份完整的指南:《Spot 实例:如何将亚马逊云科技、Azure 和 GCP 的成本降低 90%》(Spot instances: How to reduce AWS, Azure, and GCP costs by 90%

 

不要被储蓄计划诱惑

 

提前一年或三年,以较低的价格预订容量是个有趣的选择。既然你已经确定了无论如何都要用这个服务,那为何不预先购买呢?但是,预先购买只是看上去容易。预测云计算的费用很难。即使是那些有专门负责云计算费用优化的公司也会失手。

 

在不清楚未来一到三年内团队需要多大容量的情况下,应该如何提前规划?这主要是像预留实例和储蓄计划等产品的问题。

 

关于预留容量,你需要了解如下内容:

 

  • 预留实例的工作方式为“非用即失”,每闲置一小时,你的团队就会损失一小时(包括你可能获得的任何经济利益)。

  • 如果你对某项特性资源或者支出作出承诺,那么会被认为合同期间你的需求不会发生变化。但即便是一年的承诺在云端也是永恒的。一旦需求超过了预期,那么你就要为其付出代价——就像 Pinterest 那样。

  • 一旦出现新问题,你的团队就会被迫投入更多资源。或者,你会发现自己已经支付了未被充分利用的容量。无论是哪一种情况,你都是输家

  • 与云计算提供商签署这样的合同,你将面临供应商锁定的风险。今后的 1~3 年中,你会一直依赖这个供应商并接受他们提出的任何变更。

  • 如何选择最佳的保留资源是非常复杂的(只需参阅上文的第 3 点)。

 

这还只是冰山一角。我们写了一整篇文章深入探讨了预留实例的细节:《亚马逊云科技保留实例和节省计划真的能降低费用吗?》(Do AWS Reserved Instances and Savings Plans really reduce costs?

 

选择合适的工具

 

为控制云计算费用,公司会采用多种费用管理、优化策略和解决方案:

 

  1. 费用可见性和分配。利用各种费用分摊、监测和报告的工具找出费用的源头。其中,实时费用监控尤其有效,因为一旦超出了设定阈值,监控系统就会立刻发出警报。Azure 上的一项计算操作使 Adobe 的一个团队花费超过了计划的 50 万美元云计算费用。这种情况用一个警报就能阻止。

  2. 成本预算和预测。如果你处理了足够的历史数据并对未来需求有一个合理的认知,就可以估算出你的团队将需要多少资源,并计划你的预算。这听起来很简单?事实并非如此,Pinterest 的故事很好地说明了这一点。

  3. 传统成本优化解决方案。你可以在此处结合前两点中获得的所有信息,建立一个全面的云计算开支图表并找出可能提高的目标。市面上很多解决方案都能帮到你,比如 Cloudability 或 VMware 的 CloudHeath。但是大部分时间,他们只是给出了一些让工程师手动实施的静态建议。

  4. 自动的、云原生的成本优化。这是减少云端费用最有效的方法。这种类型的优化可以全天候节省 50% 以上的成本,而无需团队进行额外的工作,即便是手动优化也是如此。能够迅速响应资源需求和价格变动的具备完全自主和自动化的解决方案是最好的。


云自动化实现最大节约

 

从以上几点可以看出,手工成本优化是一个复杂而耗时的过程。

 

无论工程师的技能水平如何,许多成本优化任务都不适合人工去做。 你会发现分配、理解、分析和预测云计算的费用有多难。然后,你需要进行基础架构调整、调查定价计划、启动更多实例并执行各种其他任务来创建具有成本效益的基础架构。

 

自动化可以使你很容易地做下面的事情:

 

 

出于以下原因,自动化解决方案在可以摆脱上述所有任务外,还能带来更多价值:

 

  • 选择最具成本效益的实例类型和大小,以满足应用程序的需求。

  • 自动增加和减少你的云资源,以应对需求的高峰和下降。

  • 移除不使用的资源来避免浪费。

  • 利用 Spot 实例,并能优雅地管理中断。

  • 自动存储和备份、安全和合规性管理以及配置和设置更化,以帮助你在其他方面节省资金。

 

最重要的是,自动化平台能够实时实施所有这些修改,并且能够把握云计算成本优化的时机。

 

我们使用 AWS On-Demand 和 Spot 实例的组合来运行在 8 个 CPU 和 16GB 内存上运行的应用程序。然后我们决定用 CAST AI 来检查配置是否需要优化。这个平台推荐迁移到 INF1 的 Spot 实例。不过,这不是一个昂贵的、ML 专门的 GPU 实例吗?事实证明,当时那个实例实际上比我们使用的通用计算实例便宜。如果没有自动化,我们就会失去这个隐藏的宝藏。

 

 

从 Zoom、Spotify 或 La Fourche 等中可以看出,降低云成本会对企业利润产生重大影响。这通过云计算费用优化便戳手可得。但是,诸如费用监控和报表之类的标准策略只能让你用巨大的工程师时间成本换取一半的成果。


原文链接:

 

https://cast.ai/blog/the-ultimate-guide-to-cloud-cost-optimization/

2022-01-28 22:414112

评论

发布
暂无评论
发现更多内容

华为首次采用数字人全程实时手语直播,并宣布全面开放手语服务能力

叶落便知秋

Java面试过了京东五面之后,发现掌握了这些技术也没有那么难

Java 编程 程序员 面试

云图说 | 分布式缓存服务DCS—站在开源Redis前辈的肩膀上,扬帆起航

华为云开发者联盟

redis 缓存 分布式 华为云 DCS

1024程序员节的正确打开方式

云智慧AIOps社区

程序员 开源技术 1024我在现场 飞鱼 云智慧

美团的动态线程池,不依赖中间件可以实现么?

马丁玩编程

Spring Boot ThreadPoolExecutor

5G、元宇宙和被重新定义的社交出海

融云 RongCloud

顶会VLDB'22论文解读:多元时序预测算法METRO

华为云开发者联盟

数据库 华为云 多元时序预测算法 VLDB'22 华为云数据库创新Lab

TDSQL:解锁数据库前沿技术要点 | 腾讯云数据库DTCC 2021亮点回顾

腾讯云数据库

tdsql

实时通信全链路质量追踪与指标体系构建

融云 RongCloud

通信云 Qoe

你的 APP 能否精准「推送」击中用户?!

融云 RongCloud

消息推送 双十一

第 23 章 -《Linux 一学就会》- expect - 正则表达式-sed-cut的使用

学神来啦

Linux Shell linux运维 linux云计算 linux一学就会

华为在HDC2021发布全新HMS Core 6 宣布跨OS能力开放

叶落便知秋

新征程、新时势、新聚变——2021一亩地儿合作伙伴大会在京成功举办

徐州等保测评公司有哪些?联系电话是多少?在哪里?

行云管家

网络安全 等级保护 过等保 徐州

架构设计六 如何设计业务的微服务架构

nydia

微服务 架构设计

模块一作业

doublechun

「架构实战营」

按照网络规模来分,服务器分为哪几类?

行云管家

云计算 网络 服务器 IT运维

微信业务架构图和学生管理系统架构

Geek_cb2b43

如何轻松集成多厂家推送服务

融云 RongCloud

消息推送

TDSQL助力建设数字政务

腾讯云数据库

数据库 tdsql

零信任能力成熟度模型白皮书发布!内附下载资源

华为云开发者联盟

安全 隐私保护 华为云 网络架构 零信任

阿里JAVA架构师面试136题含答案:JVM+spring+分布式+并发编程!

Java 编程 程序员 面试

农业CRM系统帮助建设新农村和休闲农业

低代码小观

系统 CRM 农业 管理工具 农业管理

你分库分表的姿势对么?——详谈水平分库分表

vivo互联网技术

MySQL 分库分表 hash Range 数据库表

「The Data Way」1024 特别节目|一线工程师的开源路

SphereEx

开源 开源社区 开源青年

明道云在建筑工程行业的应用场景

明道云

谐云边缘计算大规模落地实践,带你见证边缘的力量!

谐云

云计算 边缘计算

实现服务器和客户端数据交互,Java Socket有妙招

华为云开发者联盟

socket 进程 服务器 客户端 java

微信业务架构图 & 学生管理系统架构设计

Steven

架构实战营

Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法

杨清强

Java ArrayList 与 LinkedList

码语者

Java

云计算成本优化终极指南_云计算_Leon Kuperman_InfoQ精选文章