云原生FinOps技术的优化策略及未来展望

文摘   科技   2024-04-22 12:39   北京  


编者荐语:



随着企业日益重视降本增效,云FinOps技术逐渐受到广泛关注。行业内正积极探讨云FinOps的最佳应用实践,以期发挥其最大效用。尽管FinOps尚处于起步阶段,但云原生架构在企业信息化系统中的比重却在持续攀升。因此,在企业向云原生架构转型的过程中,应提前规划并实施云原生环境下的FinOps管理策略,以避免未来可能面临的应用改造和平台功能重建等困境。本文探讨了云原生FinOps技术优化策略和未来发展方向以期想要降本增效企业提供一定参考


云原生FinOps技术的优化策略及未来展望

亚信科技(中国)有限公司

摘要:云计算与数字转型加速的浪潮中,企业对云资源的需求日益增长,赋予企业前所未有的灵活性和扩展能力。然而,企业成本控制与资源优化面临着巨大挑战。如何确保云资源利用最大化同时避免不必要的开支,成为企业提升竞争力的关键所在。云FinOps财务运营)的概念应运而生,旨在通过跨部门合作与技术创新,实现成本效益和业务价值的最优平衡。本文重点探讨了云原生FinOps技术的优化策略和未来发展方向,企业有效利用FinOps工具实现内部降本增效提供指导

FinOps行业背景
随着云计算技术的成熟,越来越多的企业开始将应用程序和数据迁移到云端。云计算提供了灵活、可扩展和按需付费的特性,极大地降低了企业的IT基础设施成本,并且可以更好地支持业务的快速发展和变化。尽管云计算带来了诸多优势,但随之而来的是复杂的云成本管理挑战。在传统的本地部署环境中,成本主要是固定的,并且较为可预测。但在云环境中,资源的使用是按需付费的,而且可能会出现因为配置不当、资源浪费或者应用程序需求变化等原因导致的成本暴增的情况。这对企业的财务预算和成本控制提出了新的挑战,如图1,通过统计某公有云用户群的虚拟机资源利用率发现用户资源利用率普遍维持在10%~15%之间。

1:某公有云客户群资源利用率统计


企业在实际用云中存在很大的云资源浪费,Flexera 2022云计算市场发展状态报告显示:市场普遍存在32%以上的云支出被浪费。优化云成本,现已成为上云之后一个迫切需要解决的问题。在Gartner 2023年度报告Hype cycle for Emerging Technologies中,FinOps已成为重要的新兴技术之一,为了应对云成本管理的挑战,企业开始关注如何更好地管理和优化云成本。于是,FinOps技术应运而生。FinOps技术结合了财务管理、信息技术和流程管理,通过制定合理的成本管理策略、实施自动化工具和流程以及加强团队间的合作与沟通,帮助企业实现在云环境中更有效地管理成本、优化资源利用率和提高业务效率。在FinOps框架下,灵活利用成本模型意味着企业需要不断优化和调整成本管理策略,以适应云环境和业务的变化,从而最大限度地降低成本并实现业务目标。


图2:Hype cycle for Emerging Technologies,2023 Gartner


FinOps技术优化方案

以某客户K8S平台中集群节点(假设CPU配置100C)的CPU占用率曲线图为例,白色部分是应用实际占用的算力资源,其他区间均为被浪费的算力,FinOps需要通过各类不同的技术方法,最大程度的层层压缩被浪费的算力资源。根据不同的算力损失情况,可分为四个优化象限,分别为第一象限(100C~80C),第二象限(80C~60C),第三象限(60C~40C),第四象限(40C以下)。


图3:某客户容器集群节点资源利用率曲线图


下面将分别阐述各个象限对应的技术优化方案。

(一) 第一象限:合理的装箱减少资源碎片


在该象限中,浪费资源的主要原因是由于业务分配的资源与实际节点规格存在差异。关于如何降低资源碎片的技术方法,可围绕kube-scheduler来实现,主要包括:

