Walmart
跨云用量庞大的沃尔玛,如何管理云端维运成本?他们发展出了一套将FinOps整合到组织和文化的关键心法,甚至设立了专门的跨部门FinOps支援团队,来协助各部门实践FinOps。
「沃尔玛的一切都在云上执行,投资越高,我们越需要提醒自己,得控制成本。」沃尔玛全通路成本维运团队资深工程总监Tim O’Brien指出,因为「要比竞争对手更懂得控制成本。」这是沃尔玛创办人十大准则的第九条。每一个沃尔玛的员工都被要求要专注於省钱,才能对顾客有帮助。
所以,Tim O’Brien强调:「我们一直专注於云端效率的提升。」也才会在上云第一天,就开始考虑如何节省。但是「效率不只是成本问题,还涉及了稳定性和准备。」
提高工程师FinOps意识是第一步,先聚焦每天的云端支出
沃尔玛成功推动FinOps的关键是让工程师意识到FinOps,如何做到?有三个作法,先聚焦在每一天的花费,其次再让每日成本的变化产生关联,最後是将成本的影响连结到顾客。
沃尔玛打造了一项专案成本工具,可以画出每个工程团队每天花了多少钱,以及用在哪里。这个工具可以从专案、团队、部门、子公司等不同层级的分类,来检视每个层级的每天云端成本明细。Tim O’Brien解释,让团队每天专注这些资讯,可以训练他们真正掌握自己花钱的方式,「提高每一天的注意力,是开始控制云端支出的第一步。」
沃尔玛会不断问工程师,为什麽你的花费增加了,是因为资料库还是Log纪录暴增?云端资源的使用有没有过量还是适量?沃尔玛想要训练工程师,有能力自己回答这些问题。
训练团队建立FinOps纪律
「FinOps不是为了解决成本问题,而是建立团队纪律,能够留意当下。」Tim O’Brien补充:「这麽做不只可以管理支出,还带来可靠性这项好处。」他解释,训练团队经常关注每日成本指标,可以训练人们推出软体时,更常思考架构,这样的成本纪律可以带来更高的可靠性。一但发生事故,他们常常是第一个回应的人,也知道如何处理。
将每日云端支出年度化,来凸显成本变化的影响
当团队习惯留意每天的成本後,沃尔玛的下一步是将让这些成本变化更有关联性,作法是聚焦在每日成本变化率的增减趋势,并且将这些「云端支出年度化」。这是为了让这些云端费用的变化,与工程师自己产生关联,让团队更珍惜投入这麽多成本所带来的价值。
举例来说,若有工程师为了推出一项新功能,需要启动新的VM,一天要多付500美元上云费用,沃尔玛会将这一日的费用变化乘以365天,转换成对未来一年的影响,就可以让工程师认知到,新功能一年得多花18.2万美元,超过台币5百万元,不是一笔小数目。
更进一步,沃尔玛还从顾客角度来归因这一笔云端支出的影响,要求工程师思考「要卖掉多少商品,营收才得以打平这项新增功能的成本?这麽做值不值得?投入的云端成本与顾客有关系吗?新增的功能对顾客有帮助吗?」
Tim O’Brien补充:「将所有的节省或浪费,都连结到顾客和相关的体验,才有意义。」
训练工程师注意每日支出只是基本原则,Tim O’Brien还要求整个团队得注意到各种层面的每日支出,依据职位不同,各自负责关注不同重点。资深经理以上的资深主管,甚至是技术长,都得意识到每日支出的变化率,如何能够用来鼓励当责(Accountability),让团队对投入相关花费的结果负起责任。
而工程师与团队的中低阶经理,则要从每日支出更意识到架构对成本的影响,例如经常评估迁移到新架构的成本是多少?或是检查所准备的储存空间有没有使用?上传了数PB的资料该用冷储存、标准储存还是归档储存?有没有造成浪费或是提供了过高规格的储存空间?「储存是最容易忘记拿来用的技术。」Tim O’Brien说。
Tim O’Brien指出:「关注每天花费,就像打篮球,每天练习就会进步,每天练习还可以让你保持敏锐,FinOps也是一样。」不只如此,这麽做还会带来额外的好处,他补充,追踪每日成本,也是一种追踪和观察技术架构的方法,一但观察到意外的支出,对事件的应变能力和回应都会更及时。
为了减少云端成本,战略上,沃尔玛订定跨年的省钱战略,也会落实到每年和每季预算上,但更重要的是订定每日支出的目标。在战术上,则聚焦追踪每天的云端消费情况、监控利用率。
沃尔玛高层每周必看的云端费用表
不只设定每日目标,还会订出随着时间进展的费用下降路径。每周Tim O’Brien率领的全通路成本维运团队,都会寄一张云端费用表给沃尔玛每位高层。在这张表上,会列出每个部门每周的平均每日支出,例如某部门5/1~5/7平均每天上云费用是34.2万美元,每日目标是三个月後,也就是要在10月1日时,降低到每日上云费用是25万美元,也就是一天要减少9.2万美元。
9.2万美元这个节省额度,不是一天或一个月达成,而是分3个月,每个月降低四分一,因此,在这张表也会同时列出,每个月要达到的每日支出金额,例如7/1每日支出要减为31.9万美元(减少25%),而8/1则要降低到每天花29.6万美元(减少50%),9/1是27.3万美元(减少75%),以及10/1的25万美元,并且列出每个月要减少的金额为2.3万美元、4.6万美元、6.9万美元,让高层可以知道,未来每个月预计节省费用的下降趋势该是如何。只要这个团队某个月的每日支出超出了原定目标,马上就会知道,偏移了多少,应该在下个月修正多少,最终才能达标。
「一个团队的预算是按年来规画,但是焦点必须是每天关注。」这就是沃尔玛落实FinOps的秘诀,Tim O’Brien说:「虽然不是所有的云端支出都下降,有些领域还是持续增加,但是我们透过这些方式,努力减少上云的费用。」
发展协作式FinOps,避免将FinOps变成省钱比赛
Tim O’Brien也提醒,不能把FinOps当成省钱的比赛,他认为:「FinOps需要协作,得避免造成竞争心态,不能变成一种争『省钱功劳』的情况。」为了发展成协作式的FinOps实践,沃尔玛会特别先防范3种FinOps坏模式,避免团队出现3种不好的行为。
避免团队出现三种FinOps坏模式
第一种不良行为是「标榜自己才是专家」,FinOps团队要避免认为自己才是云端维运管理专家,专门指挥其他团队该怎麽做,或是列出一张长长的省钱改善清单,要求其他团队照单执行。一但其他团队不听指挥,FinOps团队又没办法负责,就无法落实FinOps。「要让团队自己建立标准和省钱目标,自己当责。」Tim O’Brien表示。
第二种要避免的行为是「指责他人」,FinOps团队不能在老板面前,责怪哪个团队或哪一个人没做好,这会破坏彼此的关系,FinOps协作就会失败。「鼓励才有助於热情和理解,尤其FinOps要扩大规模,特别不容易,需要采取鼓励的态度,而非责难。」Tim O’Brien会尽量将成果归功到更多人,让其他人因注重FinOps而获得晋升。
最後一种不良行为是,FinOps团队得避免「自己把持FinOps资料」。像Tim O’Brien的团队整合四十多种不同的资料来源,才汇整出各种云端用量、成本和维运的数据,但是,FinOps团队不能自己想要独占这些成本和利用率的数据,而是得意识到,用到云端的每一个团队,都需要掌握和分析这些资料。「资料没有共享,就没有信任,而且不只是提供资料,还要分享分析。可以建立一个跨部门的超级使用者社群,一起讨论。」他说。
每一周,沃尔玛每一位高层会收到这样一张云端费用表(图中数据为模拟的假资料),列出每个部门每周的平均每日支出,以及未来3个月後要减少的目标金额,还会列出每个月预计节省费用的下降趋势。只要团队某个月的每日支出超过预定目标,马上就会知道偏移多少,下个月应该修正多少,最终才能达标。(图片来源/Walmart)
相关报导