混合多云环境下的云成本管理与优化
01 为何需要做成本优化
在全球数字经济背景下,企业上云成为数字化转型的必经之路;然而上云真的便宜吗?这个问题随着云计算发展的不同阶段,答案也在发生着变化,企业将 IT 基础架构转移到便捷灵活的云架构,伴随而来的不仅是业务的转型,还有不断增加的 IT 支出,将为企业管理云上成本带来了长期性的挑战。
由于尚未形成有效的管理实践,云的“按需使用”使消费分散到各个使用部门、项目,很难预测基础设施的确切成本,且按需计费的模式实时产生费用,导致价格时刻变化,这些都使成本管控的难度激增,云资源的过度使用和浪费已成为云用户关注的最主要问题。
Gartner 研究显示:平均来说企业上云会节省 14%的成本,但是到 2020 年,由于缺乏成本优化手段,80%企业的云资源成本将会大幅超出预算;同时,45%的企业由于缺乏优化措施,在直接迁移上云的过程中会超买 55%的资源,并且在上云的第一个 18 个月内会多花费 70%。
02 云资源浪费的表现
应用迁移到云架构上,原本天然具备降本增效特点的云架构如果资源配置不当会引起大量云上资源闲置、云支出浪费。资源实例过渡配置、资源利用率过低是计算成本高起的最主要原因。我们对 50 多个云使用部门及客户进行了云资源利用情况分析,抽样 6000 个计算节点,实际使用率:
统计数据可以看到,计算节点的平均资源利用率在 20% 左右,这意味着云用户 80% 的计算资源成本是闲置的,这造成了极大云资源浪费。针对此种状况,我们分析造成云成本消耗的主要原因有:
企业上云无有效预测使用资源,各云厂商云计算特征选项复杂,以某云厂商弹性计算为例,就包含云服务器 ECS、弹性裸金属服务器、轻量应用服务器、GPU 云服务器、弹性加速计算实例、FPGA 云服务器、专有宿主机、云虚拟主机、云桌面、批量计算、高性能计算等等种类,云计算服务商每年都会发布数百种新服务、实例类型、计费模式等,对于上云用户来讲,选择到既符合上云场景,又能以最低的成本匹配到适合的云服务不容易,往往选择错误类型的实例和附加组件,远远超出实际的需要,造成计算浪费,导致更高的支出。
过渡资源配置,很多应用都为防止性能不足而过渡配置,大大超过应用实际需求配置的实例,比如 4CPU、8G 内存的实例就能满足需求,但却申请使用 8CPU、16G 内存的实例,但实际上,业务在大多数时段时负载不会很高,资源预留远大于实际使用负载。
闲置资源没有及时释放,就像进入房间时开灯,而离开时忘记关灯一样,许多开启云端服务却一直没有关闭。比如申请了弹性 IP,退还了云主机实例,却未归还弹性 IP,造成服务一直计费;未使用的开发、测试环境计算资源、存储未及时关闭等。
03 我们的成本优化方案
为更好地控制云成本支撑,杜绝云资源成本蔓延,我们结合 FinOps 以及对多云统一管理的理解,建立了对云成本的全方位管控优化方案,通过申请前阶段的产品与配额控制,申请中阶段的匹配推荐,申请后阶段的精准度量、精细化的成本分析优化与测算,以及 360°多维视角云成本使用洞察,达到防止云业务过度消费,有效提升云资源利用率,合理降低控制云业务成本的目标。
>>>>合理申请
针对企业业务特性与云业务场景,能够事先合理规划云资源的使用预算与规模,并在申请使用过程中,可以根据规划进行提醒与控制。针对具体的云资源,精细控制可用规格配置与使用场景,杜绝过度申请。
>>>>最优推荐
以中立的多云理念,及时获取多个云厂商、云平台的最新价格与折扣优惠信息(针对公有云提供的竞价实例、包年价更优等多样性策略能够大幅降低总体成本)根据业务形态,综合推荐性价比最优的云服务、云资源。
>>>>精细管控
提供预算助手、费用管家、成本大师等工具,形成全面的云上成本闭环管控机制,提供多种维度配置并详细跟踪统计云成本信息,持续分析识别云成本可优化部分,为客户提高云成本洞察和业务决策的能力,确保客户在云的花费获得最大价值。
>>>>闲置资源优化
精准识别未使用或未得到充分利用的云资源,并给出合理的优化策略以减少不必要的成本浪费。提供预估优化前后的比对效果,包括费用降低情况、利用率情况,并根据优化策略实现一键优化。
>>>>多视角洞察
提供从时间、业务系统、部门、云资源等不同视角查看成本分布与消费趋势,一目了然成本结构。用户可根据需求对未来云成本支出进行合理预估,并针对预估情况进行分析,帮助用户及时优化调整决策。
04 关键问题分析与实践
云成本管控需要掌握成本支出态势,准确定位资源浪费的根源;同时需要选择适合平台架构和业务特点的资源优化策略,并规避因资源优化导致对业务稳定性的影响;成本优化后还需要保证其持久性。本文中主要就云资源申请、云成本洞察、云资源优化方面进行关键实践:
>>>>识别自身需求防止过度申请
在我们实施政务云项目中,企业上云后仍然采用传统虚拟化的粗放方式,沿袭传统的使用习惯,随意申请、分配占用云资源,导致项目上出现资源超配、资源使用权限混乱等问题。同时对整体 IT 上云用云,缺乏云资源可见性,导致严重的成本浪费。避免过度使用云资源的最好方法莫过于真正提前了解自身的需求,思考各个项目的预留实例,确定优化方案适合部署在自身的哪些业务场景。不同平台云产品、云服务类型存在差异,计费模式与计费周期不同,尤其是公有云提供了无限量的资源,这给企业在使用云服务的过程中形成资源浪费提供了非常大的可能性。
在这方面我们针对上云业务特性与云业务场景,事先合理规划云资源的使用预算与规模,并在申请使用过程中,可以根据规划进行提醒与控制。针对具体的云资源,精细控制可用规格配置与使用场景,杜绝过度申请。
1) 预算管理:驱动企业内部成本管控机制,以成本中心或是部门维度,按年度配置云成本预算, 成本分配各有差异,对于开发者,他们希望区分开发环境成本与测试环境成本,对于管理者,更加注重哪些业务驱动了成本的上涨,资源投入效益如何,及时发现不合理的投资,对此我们提供资源标签的机制,通过标签可实现用户对云资源快速分类;同时成本管控部门在进行预算规划时,可根据云资源上的标签进行自动关联绑定,以及多层级部门的预算逐级下发。在云资源申请时,以年度预算或是月度预算方式进行控制,并在云资源申请通过后进行预算的扣减。在预算不足时,可以根据预算的阈值及时通知相关管理人员进行关注与处理。
2) 配额管理:除可根据云资源费用进行申请前的控制外,还支持针对多种云资源,按照规划设计,实现多维度的配额控制。管理员即可对接入的云平台实例进行总体的配额配置,也可针对具体接入的云账号进行配额配置,进一步按照部门、项目进行配额细分。在云资源申请时,根据部门的配额来控制云资源申请的总数。在配额不足时,将配额的上限及时通知相关管理人员进行关注处理。在实际的实施过程中,通常需要考虑成本控制策略和方便性之间取得平衡,配额管理上需覆盖计算、存储、网络等多种类型的云服务,并支持根据实例数量或是不同的容量大小,如 CPU 总核数、内存总容量、存储容量、IP 个数等进行配额控制。
3) 资源推荐:在开通一台云实例前,需要结合实际的业务场景,对实例其性能、价格、工作负载等因素,做出性价比与稳定性最优的判断。以阿里云、华为云为例,提供了多种实例规格族,一种实例规格族又包括多个实例规格。选择合适的实例规格对云资源成本有较大影响,由此我们建立了覆盖主流云商(阿里、腾讯、华为、天翼云、AWS)、典型应用场景(通用行业、游戏、视频、大数据、AI 训练、图像处理等)模型,模型中描述应用场景与相似规格进行映射。在云资源申请时为上云用户主动推荐业务匹配度最高、性价比最优的云服务。
例如某大数据项目上云,该项目的业务流量主要集中在数据采集与计算模块,面对前端服务压力较小,针对 I/O 型实例适用场景,对用户已经接入的云厂商、云平台进行机型对比,对比推荐 d2s 机型,一方面费用较低,另外 d2s 机型具备突增 CPU 使用率的能力,在满足业务需求的同时追求高资源利用率,降低成本。阿里云计算规格与应用场景模型:
实践成效:相比以往,企业内部用户随意申请,通常会预留远大于实际使用量的资源,导致大量资源浪费;通过云服务使用配置控制实践,设置合理的资源请求和限制,通过更细粒度的资源划分和管理,有效防止云资源的过度侵占和消耗,以此循序渐进在企业内部形成优化意识;同时当某类业务负载提升,确实需要较多资源时,也支持通过配额范围比如可控制申请的云磁盘数量与容量上限、CPU 和内存使用量范围实现弹性调度,取得成本优化与敏捷性用云的平衡。
>>>>全周期立体化云成本洞察
成本洞察是成本管理的关键,企业内部大多采用多云策略,公有云大多采用多层次的定价和计费结构,云支出账单难以理解,无法进行预算与实际使用进行比较;私有云侧需要建立计量规则,尤其是采用较多容器、 Kubernetes 集群,通常只能看到资源的使用情况,而无法分析和观察更具体的成本维度的数据。
在这方面我们在设计多云管理时,采取统一的标准对云成本进行定量、定价及采集,并对云服务状态进行持续跟踪,做到资源消耗一目了然,针对公有云,对接云厂商 API 接口,同步资源用理与消耗,针对私有云进行资源定义、定价,并将计量规则应用到私有云云账户中,从而核算私有云资源的成本。
1) 成本追踪:成本采集及资源追踪,需要针对不同形态云上资源提出统一的成本定量、定价和采集标准,并对资源进行持续跟踪。
对于公有云,本身已提供了账单数据,因此系统对公有云上的云资源,只需进行计量的统计,用于后续的对账,通过定期采集公有云上对应账号的账单信息,获取包括账单明细在内的信息并与云资源实例进行关联。在对接获取公有云的账单后,自动根据云资源实例的归属,按照部门、业务系统等不同维度进行账单的重新拆分组合,形成 IT 视角的成本账单。
对于私有云,以云平台实例维度对各类云资源进行多种计费项的规则配置,实例计费规则用于计算主机实例的拥有成本,通过指定 CPU 单价和内存单价来核算主机实例的价格。私有云的核算目前主要包括按使用时长配置计费规则、按使用次数配置计费规则、按容量线性增长或是阶梯增长的配置计费规则等,除此之外,部分企业内部存在按部门、租户配置折扣比例的多样化计量需求。
2) 可视化归集:云账单是企业上云支出的第一手资料,账单的可读性往往影响上云用户对成本开支的判断,在这方面我们通过结构化账设计,将资源利率转化成成本并可视化,使用资源组、标签,从业务、部门、项目的等维度分类资源,并在一段时间范围内使用情况进行量化统计,按照计费规则、折扣比例等多项条件定期生成准确的账单,并对云资源在账单周期内发生变更而导致费用的变化进行记录与识别,呈现账号消费趋势、云服务消费分布等信息,把握整体消费情况。
实践成效:针对不同云种类定义计量计费标准,提供从时间、业务系统、部门、云资源等不同视角查看成本分布,结构化展示(如云主机的实例、磁盘、带宽、快照、公网 IP),将云资源花费的财务账单转换为 IT 视角的成本账单;告别云厂商的流水账单,对成本支出了如指掌,帮助上云用户及时优化调整决策。
>>>>自动化策略进行成本优化
在云资源使用一段时间后,会存在云资源实例未使用或是未得到充分利用的情况,比如云主机规格配置很高,长期利用率低下,造成成本浪费;或是存在云资源实例的使用方式不合理,云主机申请时是以按量使用计费模式申请,而在实际使用过程中,云主机长时间处于运行状态,这样根据按量使用模式产生的费用已大大超出包年包月的费用等。在这方面,有了完整的成本洞察能力后,即可识别出云资源使用效率,从而围绕其业务目标及业务场景制定对应的优化方案。
识别云资产利用率
监控资源利用率,评估当前配置是否过高。例如 CPU、内存、云盘、带宽等资源的利用率。
监控闲置的资源,避免浪费。例如升配但未重启的实例、未匹配实例的预留实例券、未挂载的云盘、未关联的 EIP 等。
监控资源使用周期。如果长期使用按量付费实例、云盘等资源,考虑以更实惠的方式购买,一般来说[包年包月]比[按量付费]更加优惠。
监控资源生命周期,了解包年包月资源的到期日,通过闹钟及时提醒。例如包年包月实例、预留实例券、存储容量单位包等。部分识别策略如下:
成本优化分析
为上云用户提供云资源调优分析与变配建议。云运营商的消费账单大都是次月产生,存在 30 天的时间跨度期,这意味着可能需要为不必要的资源多花上一个月钱,由此我们通常会对云资源的负载按天取数分析,及时发现云资源的使用状态,为用户做出必要的管控建议,并配套提供模拟变配后的负载成效,辅助管理人员能够直观地升降级调配决策。
提供动态配置常用云资源的优化规则,对云资源运行的关键指标进行分析判断,如 CPU 利用率、内存利用率、运行时长、带宽利用率等,识别闲置资源、可降配资源以及计费模式不合理的资源。同时为提高分析的准确性,对关键指标的不同计算方式,从单一的平均利用率升级为包括平均利用率、方差、中位数等多种计算方式,能够更为准确地对云资源实例的实际使用情况进行判断,真正能够进行有效的成本优化。
优化建议规则目前主要的应用场景分别是,闲置资源检查规则、低负载资源检查规则以及高负载资源检查规则。例如针对某政务云客户运行的 460 台 d1ne.14xlarge 实例进行监控,发现其中 70 台实例在近一段周期内,内存使用率合理,CPU 相对空闲峰值利用率不超过 45%,由此触发降配提醒,建议当降低 CPU 和内存比,提升 CPU 的利用率,推荐由 14xlarge 调整为 8xlarge,同比约节省 30%的成本。
实践成效:相比传统成本分析与优化依靠运维人手决策与执行,无法高效的进行成本管控,通过我司成本优化机制,自动化生成云资源优化报告、租期闹钟智能提醒、定时自动开关机等一系列优化工具,能帮助上云用户节省 35%的用云成本,提升资源利用率的同时获得最大经济价值。
05 结语
随着云原生、无服务器服务、水平弹性缩放、智能流控等新技术的逐步应用,云成本优化策略并不是恒定的,需要定期分析、持续优化、反复迭代的过程;针对上云企业来说,内部建立完善的管控体系是成本管理的治本之法,从上云、用云、管云每个阶段推动并执行成本意识,再结合数据驱动优化,才能最大化获得云计算商业价值。
版权声明: 本文为 InfoQ 作者【鲸品堂】的原创文章。
原文链接:【http://xie.infoq.cn/article/bd7390a2e7768a5e084709970】。文章转载请联系作者。
评论