1.节点资源整合:尽可能地合并或整合节点上的资源,将多个小资源占用较少的 Pod 部署到同一节点上,减少资源碎片化的发生。使用合适的调度策略,例如节点亲和性或反亲和性规则,将相互关联的应用程序部署到同一节点上,以最大化资源利用率。


2.节点使用监控:使用合适的节点资源管理工具,如Kubernetes自带的kubelet、Node-Exporter等,来监控节点的资源使用情况。针对资源利用率较低的节点,可以考虑将其设置为污点(Taint),以避免将新的Pod调度到这些节点上,从而减少资源碎片的产生。


3.Pod 垃圾回收:通过运行监控发现闲置的资源,定期清理和回收不再需要的 Pod 资源,包括已经完成或被删除的 Pod,释放它们占用的资源空间。Kubernetes 提供了自动的 Pod 垃圾回收机制,也可以使用FinOps工具通过合适的配置,来确定需要清理的资源范围并定期清理不再需要的 Pod。


4.Pod亲和和反亲和管理:使用 Pod 亲和性和反亲和性规则,将相关的Pod调度到同一节点上,也可以最大程度地减少节点资源碎片的产生。


(二) 第二象限:开通最优的实例规格


第二象限中所浪费资源的产生,是因为实际给出的资源limit规格与实际的资源占用上限存在缺口,资源的过度分配导致的资源浪费,由于实际业务中,用户往往无法对未来的资源运行情况做出准确的预测,所以资源开通必然或多或少存在过度分配的情况,主流解决方案是通过监控该应用的历史运行情况,结合数据分析和预测技术,给出一个基于历史数据判断出的最优的实例资源规格。如阿里的 Recommendation Framework(推荐框架)技术,为各类应用提供推荐服务的技术框架。可分析大量的历史数据,利用机器学习和人工智能算法,预测用户的需求,能够有效的降低资源超开。

图4:Recommendation Framework技术架构图


Recommendation Framework整个分析过程可分为四个阶段:


1.Filter阶段:Filter 阶段用于预处理推荐数据。通常,在预处理时需判断推荐目标是否和Recommender对象匹配,比如,Resource Recommender只支持处理Workload(Deployment,StatefulSet)。还可以判断推荐目标状态是否适合推荐,比如是否被删除中,是否达到指定运行时长等。

 

2.Prepare阶段:Prepare阶段用于数据准备,通过调用资源监控数据并将时序数据保存在流程的上下文中。可扩展点用于检测监控系统的外部链接情况,如可用于查询外部时序数据并对数据做预处理,包括应用冷启动的异常数据,部分数据的缺失,数据聚合,异常数据清理等。


3.Recommend阶段:Recommend阶段用于基于时序数据和资源配置输出优化建议,优化建议的类型取决于推荐的类型。比如,如果是资源推荐,那么输出就是kubernetes workload的资源配置。Recommend的扩展点可用于采用 外部算法模块对数据进行分析计算,该阶段对分析结果进行最后处理。可以通过配置自定义Recommend,来实现自定义的推荐结果。


4.Observe阶段:Observe阶段实现了推荐结果的可观测,如在资源推荐时,将优化建议的信息通过 Metric 的方式保存到监控系统,再通过Dashboard来实现可观测优化建议带来的潜在收益。

 

整个Recommendation Framework通过不断地收集运行数据和用户反馈,慢慢学习用户的偏好变化形成业务模型,来不断提供更加精准和个性化的推荐,从而为企业带来更高的成本转化率和业务收入。


(三) 第三象限:面向突发流量弹性扩缩容


第三象限为应用历史利用率最高和日均值之间的区间,由于应用偶发性的服务高峰,造成的最大实例规格的上调,需要将服务实例确定在一个合理的区间内,并提供突发流量的应急措施,自动调整弹性资源。通过弹性伸缩配置,用户可设置定时、周期或监控策略合理地增加或减少弹性资源,保证业务平稳健康运行。在 k8s架构中,资源的弹性扩缩容分为以下两种:

