cover_image

货拉拉IT降本增效之成本管控之道

核心基础设施团队 货拉拉技术
2023年01月12日 00:30
作者简介:郭玉龙,货拉拉运维专家,主要从事云资源交付工作。其从16年以来,深耕云上成本管理,协助企业实现降本增效的目标。
  1. 浅说一下云成本问题 -- 降本增效

公司在2021年对技术成本盲点提出了意见,并提出“去盲点,找突破,降本增效……”的口号。降本增效成为了货拉拉2022年的首要目标。

2021年7月,CTO提到:“九层之台,起于累土, 稳定性是我们整个技术团队所有成功要素前面的那个1, 没有了稳定技术的支撑,所有其他的努力都会清零。”

同样的,保持稳定性,却是技术中心所有努力的重中之重。

在业界大概有一个认识,效率,稳定性,成本三者,在当前的技术手段下,是处于冲突的位置。那么如何将效率稳定性与成本之间很好的处理起来,成为货拉拉在2022年重要挑战。

图片

  1. 货拉拉负载的 IT 基础设施

2.1 货拉拉基础设施地理分布情况

云厂商

区域

服务

服务规模

业务

AWS

Azure

阿里云

华为云

腾讯云

私有机房

……等

新加坡

巴西

广州

深圳

……等

服务器

数据库

负载均衡

存储

容器

日志服务

安全组件

……等

万级

核心链路

大数据

……等

货拉拉成本治理面临的痛点是十分复杂的:云供应商多,地理位置分布广泛,服务类型多,规模大,业务类型多的特点。每一点都为货拉拉成本优化带来了挑战。

2.2 HLLM 成本历史趋势

图片

如果所示,该图为货拉拉成本历史曲线,有以下结论:


优化前

优化后

业务

持续上升

持续上升

成本

抛物线成本上升

抛物线成本下降

  1. 关于  IT 成本构成与成本优化意见

图片

IT 成本= S (服务使用成本) + H(人力成本)

HLLM 在成本上,优化方向,为服务使用以及维护成本上。

服务成本影响因素有:基建成本B,服务选择带来的成本变量X,服务的使用率 U,业务规模 Y,业务增长系数为N

假设服务成本 = B+X +Y(0)*X/U

由于基建服务可以复用,那么增长后的理想成本 = B*n+X*N+Y(N)*X/U*N

由于业务规模扩大带来的服务成本上升是可以预期的,可以看到,服务的使用率U,成为成本优化的重点。而服务选择带来的成本变量X则是成本优化的重中之重。

简单说一下人力成本 H= D(研发成本)+ M(维护成本),假设业务规模不断扩大,无论是研发人员和维护人员都将成倍数增长。

研发成本 D =  DE (研发效率)* DR (研发人员数量)

维护成本 M = ME(运维效率) * MR(运维人员数量)

在人员一定的情况下,提高研发效率和运维效率,将成为优化人力成本的重点。

  1. 成本优化的主要组成和工作

云资源交付组,主要做云资源交付相关的工作。主要属于运维职责的一部分。并具备业务研发中,协助选择更适合的服务,协助研发人员,提高研发效率。

专业的云资源交付团队,在成本优化的技术工作中,起着技术导向作用。

4.1  云资源交付组的成本优化行为  -- 控制服务选择带来的成本变量X

在货拉拉成本优化的推进中,基于Finops的实践,云资源交付组完成和推进了以下优化进程:

图片

