当前位置: 首页 > 科技观察

云数据库FinOps实战复盘

时间:2023-03-12 20:23:45 科技观察

历时三个多月的HBase成本优化项目如期交付。HBase云数据库月成本下降32.5%,超预期目标。我们对这个HBase的成本优化项目进行了深入的回顾,并进一步尝试总结了云数据库的FinOps方法。希望能够赋能mysql、redis、mongo等其他云数据库产品,实现降本增效,进而为互联网寒冬环境下的企业IT降本增效提供参考思路。本文将从四个方面入手:云数据库成本挑战什么是FinOpsHBase成本优化实践云数据库FinOps之道1、云数据库成本挑战早期,云计算被视为企业降低IT管理成本的重要途径,提高业务敏捷性的方式。尤其是对于高性能、高可用、使用灵活等特点的云数据库,“数据库上云”是降低成本、提高效率的重要途径。但随着云数据库的大规模使用,云产品的成本问题开始显现。比如我们使用的双集群HBase,在投入使用两年后,成为所有云数据库类别中成本最大的组件。如何解决云数据库的成本优化问题?尤其是在互联网如此寒冬的情况下,更是很多技术团队面临的首要问题。常见的成本优化挑战包括四种情况:挑战一:无法准确衡量数据库资源是否被浪费。挑战二:收缩降级效果不明显,没有其他优化措施。挑战三:基础设施团队很着急。一线业务团队不关心。挑战四:“运动”成本优化,无法形成长效机制。为了系统地解决这些问题,有必要引入FinOps(云成本优化)的概念。2、什么是FinOpsFinOps是“Finance”和“DevOps”的结合,也称为“云财务管理”、“云成本管理”或“云财务优化”。FinOps有一个权威机构——FinOpsFoundation。FinOps基金会是由Linux基金会发起的一个项目,致力于通过最佳实践、教育和标准来促进云财务管理学科的实践。FinOps基金会对FinOps的定义如下:FinOps是一种不断发展的云财务管理学科和文化实践,通过帮助工程、财务、技术和业务团队就数据驱动的未决决策进行协作,使组织能够获得最大的商业价值。d(定义:November2021byFinOpsFoundationTechnicalAdvisoryCouncil这里重点讲三个:文化实践文化建设:FinOps标准和文化需要建立和推广(自上而下)协同跨团队协作:工程、财务、技术和业务团队.(FinOpsisnotjusttheworkofanyoneteam)data-drivenapproach:data-driven.(如何促进协作的关键)另外,FinOps有几个很重要的维度,包括六大原则,角色,周期方法论,3.HBase成本优化实践参考FinOps的六大原则,我们来看看HBase成本优化是如何实现的离子项目。(1)团队协作原则一:团队需要协作原则二:云使用人人有主这个原则具有重要的现实意义。单个团队很难负责成本优化。每个团队都必须将成本作为关键指标,并不断优化以提高效率和创新。在HBase成本优化项目启动之初,我们就与各业务团队进行了深度沟通,全面对接HBase成本优化的现状、价值和实施路径。业务团队的成本优化方案目前是成本优化。团队A预计人力投入为xxx5k/月。份数减少20人。团队B降级为xxx8k/月。业务降级,取消灾备30人日。TeamC是xxx4k/month以25人天替换云原生数据库。TeamDxxx10k/月40man-days冷热分离因此,在项目开发过程中,各团队可以结合自身业务特点,利用业务架构优化、数据架构优化、云原生技术等手段,共同走向HBase成本优化的大目标继续前进。(2)中心化驱动原则3:中心化团队驱动FinOps有一个专门的团队来推动FinOps的发展,包括各个流程的推进和基础设施的建设。在本次HBase成本优化项目中,采用“项目制”的形式,由基础架构团队进行推广,提供成本优化目标、资源使用状况、数据增长变化、业务转型计划支持等指标和工具。未来我们将开发统一的FinOps平台产品,集中化的产品对云数据库成本优化进行长期持久的推广。(3)可视化数据和报表原则4:报表应该是可访问的和及时的HBase目前是以集群模式运行的,每个集群都有业务团队共享集群的情况。此外,业务数量众多(近百个敏捷组),如何快速识别大成本并进行优化也是一个关键问题。因此,在本次HBase成本优化项目中,充分贯彻了数据驱动的理念。大数据量识别,筛选出单副本大于5T的业务。总共有15个敏捷组,占总存储量的80%以上。高增长率识别筛选出增长率较快的业务。优化效果指标评估使用脚本统计记录数据,跟踪目标业务的优化情况。这些数据驱动的能力后续将沉淀为FinOps平台上的通用组件能力。(4)因地制宜,优化业务结构原则五:云的商业价值驱动决策在获得成本相关数据后,根据实际业务价值和使用情况做出成本优化决策。在本次HBase成本优化项目中,各业务团队充分利用自身业务特点,对相关业务进行了优化。减少副本数以HBase为例,它存储在本地磁盘的HDFS中,采用三副本机制保证数据不丢失。为了提高应用的稳定性,降低单个HBase不可用的风险,我们的核心业务搭载了双集群主备架构的HBase。这导致一份数据有六份副本,导致磁盘空间使用量迅速膨胀。在多副本容灾架构下,可以将主备集群中的数据调整为两份(去掉replica3和replica6),整体变成四份,可以减少30%的磁盘空间占用。一个业务团队有140T的数据一个副本和840T的六个副本。磁盘使用率不断攀升,造成巨大的成本压力。我们通过将副本数调整为四份(原来的六份),有效降低了280T数据的磁盘使用空间。数据冷热分离如果数据量过大,一般可以考虑根据数据生命周期的特点实施冷热分离和无效数据清洗。关键逻辑客户端在写入热存储客户端查询时,根据业务的冷热划分逻辑进行路由查询。迁移任务根据业务冷热划分逻辑(一般为生产时间或修改时间)查询过滤,符合条件的冷数据写入冷库,对账任务从热库中删除根据迁移任务的log日志,进行定期校验以确保数据不丢失。验证无误后,清理日志并做数据压缩,减少存储容量。对于单值比较大的数据,可以采用snappy、lz4、gizp等数据压缩算法,提高数据压缩率,减少存储。HBase和mongo等数据库服务器可以配置为自动压缩。如果服务端不支持自动压缩,可以在写入前使用客户端压缩。(5)充分利用云产品原则6:利用云的可变成本模型充分利用不同的云产品计费模型。这个其实目前已经做了很多,比如选择不同云厂商的不同产品,根据不同的场景选择不同的计费模式(订阅、按量付费、serverless等)。在本次HBase成本优化项目中,典型的是在特定的业务场景中引入HBaseServerless方案作为灾备集群,减少普通集群作为灾备集群的低效支出。4.云数据库FinOps之道上一节我们讲了HBase成本优化实践的一些原理和具体操作,更偏重于“技术”层面。接下来,我们结合FinOps循环治理方法论,更全面地思考FinOps方法对云数据库的影响。FinOps基金会推荐一种迭代方法来管理云服务的可变成本。最佳实践包括三个应持续管理的领域:通知、优化和运营。(1)Inform的核心在于数据的可视化和分发。业务团队和财务利益相关者可以确保他们在控制预算和准确预测支出的同时提高投资回报率并避免意外。同时也可以作为一个业务团队的基本指标来衡量和提升团队成本优化的效率。正如数据可视化中所说的那样,你无法衡量它,就无法管理它。数据驱动的概念也是FinOps的核心。包括但不限于:资源(CPU/内存/磁盘)使用率资源增长率资源预算资源实际使用超额率资源使用预测准确全面的可视化可以更好地解决成本优化的挑战1.准确衡量是否存在资源浪费案件。云上可分配的资源,要尽可能精细、准确地分配给每个实际使用的团队。目前在微服务架构下,单实例组件更容易与上游应用绑定,然后分配给具体的业务团队。但集群类组件(如HBase)仍然需要做更细粒度的计算和分配。(2)优化(Optimize)一旦资源优化指标与实际使用团队准确绑定,就可以进行各种优化任务。最基本的方法是根据数据使用指标向下分配和缩减闲置资源。更深入的优化需要结合实际业务场景,参考3.4,实施减少副本数、冷热分离、数据压缩、充分利用云产品等方法。(挑战2的解决方案)(3)运营(Oprate)文化建设通过FinOps优化成本的文化建设是首要条件。这种意识和相关的奖惩制度必须自上而下地推行。让基础团队和业务团队认识到,这项工作不是某个人或某个团队的事,而是每个团队在架构设计、技术优化、性能实现等方面的重点工作。(Challenge3的解决方案)如果没有这种文化自上而下的推动,FinOps肯定不会落地,更谈不上长效机制。自动化流程和机制为了使FinOps成为一种长期机制,除了文化建设之外,还必须将手动流程自动化。从数字化、成本问题识别、任务分配、优化完成、数据跟踪等环节开始,一整套流程以平台产品的形式沉淀下来。改变“运动”优化的困局,形成真正的长效机制。(Challenge4的解决方案)5.总结本文从云数据库成本挑战中引入FinOps的概念,并结合HBase成本优化项目对FinOps的具体原理和实际案例进行讲解。最后总结了云数据库FinOps的方式,形成了数据库成本优化真正的闭环解决方案,形成了长效机制,彻底解决了四种常见的成本优化挑战。