1.水平扩缩容(HPA


图5:HPA技术原理图


通过监控指标(CPU 使用率、磁盘、自定义指标等)自动的扩容或缩容服务中 Pod 数量,当业务需求增加时,系统将无缝地自动增加适量pod 容器,提高系统稳定性。K8s的HPA controler 提供一套自动扩缩容逻辑,默认情况每 30s 检测一次指标,只要检测到了配置 HPA 的目标值则会计算出预期的工作负载的副本数,再进行扩缩容操作。同时,为了避免过于频繁的扩缩容,默认在 5min 内没有重新扩缩容的情况下,才会触发扩缩容。


2.垂直扩缩容(VPA


图6:VPA技术原理图


VPA是基于容器历史数据和预测算法,预测应用程序未来的资源需求。根据监控数据和预测结果,动态调整容器的资源请求和限制,使其适应应用程序的需求。VPA可提供推荐模式和自动模式两种调整模式。在推荐模式下,VPA 生成资源调整建议,由用户手动应用;在自动模式下,VPA 自动应用调整建议。


HPA主要关注整个应用程序水平方向的伸缩,通过调整 Pod 的副本数量来应对负载变化;VPA则关注 Pod 内部容器的垂直伸缩,通过调整容器的资源限制来优化资源利用和性能。但是HPA和VPA很难同时使用,两者会出现资源调整和配置策略的冲突,大大增加部署的复杂性。


(四) 第四象限:应用混部最大化利用有限资源


最后一个象限范围可优化的空间是排除了突发性流量情况下,应用的日常服务潮汐之间的资源差值,可以确定该应用属于服务类场景,具备稳定的波峰波谷和周期,与作业类项目不同,作业类项目通常不具备周期性,且对资源的利用率较高,通过配置两者的优先级和资源限制,灵活混部在同一节点内,能够进一步将第四象限的资源空跑时间进行压缩。


混部方案中Koordinator项目经过2022年4月开源以来的多轮迭代,已趋于成熟,Koordinator通过先进的调度和资源管理技术来增强Kubernetes环境下的应用性能和资源效率。


图7:Koordinator功能架构图


图7展示了 Koordinator 系统的整体架构和各组件的角色分工,其中绿色部分描述了 K8s 原生系统的各个组件,蓝色部分是 Koordinator 在此基础上的扩展实现。从整个系统架构来看,我们可以将Koordinator 分为中心管控和单机资源管理两个维度。在中心侧,Koordiantor 在调度器内部和外部分别都做了相应的扩展能力增强;在单机侧,Koordinator 提供了 Koordlet 和 Koord Runtime Proxy 两个组件,负责单机资源的精细化管理和 QoS 保障能力。


Koordinator 定义了四个等级,分别是 Product、Mid、Batch、Free ,Pod 需要指定申请的资源优先级,调度器会基于各资源优先级总量和分配量做调度。各优先级的资源总量会受高优先级资源的 request 和 usage 影响,例如已申请但未使用的 Product 资源会以 Batch 优先级再次分配。


Koordinator 的设计中另一个核心的概念是服务质量(Quality of Service),Koordinator 将 QoS 模型,在 Pod Annotation 级别进行了扩展定义,它代表了 Pod 在单机运行过程中的资源质量,主要表现为使用的隔离参数不同,当单机资源紧张时会优先满足高等级 QoS 的需求。Koordinator将 QoS 整体分为 System(系统级服务),Latency Sensitive(延迟敏感性的在线服务),Best Effort(资源消耗型的离线应用)三类,根据应用性能敏感程度的差异,Latency Sensitive 又细分为LSE,LSR 和 LS。


通过提供不同的资源优先级和服务质量的实例部署方案,达到整体的资源利用率最优,如:


• Prod + LS:典型的在线应用,通常对应用时延要求较高,对资源质量要求较高,也需要保证一定的资源弹性能力。


• Batch + BE:用于混部场景中的低优离线,对资源质量有相当的忍耐度,例如批处理类型的Spark/MR 任务,以及 AI 类型的训练任务等等。


亚信科技FinOps产品ECC

亚信云成本优化产品ECC(elastic compute Cost)可提供亚信PaaS平台的云成本监控、计量计费,并提出优化建议和执行流程,能够提升平台整体资源利用率,降低PaaS平台用户资源成本。通过提供最佳实践工具、财务流程审批、资源管控模型和关键考核指标,来帮助企业更好地理解、管理和优化他们在云上的支出。


8:亚信ECC产品技术架构图

ECC具备以下特性优势:

1.基于云原生底座:基于云原生底座资源进行FinOps优化,通过云原生Operator开发实现,完美适配云原生环境。


2.多集群统一优化:支持对接多个容器集群及联邦集群,支持多云容器环境下对成本进行统一策略的FinOps成本优化分析。


3.用户成本可视化:用户可以清晰地了解他们在云上各个应用和项目的资源、成本消耗情况,并可以通过直观的图表和报告来分析数据。


4.云成本可预测:提供了成本预测和规划功能。用户可以根据历史数据和业务需求来预测未来的成本,并做出相应的调整和规划。


5.智能优化建议:根据成本分析结果,搭配不同的智能优化引擎和优化策略,提供个性化的成本优化建议,帮助用户识别并实施成本优化路线。


6.支持低碳环保:响应国家碳排放号召,支持对各个系统的平台碳排放和能耗进行分析和预测,推动行业绿色健康发展。


FinOps未来发展方向

随着云计算服务的不断普及和复杂性的提升,有效地管理云成本已成为一项至关重要的任务。在这一背景下,云FinOps(财务运营)作为前沿且活跃的发展领域,正逐渐引起广泛关注。FinOps不仅代表着一种文化变革,更融合了财务管理、操作优化以及跨部门的团队协作,旨在确保云成本的可预测性、透明性和责任性。通过这一综合性的管理方法,企业能够更有效地控制云成本,进而提升整体运营效率和竞争力。以下是未来云FinOps重点发展方向:


1. 自动化和智能化:随着技术进步,自动化工具将更加智能,能够自动执行成本优化策略,如关停未使用的资源、调整资源大小、购买节省成本的预留实例等。利用机器学习和人工智能技术,系统能预测未来的云支出并提供建议,帮助组织更好地规划预算和资源。


2. 治理安全强化:提供更详细的成本报告工具和指标,使企业可以更深入地了解和管理每一笔云支出。自动化工具不仅仅关注成本优化,还将帮助企业确保其云使用符合行业标准和法规要求。


3. 跨部门协作化:FinOps不仅是财务部门的责任,而是需要IT、运维、安全和业务部门共同协作。推动跨部门团队形成,集结各方面的知识和技能,共同推动成本优化和价值最大化。随着FinOps实践的深入,各级员工的教育和培训变得更加重要。


4. 统一集成与标准化:随着云服务提供商和第三方工具的增多,未来的FinOps解决方案将更加注重与这些工具的集成,提供一个统一的视图和操作界面。期望出现一套广泛认可的最佳实践、框架和标准,帮助指导企业实施FinOps。

 
未来云FinOps的发展将聚焦于自动化和智能化技术的运用、强化云服务的治理与合规性、推动企业内不同部门之间的协作,以及持续整合和标准化工具和流程。这些方向旨在帮助企业更有效地管理云成本,实现财务透明和优化资产配置,最终推动整个行业的业务增长和技术创新。

参考资料

[1]crane,github.com,2024.
[2] koordinator,github.com,2024.
[3]刘莹;杨淑萍;张治国Storm分布式计算框架下基于知识图谱的快速学习资源推荐,南京邮电大学学报(自然科学版) 2024.
[4]王孝威从上云到上好云,2023,腾讯云.
[5]云优化治理实践指南第一部分:成本优化,中国信通院,2022.
[6] Hype cycle for Emerging Technologies,Gartner,2024.

亚信科技新技术探索
亚信科技的ICT前沿技术观点与行业洞见。展现亚信新技术与产品行业实践成果。
 最新文章