在以上服务的选型和使用,或者优化进程中,云资源交付组,同时承担了以上服务的发起者,部署者以及审核者的职能。而业务人员则主要是使用相关服务即可,适用于货拉拉的技术特点,通过专业的运维能力,往往是稍微的改动便能够既能够降低成本,举一些例子:

  • 存储类型的优化,在保证存储性能的同时,可以降低20%左右,可采取的措施有:

    • 使用更新一代的磁盘,替代旧的磁盘,如gp3 替换 gp2,增加弹性的同时,减少成本。

    • 在适当时候,使用HDD磁盘替代SSD磁盘,盲目追求性能,使用SSD磁盘,非常不可取。

    • 在开发能力覆盖的情况下,使用多种存储方式,比如更多的使用对象存储,成本更低,可靠性更高,并更好的支持横向扩展能力,支持更高的并发。

  • 网络链路的设计,常见的有:

    • 云上访问S3,一定要避免NAT/公网访问,尽量争取使用gateway endpoint方式访问,不同方式,对单月成本影响可以达到数万美金,甚至十几万美金。

    • Azure 的Blob存储访问,走指定的公网路由,满足安全需要同时,避免了大量的endpoint 数据处理成本,对于大数据类型的应用,收益极大。

    • 特别的,跨机房访问S3,同样建议避免公网访问,更建议使用interface endpoint方式访问。安全性高,性能好,同时成本也会更低。

  • 日志系统的优化,货拉拉采取的手段:

    • 货拉拉曾经构建了的日志系统,成本高,运维工作复杂。采用OpenSearch,替换自建的日志集群,将温数据托管在对象存储上,极大的降低了存储成本,另外使用Graviton2 ARM机型替换Intel x86机型,使得整套日志集群成本,只有过去的40%。同时降低运维压力,扩容更加简单。

  • 竞价实例的推进:

    • 货拉拉海外业务几乎都是部署在容器上,为深入使用到了竞价实例提供了先决条件。特别是测试环境,竞价实例覆盖率达到90%以上。同时部分生产非核心的应用,使用到了竞价实例。该项目推进时间大约有3个月,相关app达到数百个。

  • 云原生之业务容器化:

    • 货拉拉国内,使用容器方案替换传统的ECS部署方案。将资源使用率从平均的30%提高到50%,实际成本降低14.28%左右。

  • 预留实例/Savingsplans的推荐:

    • 从项目角度,资源调度角度,维护成本,合同期限等,多方面考虑预留实例的购买方式。货拉拉的预留实例+Savingsplans,覆盖率基本上维持在95%左右,使用率基本维持在接近100%的水平。

    • 预留实例/Savingsplans/包月等商业属性,深入集成到云管平台中,使得计算资源更为密集的分布,而非一味的追求性能问题。对于常用机型,购买基于实例的 Savingsplans 方案,对于非常用机型(如部分业务已经更新为最新一代),尽量给予 计算的 Savingsplans 方案。简化了预留实例/Savingsplans 购买方案,并极大的降低了人力的投入。

  • 灾备方案建设:

    • 基于云的特性提供推进 DR 演练,演练成本控制在月度成本的1.5%左右,周期性备份成本控制在月度成本的1%左右。

等等……………………

4.2 云管平台 Lcloud

云平台开发部协助云资源交付组,开发了一套平台 - 即Lcloud ,主要承接两个能力

降本:管控所有云上/IT资源成本,花费透明;优化资源利用率(U)以降低成本。

增效:提升云上资源交付效率。

特别的:云管工具的颗粒细度几乎决定了成本优化所能够做到的级别,拥有一套符合自己业务特点的云管工具,将会大大简化成本维护的工作。云管工具的开发工作,最好在完整梳理资源交付流程后进行。

货拉拉云管工具 Lcloud 架构如下:

图片

Lcloud 的能力:

  • 不仅可以管理云资源(AWS,阿里云,华为云)成本,也管控其他第三方服务(短信,地图等)的成本

  • 适应货拉拉的组织架构,根据业务划分权限,通过该平台,实现多维度的拆账能力,对成本报表进行统一管理和维护。

  • 提供成本自治能力,平台提醒并指导业务人员自主完成成本优化行为,并培养业务人员的成本意识

  • 提供比较精确的成本预测能力,月度预测误差在5%以内

  • 集成了货拉拉其他工具的数据,更多元素,一览服务器使用率情况

  • 一站式运维管理平台,提高运维效率,降低运维人力成本。

  • 集成预算数据与KPI需求,在几乎不降低资源申请效率的前提下,确保预算充分时资源申请畅行,超接近额度时,使用户能够感知。

……………………

  • 完整的资源生命周期管理,切实追踪每个资源成本和运营情况

4.3 成本管控委员会

  • 服务对接人:每个部门提供成本接口人,推进成本优化进程。

  • 运营:工程师和Ops团队成员,成本作为指标引入,与跟踪和监控其他性能指标的方式相同。

  • 月度成本Review会议:确立KPI,跟进成本管理和成本优化指标。

  1. 关于云资源成本为何经常会有爆发性增长的问题

