有没有因为云服务费用吓了一跳?
尽管我们有了监控和成本跟踪,但云成本还是逐渐上升——起初缓慢,后来突然增加。不知不觉中,我们的开支远远超出了预期。
这篇文章是《优化您的云基础设施成本:永远不会太早或太晚》的延续,在那篇文章中我分享了一个降低成本的高层次方法。但许多团队发现,他们很快意识到,降低成本只是等式的一部分——真正的挑战是,在不阻碍创新或减缓业务速度的情况下保持这些节省。
在这后续文章中,我将逐步介绍我们所面临的挑战和威胁成本控制的障碍,以及我们实施的确保长期成本控制的策略。
使用DALL·E生成
成本优化不是一次性的解决办法。虽然最初的削减成本措施带来了即时的节省,但我们很快意识到成本不会自己乖乖待在低位。没有一个系统的管理方案的话,成本的节省很容易被其他因素抵消,比如新功能的部署、扩展时的效率问题,或是团队之间没有足够的信息流通。
为防止这种情况发生,我们需要从一次性优化措施转向持续的成本控制,确保每一个新的决策一开始就考虑成本效益。
我们在成本优化和管理方面遇到的挑战 1. 新功能的新增和扩展组织必须随着需求增长而扩展,而这通常意味着部署新的基础设施。虽然节省成本的工程师可能担心成本增加,但不应抵制扩展,因为它不是解决问题的方法。相反,目标应该是使增长与成本效益相协调。
解决方案:
➡️ 引入自动扩展、适当配置和需求驱动的供应,以防止不必要的资源过剩。
➡️ 确保开发团队能够了解成本情况,在做基础设施选择时考虑到预算。
如我在之前的文中提到,较低级别的环境不需要全天24/7运行。但有时,紧急发布版本或为客户进行的紧急修复需要在非工作时间保持基础设施活跃,这会导致成本意外增加。
解决方案:
➡️ 实施自动缩容管道,并为紧急需求提供手动干预。
➡️ 确保开发人员在其工作完成后关闭环境。
➡️ 如果使用量持续较高,则监控非计划使用,考虑采用专用且优化的设置,而不是依赖临时激活。
每次功能迁移过程都会伴随着一个过渡期,在此期间,旧部署和新部署会并行运行。如果管理不当,这个时期可能持续数周到数月,从而不必要的使基础设施成本翻倍。
解决方案:
➡️ 定义清晰的迁移切换时间点,并设定退役旧部署的时间表。
➡️ 制定检查清单,确保迁移后没有遗留的运行任务。
云成本的一个最大且往往被经常忽视的因素是生成过多的日志,特别是那些含有负载详细信息的INFO和DEBUG日志。
在开发环境中,一条多余的INFO日志信息可能看起来无害,但在生产环境中每天处理数千个请求时,它可能导致数千美元的浪费,用于日志采集、存储和分析。
解决方案:
➡️ 设置日志阈值和告警,以便尽早发现日志过多。
➡️ 定期检查每个环境的日志量,确保团队没有过度记录。
我们曾经有个小问题,导致了多余的错误日志,一天多花了350美元。如果我们没有尽早发现,几个月下来可能要多花几万块。
解决方案:
➡️ 检测日志激增,实施异常检测。
➡️ 确保日志包含相关信息,使调试高效而不冗余。
团队在迁移之后经常会“以防万一,”不愿意删除老旧资源,但这些很快就会累积成额外的开销。
解决方案:
➡️ 定期审计过时资源。
➡️ 为临时基础设施(如PoCs、测试环境)设置过期策略。
➡️ 保留旧资源需要提供正当理由。
并不是所有的成本增加都是坏事,有些成本增加实际上是有益的。一些成本增加表明了产品的自然增长或季节性增长,而另一些则表明了不必要的开支。关键是能够区分这些成本增加的原因。
解决方案:
➡️ 定期跟踪成本趋势与用户增长和业务收入的关系。
➡️ 将基础设施支出与客户采用指标关联起来。
➡️ 确保成本激增与实际预期的使用增长相符。
许多工程师假设,一旦基础设施被拆除,成本会自动减少。然而,我们意识到即使对于已删除的资源,预留实例和节省计划仍然会继续产生费用。
解决方案:
➡️ 在退役资源后检查预订承诺。
➡️ 尽可能退还或替换未使用的预订。
➡️ 根据实际需求而非短期容量来调整预留。
一些客户或功能的POC环境在数月时间里依然保持活跃,即使客户或开发人员没有积极测试。
解决方案:
➡️ 为客户的PoC设置到期期限(概念验证)。
➡️ 在延长使用基础设施之前确认积极参与。
➡️ 自动终止已过期/未活跃的PoC。
一个主要的挑战在于,一个领域的节省的成本往往会被其他地方的成本增加所抵消。
例如:
- 我们停用了某个功能,预期成本会降低。
- 然而,错误日志增多导致日志处理成本上升,抵消了节省的成本。
解决方案:
➡️ 监控各个服务的成本节约情况,确保节约的成本没有被其他地方的成本上升所抵消。
➡️ 执行成本差异分析,跟踪不同成本部分之间的相互影响。
在做出任何改变之前,我们做了详细的评估以识别出具有高影响力的优化领域。遵循了我在我之前的文章中提到的策略来削减成本。
接下来。设定可量化的成本削减目标。
- 在月底前将成本减少X%。
- 在两个月内将成本降到Y。
- 在初步优化之后,确保总成本保持在Z以下。
成本削减不仅仅是追求一次性的节省,更需要进行持续的管理,防止成本逐渐回升的趋势,从而避免之前的成果被逆转。
2. 每日成本差异分析与见解跟踪每天的成本差异有助于尽早发现意外的成本增加,以便团队能够在成本失控之前采取行动。
🔹 我们是怎么做到的,
我们在订阅/账户处实行了每天的成本监控,以显示成本的变化。
由自动化平台生成的洞察报告如下:
- 错误日志突然增多
- 调试和信息日志量增多
- 虚拟机或Kubernetes节点数量增加
- 日志摄取的趋势和流量的峰值
找到了平台洞察中成本差异的合理解释。
3. 每周成本回顾:推动意识与行动有了每日的成本追踪,我们每周审查的重点是:
确认成本变化趋势并讨论任何意外上涨,你们可以...
➡️ 查看已采取的措施以应对成本上升的情况。
➡️ 想些新的省钱点子。
➡️ 讨论如何制定长期的可持续成本节省策略。
这些会议增强了团队的成本意识,激发了团队成员的责任感,并确保了对新出现的成本问题的快速响应。
4. 每月领导月度回顾,用于战略计划我们的最具战略性的成本相关的讨论发生在每月与产品、SRE 和工程团队的领导成员之间的会议中。这些审查带来了:
过去一个月的成本变化分析。
重大成本变化的根本原因。
➡️ 例如以下战略行动的讨论:
- 为了降低成本而需要的架构调整
- 淘汰不需要的功能
- 迁移到更经济的基础设施
- 调整预留或承诺
这次会议对成本优化至关重要。这些会议确保了领导层的意识到位,并在成本节约优先事项上保持一致。
最后的感想降低云成本不仅仅是进行一次性的优化,更重要的是建立起一种成本意识和治理的文化,来控制开支而不妨碍创新。我们在减少成本33%的过程中,揭示了一个关键点:只有通过持续的监控、主动调整和团队间的相互问责,节省下来的成本才不会自动消失。
📌 关键要点:
✅ 云成本管理是大家共同的责任——无论你是SRE、DevOps工程师,还是普通的开发者,每个级别的决策都应该考虑成本效率。
✅ 意识是关键 — 团队需要对基础设施成本的可见性,以便能够做出与业务目标一致的明智决策。
✅ 成本管理是一个持续的过程 — 减少成本不是一次性的任务,而是一个需要定期检查和调整、自动化和优化,并且与领导层的战略保持一致的持续过程。
✅ 每项成本增加都需要有正当理由 — 通过跟踪趋势和了解增加的原因,并在问题变得严重之前采取行动,企业可以避免不必要的开支,并支持业务增长。
通过采用结构化的成本管理方法,持续监控成本变化趋势,并将成本效率纳入工程流程中,组织可以显著减少云成本而不牺牲性能或可扩展性。
共同学习,写下你的评论
评论加载中...
作者其他优质文章