降低云成本已连续五年成为企业最关注的项目。根据 2021 年云计算状况报告,超过 60% 的组织计划优化其云成本。本文介绍了导致云资源、时间和金钱浪费的最常见问题,以及相应的有效解决方案。
降低云成本已连续五年成为企业最关注的项目。根据 2021 年云计算状况报告,超过 60% 的组织计划优化其云成本。那么到底出了什么问题,为什么那么多的工程团队都在努力进行云优化呢?
为什么云成本优化如此具有挑战性?
公有云按使用付费模式给工程团队带来了更多的自由,但这种自由是有代价的。正如 Pinterest 等公司的云账单故事所表明的那样,有时账单数额惊人。
研究证明,大多数组织都难以应对不断增长的云计算账单。典型的公有云支出平均超出预算 24%。
有很多原因可以解释为什么这还在不断发生。这些问题通常归结为低成本可视化、复杂的云定价以及预估未来需求的问题。所有这些问题都可能会影响到你企业的花费以及需要花费的金额。
云服务供应商也不能完全帮助降低成本。仅仅解读一张云账单就可能让人望而生畏,以至于一些团队选择平日视而不见,待到月底收获“惊喜”。
2022 年需要解决的 6 大云成本优化问题
第 1 条:仍然受预留和储蓄计划的诱惑
当考虑在云上节省开支时,首先想到的是为团队使用的服务支付更少的费用。公司之所以选择储蓄(Savings Plans)或预留计划,是因为与按需定价模式相比,它们可以享受到相当大的折扣。
为一个看起来可以预测的云计算开支提前做支付计划,听起来很棒。但如果仔细观察就会发现,你不是在解决问题,而是在这个问题上得到了折扣,并承诺在接下来的几年里继续这样做。
那么,陷阱在什么地方呢?
Pinterest 预定了亚马逊云科技(AWS)价值 1.7 亿美元的服务,但随后又不得不花费 2000 万美元购买额外的资源。他们的故事说明了这样一个事实,即了解企业从现在起一到三年内需要多少容量是一项艰巨的任务。
长期依赖于一个供应商,你会失去灵活性,被锁定,并且可能不得不为不断变化的需求付出高昂的代价。
如何应对储蓄计划?最好的解决办法是完全避免储蓄计划(Savings Plans)!
不要提前购买资源,而是考虑解决云计算开销的方法:
- 规模优化(Rightsizing)
- 自动伸缩(Autoscaling)
- 任务装箱(Bin packing)
- 资源调度(Resource scheduling)
第 2 条:落入过度配置的陷阱
当团队选择的资源大于运行工作负载实际需要的资源时,就会发生过度配置(Overprovisioning)。这背后有一种安全的心态,因为没有人希望自己应用程序的运行会受到干扰。
在某些业务设置中,团队习惯于获得超出其工作负载所需的更多资源,“以防万一”。虽然从性能角度来看,这种方法对工程师来说非常有意义,但它会造成云浪费,并增加云成本。
过度配置有什么问题?最直接的答案是,它会导致云浪费和不必要的开支,并且这些开支可能会失控。
从长远来看,让过度配置成为团队中的一种习惯是一个坏主意。如果为了安全起见,你习惯了选择比工作负载所需更大的实例,那么请考虑一下随着公司和应用程序的增长,这会发生什么事情。你将会收到一份会让你付出巨大代价的账单。
把这笔钱花在更重要的事情上不是更好吗?例如,用在应对气候危机方面——顺便说一下,过度配置正在加剧这个问题。
如何应对过度配置?通常的做法是投资于定制的监控和成本管理解决方案。他们的规模优化建议可以帮助你减少对过度配置资源的依赖,但你仍然需要手动实施这些建议。
另一种解决方案是自动化。自动规模优化可以选择最合适的实例类型和大小,以满足应用程序的需求,同时降低成本。
每当集群需要额外的节点时,AI 驱动的实例选择算法就会选择能够实现最高性能的资源。
最棒的是,你的团队不需要动一根手指,因为一切都是自动发生的。
由于过度配置与许多组织的文化交织在一起,因此必须建立成本优化例程以平衡性能、可靠性和成本。在实现更广泛的组织变革的道路上,自动化可能是向前迈出的重要一步。
第 3 条:被孤立的云资源所困扰
为项目启动一个实例,但最后忘记关闭它是很容易发生的。
因此,许多团队都在努力处理没有所有权但仍会继续产生成本的孤立实例。
还记得 Adobe 的错误,即每天花费 80,000 美元计划外的 Azure 费用吗?这是一类你必须要避免的问题。
这一问题在大型组织中尤为严重,因为这些组织同时执行了许多活动,而没有实现集中的资源可视化。
在 IT 部门不知情的情况下(影子 IT)管理的活动可能占公司所有 IT 支出的 40%。此外,研究表明,影子云的使用量可能是已知云使用量的 10 倍。
孤立的云资源有什么问题?孤立的云资源意味着资金的流失,具有复杂的可持续性影响。
简而言之,数据中心消耗了大量的电力和硬件,大大增加了 ICT 行业的碳足迹(Carbon Footprint)。他们需要的能源量每四年翻一番,而 AWS 或 Azure 等供应商开放的每个新区域都会加剧这个问题。
这就是为什么减少云浪费是停止不必要的开支和相关碳足迹的关键。
如何应对这一挑战?确保只运行真正需要的资源可能很有挑战性,特别是在大型组织中。但是,如何识别并停用未使用的实例呢?这就是自动化再次发挥作用的地方了。
自动化的云优化解决方案可以随时不断扫描你的使用效率,并尽可能压缩资源。它们还可以关闭未使用的实例和进程,以降低云成本。
第 4 条:管理需求量峰谷值的效率低下
构建过电子商务基础设施的工程师非常清楚事物的变化有多快。例如,一个影响因素的提及可能意味着数百万的新销售额,或者网站在流量激增时出现下滑。
大多数其他的应用程序也会随着时间的推移而发生使用情况的变化,但在开支和性能之间取得平衡仍然是一个持续的难题。
如果你将标签页始终保持打开状态,流量峰值可能会产生大量且无法预料的云账单,如果你严格限制应用程序的资源,流量峰值会导致应用程序崩溃。
当需求量较低时,你将面临多支付的风险。当需求量很高时,你提供给客户的服务可能会很差。
是的,有云成本管理解决方案可以监控你的使用情况,如果超过设定的水平或出现任何异常,会实时向你发出报警。这些工具可以为你提供有用的建议,帮助你根据当前需求量调整云资源。
然而,手动伸缩云容量既困难又耗时。
除了要注意跟踪系统中所发生的一切外,你通常还需要注意:
- 优雅地处理流量高峰和低谷——并在你使用的所有服务中为每个虚拟机垂直伸缩资源;
- 确保应用于一个工作负载的更改不会对其他工作负载造成任何问题;
- 自行配置并管理资源组,以确保它们包含适合你的工作负载的资源。
如何解决这个问题?这是云自动化可以发挥作用的另一个领域,可以帮助你节省大量的时间和金钱。
自动伸缩可以自动处理上面列出的所有任务,并控制云成本。如果使用容器编排器 Kubernetes,你可以从三个内置机制中受益。
- 容器水平自动伸缩(Horizontal Pod Autoscaler,HPA)添加或删除 Pod 副本以匹配应用程序不断变化的使用情况。它监控应用程序以了解其副本的数量是否应该变更,并计算删除或添加副本是否会使当前值更接近目标值。
- 容器垂直自动伸缩(Vertical Pod Autoscaler,VPA)增加和减少 CPU 和内存资源请求,以便更好地将分配的群集资源与实际使用情况相匹配。
- 集群自动伸缩(Cluster Autoscaler,CA)可在受支持的平台上变更集群中的节点数。如果它识别出具有可以重新调度到集群中其他节点的 Pod 节点,则会将其驱逐并删除备用节点。
在像 CAST AI 这样的解决方案中,你只需要定义你的水平和垂直自动伸缩策略,自动优化工具则会为你处理其余的工作。
第 5 条:没有利用竞价实例的机会
云服务供应商以极低的价格出售其未使用的容量,尤其是当你将该成本与常规的按需付费进行比较时。
在 AWS 中,竞价实例(Spot Instance)可享受高达 90% 的折扣。
竞价实例有什么棘手问题?由于你竞标的是空闲的计算资源,因此你永远不知道这些容量究竟能保持多长的可用时间。有些竞价实例带有预定义的持续时间;例如,AWS 提供了一种类型,可以为你提供长达 6 小时的不间断时间保证。
但除此之外,供应商可以回收你正在使用的竞价实例,并仅提前 30 秒到 2 分钟的时间通知到你。
人类没有足够的时间做出反应。创建一个新的虚拟机也需要更多的时间,因此你面临着潜在的宕机风险。
这就是为什么如果你决定使用竞价实例,你需要接受这样一个事实,即中断必然会发生。对于至关重要或无法忍受的工作负载,它们显然不是正确的选择。
如何应对这一挑战?尽管存在风险,但竞价实例非常适合无状态且可扩缩的服务(即具有多个副本)。幸运的是,在现代架构中,大多数服务都是无状态的,因为 Kubernetes 就是为这种类型的设置而设计的。
使用竞价实例的过程如下所示:
- 你需要限定你的工作负载以及它处理中断的能力。
- 然后,你应该检查供应商提供的实例,并选择最适合你需求的实例。一个经验法则是选择不太流行的实例并检查它们的中断频率。
- 现在是时候策略性地设定最高出价了,以避免价格上涨时可能出现的中断。
- 你可能还需要考虑分组管理竞价实例并请求多种类型以增加补充它们的机会。
你可以手动完成这些步骤,但要使这一切能正常运行,需要准备大量配置、设置和维护任务。
这就是自动化能再次派上用场的地方了。除了上述过程之外,当你需要的竞价实例暂时不可用时,自动化解决方案可以立即提供帮助。
竞价回退(Spot fallback)之类的解决方案通过将受影响的工作负载临时转移到按需节点上,并在竞价节点可访问时将其自动返回到竞价实例来保证容量。CAST AI 的功能目前支持 EKS、Kops 和 GKE 集群。
第 6 条:延迟采用自动化云优化
在本文中,我已经提到了自动化云优化,这是有原因的。
如果你已经采用了云原生技术,那么你正在运行 Kubernetes,甚至可能使用现代的 DevOps 方法——自动化这部分基础设施绝对是一个好主意。
云自动化被列为德勤(Deloitte)2021 年及以后的最大趋势之一,为 IT 团队带来了切实的成果,尤其是在大型企业环境中。
首先,它减少了你在配置虚拟机、创建集群或选择正确资源等方面所需的手动工作。这一变化节省了时间,让工程师可以专注于更重要的任务、创新并更充分地利用云基础设施。
更重要的是,自动化工具允许更频繁的更新,这是持续部署理念的关键。它还降低了人为错误的可能性,降低了基础设施成本,提高了系统的安全性和弹性,并增强了备份流程。
最后,自动化使你能够了解整个公司正在使用的资源,否则这些资源将难以控制。简而言之,云自动化已经成为科技行业的新常态。
如果云自动化带来了许多无可争议的优势,而且似乎是不可避免的,那么为什么不是所有的企业都欣然接受它呢?自动化可能会带来许多挑战,从对新解决方案的抵制,到对实施成本过高的担忧,再到更新现有流程的需要。
与大多数数字化转型项目一样,成功的关键在于人,并鼓励在人的层面上进行变革。说到工作场所,麦肯锡(McKinsey)的研究证明,工人们普遍担心会被技术所取代。
然而,自动化带来的好处远远大于风险。例如,在《2021 年 DevOps 状况报告》(State of DevOps Report)中,97% 的受访公司认为自动化提高了他们的工作质量。
在 2022 年推迟采用云自动化等于错过了以下好处:
- 为应用程序选择最有效的实例类型和大小;
- 自动伸缩云资源,以处理需求的峰值和谷值;
- 排除那些不能用于削减成本的资源;
- 通过管理潜在的中断来优化竞价实例;
- 减少其他领域的不必要开支,例如存储、备份、安全、配置更改等——所有这些都是实时的,而且成本只相当于手动实现的一小部分。
如何克服人类对变革和新解决方案的抗拒,这是一个由来已久的问题。提醒团队自动化云优化能使他们从重复性的任务负担中解脱出来,这可能还不够。展示和体验总是比讲述更好。希望你能在 2022 年享受到自动化云优化带来的好处。
原文链接:
/blog/6-top-cloud-cost-optimization-issues-to-avoid-in-2022-and-how-to-deal-with-them
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/notes/240541.html