对于任何一个DevOps或者研发团队而言,日志记录与可观察性都有助于解决和修复来自生产流程的关键问题。其中日志记录的弊端在于有着大量解决方案选项,而且随时间推移其规模和成本也往往随之增加。另外,日志记录还需要面向不同的角色和用例,这就要求DevOps工程师与开发人员在日志的使用策略上相互匹配。
面对2023年难以遏制的整体经济衰退形势,组织必须想办法降低开支并削减不必要的运营成本。对工程团队来说,最容易带来回报的突破口就是控制云成本。
为了成功制定出正确且具有成本效益的日志记录策略,DevOps团队和开发人员需要透彻了解当前正在记录的内容,并将以往的记录一切转化为记录真正重要的内容,在生产应用中从纯静态日志记录转向静态加动态的混合记录方法。
此外,随着组织采取更加稳健的左移FinOps(即云财务管理)方法时,其不仅能够降低总体成本、增强成本可预测性,同时也能加快生产缺陷的解决速度(缩短平均修复时间,简称MTTR),提高开发人员的生产力与创新能力。
1
FinOps的核心原则与左移理由
FinOps基金会为从业者的决策者们制定了一份蓝图,用以说明如何采用最佳实践,并更好地控制、透明化和治理整体云计算支出。
云成本周期与软件开发周期有着显著区别:软件开发周期有着更短的反馈循环,能帮助开发者获得对代码变更及特性功能的观察能力,而云成本的反馈周期明显更长。因此了解云计算成本的影响往往需要几天甚至几个月时间,具体取决于企业以怎样的态度实施FinOps理念。
如果业务、工程和IT部门之间未能适当沟通,就很难实现成本优化并做出由数据驱动的决策。
FinOps基金会为此建立了详细框架,将集中式团队的成熟度级别划分成“爬行”、“步行”和“奔行”等几个水平,因此描述不同的FinOps实践能力。这套框架的核心,是在FinOps铁三角(即成本、速度与质量)之间取得平衡。
根据组织所处的产品状态,领导者需要做出适当决策,判断要不要扩大云支出以缩短产品上市时间(TTM)。而强调这两项指标,往往伴随着以牺牲质量为代价,反之亦然。为了正确选择FinOps蓝本,组织应建立起集中式团队并遵循以下关键原则:
  • 团队间需要协作。
  • 每个人都拥有自己的云使用权。
  • 由一支集中团队推动FinOps。
  • FinOps报告应易于访问且及时更新。
  • 决策由云的商业价值驱动。
  • 充分运用云的可变成本模型。
如上所述,这些原则不可能仅靠个人来实现,其需要的是团队间的协作。此外,为了保证适当且及时的可见性,同时了解组织的云投资理解和具体构成,必须将工程也作为反馈循环中的一部分。
FinOps基金会合作伙伴项目顾问Kevin Emamy解释称,“成熟的FinOps实践应该通过左移来支持各项主要FinOps活动,帮助工程人员了解云支出并对其负责,让他们能够更好地优化并做出决策,最终将这些理念融入到软件开发的持续生命周期当中。”
事实上,在最近的《FinOps现状》报告中,30%的受访者表示自己面临的最大挑战之一,正在于如何引导工程团队围绕云成本优化来采取行动。
2
通过可行性工程实现FinOps左移
前文提到,要实现FinOps文化,首先要让组织中的每位成员都了解云支出并对其负责,进而让云使用/云预算同总体业务目标匹配起来。要想达成这个目标,就必须让云计算应用中最重要的参与者——工程师,也加入到讨论和决策中来。
在整个系统开发生命周期(SDLC)流程中,开发人员的工作是构建应用程序并将其部署到各种云平台之上。这些应用程序可以是云原生的,可以是无服务器的(例如Lambda或Google Actions等),也可以通过渐进式交付流程进行部署。
其中每个用例都有其自身复杂性。而且每当发生由生产问题或特性标记切换而引发的意外结果时,开发人员就一定需要正确的工具来解决问题。
为了调试远程与分布式应用程序,开发人员往往需要添加大量日志记录与遥测机制,这就要求将应用程序重新部署到生产环境或者专门的目标调试环境。但这样的重复循环,会带来高昂的开发者时间与云计算资源(日志、存储等)成本。
当FinOps成为整体组织文化的一部分,并从开发者的观念真正转化成业务环节时,接下来的事情就简单了。
通过帮助开发人员以动态日志解决生产中的问题,消除对于昂贵日志记录和遥测机制的重新部署需求,开发者就能在开发周期之初承担起FinOps成本优化责任,并缩短成本反馈循环。
作为FinOps提出的核心原则之一,在开发环境(IDE)中触发的动态日志与开发者本机可观察性,无疑是降低总体成本并促进跨团队协作的重要可行方法。
云原生计算基金会CTO Chris Aniszczyk表示,“与以往相比,FinOps将更多成为一个工程问题。过去,工程团队可以高度自由地控制云消费,所以FinOps的相关信息其实跟开发者的距离很近,并最终成为pull-request基础设施中的组成部分。”
需要强调的是,对成本优化的优先级判断和触发条件设定并不简单,往往取决于组织规模、应用程序复杂性、对于成本降低相关任务的理解等多种因素。但可以肯定的是,要想达成这个目标,首先应当让FinOps成为整体组织文化的一部分,并以开发者为起点逐步向业务流程渗透。
以上截图是为直接从IDE对跨云虚拟机(VM)远程工程负载进行故障排查的过程。直接、清晰,无需重新部署、停止应用程序或消费大量静态日志。
3
2023年及以后,FinOps的发展方向
随着集中式FinOps团队对于开发人员、业务人员、IT人员乃至财务部门代表的广泛吸纳,组织将更加严格地围绕云成本开展治理,并更好地将FinOps原则和流程尽早嵌入系统开发生命周期。这意味着成本节约将成为每一轮开发冲刺的必要环节。随着开发人员逐渐适应了在冲刺中使用动态日志、虚拟快照等其他现代故障排查实践,那么FinOps的全面落地也将指日可待。
在2023年及以后的下一份《FinOps现状》报告中,预计将有更多开发人员围绕FinOps和云成本优化采取实际行动。未来可期,我们将会持续关注。
推荐阅读:

分布式实验室策划的《Kubernetes实战集训营》正式上线了。这门课程通过通过5天线上培训,40个小时直播,15个随堂练习,50天课后辅导,把Kubernetes的60多个重要知识点讲给你,并通过实战帮你掌握Kubernetes。培训重实战、重项目、更贴近工作,边学边练,2月25日正式开课。
继续阅读
阅读原文