图片

5.1  成本盲点

缺乏对云服务足够的了解,会带来云成本的大量上升,一家云厂商,其提供的服务,可能从几十种到几百种,如果缺乏对服务足够的了解,或者为做到充分的保护,在使用中,很容易带来爆发性的成本增长。以下是货拉拉曾经遇到的一些问题:

  • 网络配置不适当:访问对象存储,走NAT或者走Private link,由于NAT和Private Link的计费特征,是有可能会带来无法估量的成本增长的,甚至可能会有一定的安全隐患或者稳定性隐患。

  • 云存储类型使用不适当:标准Blob存储与高级Blob存储,价格可能相差到7倍之多。

  • 磁盘类型选择错误:选择较为较早版本的磁盘,在丧失扩展能力的同时,也提高了成本。

  • 托管服务未经过评估便大量使用:上托管服务容易,下托管服务难,成本成倍上升,且难以优化。

…………

以上问题是十分常见的,基本上,每隔一段时间,都会有类似的成本发生,为了避免成本盲点,可以遵循以下几点,来基本避免掉成本问题产生:

  • 当选择云服务时,对于“根据使用量收费”的服务,务必咨询专家意见。

  • 不要预留更高的能力,对于数据,服务的sla及性能保障,应该贴近使用需求情况,不可为了省事,追求高性能带来无法预测的成本上升。对于一些“高级”“详细”“enable”等字眼的开启,务必要查阅其收费规则。更建议使用相关平台,在性能需要相应提升时,及时提供。

  • 完整的成本监控至关重要,避免当规模达到一定程度之后,遇到成本损失无法挽回的问题。


5.2  阶段性成本投入

比如稳定的需要,我们可能会做一些事情,这些会带来成本的上升:


稳定性

成本

过程

阶段一

下降

上升

业务起步阶段

阶段二

上升

上升

稳定性成为业务的‘1’

阶段三

保持不变或者逐渐上升

缓慢上升

成本成为业务的重要考量

阶段四

上升

先下降后上升

成本治理,有计划的稳定性支出

还比如,架构演进:单节点 --> 多节点 --> 多泳道 --> 灾备等,每一笔,都是需要更多的成本支出。

5.3  弹性

弹性是公有云最重要的特性,由于弹性,将呈现多种特点,并因为各种原因,导致成本上升

理想的场景

在技术上,准确预测资源使用率,根据资产情况,享受到最高的折扣

业务成本与计算能力呈现线性增长趋势

业务规模扩大,基建成本呈现一定的增长趋势,但低于业务规模

弹性带来的成本上升始终是有限的

弹性曾经引起的问题

业务弹性,导致不管从技术层面还是商务层面,难以享受“最经典的折扣”

技术能力演进过程中,引入成本盲点

某些业务的发展,导致局部服务成本暴增,并影响到整个成本大盘

因成本限制,导致弹性能力不足,又反向导致业务瓶颈

……………………

  1. 成本管控的商务价值的探索

我们往往会有一些疑问,一次促销,我们花了多少钱,新增了多少流量,带来了多少的业务价值。较为准确的评估这个业务价值,是很重要的能力。这里影响因素很多,这里包含了当前情景和未来情景。对于未来的评估,会十分复杂,影响因素也非常多。但是对当前的成本情况,却是可预期的。将有助于提供业务的相关决策。

货拉拉的成本管控,脱胎于Finops的事件经验。

FinOps是一种不断发展的云财务管理规程和文化实践,通过帮助工程、财务、技术和业务团队在数据驱动的支出决策上进行协作。

货拉拉成本优化实践,与Finops是天生契合,货拉拉成本管理与Finops成熟度模型对比如下:


货拉拉现状

分账能力

50%

80%

90%

95%以上

折扣覆盖率

60%

70%

80%

90%以上

预算预测误差

20%

15%

12%

5%以内

货拉拉当前已经根据其准确的成本,在一些活动中,根据成本情况,影响部分业务行为。货拉拉云资源交付团队,仍然将进一步探索成本与业务指标之间的关系,进而提供更多的业务价值。这里,货拉拉仍然有很长的路要走。


继续滑动看下一个
货拉拉技术
向上滑动看下一个