云数据库FinOps实战复盘

简介: 云数据库FinOps实战复盘

历时三个多月的HBase成本优化项目按照预期交付了,HBase云数据库月度成本下降了32.5%,超出预期达成目标。


我们对本次HBase成本优化项目进行深度复盘,并进一步尝试总结云数据库的FinOps之道。

希望能够赋能mysql、redis、mongo等其他云数据库产品实现降本增效,进而给互联网寒冬环境下的企业IT降本增效,提供一个参考思路。

本文将从4个方面进行展开:

  • 云数据库成本挑战
  • 什么是FinOps
  • HBase成本优化实践
  • 云数据库FinOps之道


1、云数据库成本挑战


在早期,云计算被视为企业降低IT管理成本、提高业务敏捷性的重要途径。尤其是云数据库,高性能、高可用、弹性使用等特性,“数据库上云”是降本增效的一个重要途径。

但是,随着云数据库大规模使用,云产品的成本问题开始显现。比如我们使用的双集群HBase,在投入使用2年后,已经成为所有云数据库类别中,成本占比最大的组件。

如何解决云数据库成本优化问题?尤其在这样的互联网寒冬下,是摆在很多技术团队面前的首要问题

常见的成本优化挑战包括四种情况

  • 挑战一:无法准确衡量数据库资源是否存在浪费
  • 挑战二:缩容、降配等手段效果不明显,没啥别的优化措施
  • 挑战三:基础架构团队很着急,一线业务团队不care
  • 挑战四:“运动式”成本优化,无法形成长效机制

为了系统化解决这些问题,就需要引入FinOps(云成本优化)的概念了。


2、什么是FinOps


FinOps 是“Finance”和“DevOps”的综合体,也被称为“云财务管理”、“云成本管理”或“云财务优化”等。

FinOps有一个权威组织——FinOps 基金会,FinOps 基金会是Linux 基金会发起的项目,致力于通过最佳实践、教育和标准来推动实践云财务管理学科。

FinOps基金会对FinOps定义如下:

FinOps is an evolving cloud financial management discipline and cultural practice that enables organizations to get maximum business value by helping engineering, finance, technology and business teams to collaborate on data-driven spending decisions. (Definition Updated: November 2021 by the FinOps Foundation Technical Advisory Council

这里有三点非常关键:

  • cultural practice文化建设:FinOps的准测与文化需要建设推广。(自上而下)
  • collaborate跨团队协作:工程、财务、技术和业务团队。(FinOps绝不只是任意一个团队的工作)
  • data-driven方式:数据驱动。(如何推动协作的关键)


此外,FinOps还有几个非常重要的维度,包括六大原则、角色、循环方法论、成熟度模型。

640.png


3、HBase成本优化实践


参考FinOps六大原则,我们来看看 HBase成本优化项目 中如何落地。


3.1 团队协作


原则1:Teams need to collaborate

原则2:Everyone takes ownership for their cloud usage

这两条原则非常具有现实意义,成本优化很难由单一团队负责,必须各个团队都把 成本 作为一个关键指标,持续优化,提高效率和创新能力。

在HBase成本优化项目的 立项之初,我们就提前和各个业务团队进行深入沟通,对HBase成本优化的 现状、价值、实施路径 充分对齐。

业务团队

目前成本

优化成本

优化方案

预计人力投入

A团队

xxx

5k/月

降低副本数

20人日

B团队

xxx

8k/月

业务降级,取消灾备

30人日

C团队

xxx

4k/月

替换云原生数据库

25人日

D团队

xxx

10k/月

冷热分离

40人日


因此,在项目开展过程中,各个团队能结合各自的业务特点,采用 业务架构优化、数据架构优化、云原生技术 等手段,共同朝着HBase成本优化的大目标前进。


3.2 中心化驱动


原则3:A centralized team drives FinOps

专门有一个团队来推动FinOps的开展,包括各项流程的推进、基础设施的搭建等。

本次HBase成本优化项目中,采用 项目制 的形式,由基础架构团队进行推进,提供了诸如 成本优化目标、资源使用状况、数据增长变化、业务改造方案支持 等指标与工具。

后续,我们会开发一个统一的 FinOps平台产品,由一个 中心化产品,进行长效持久地推进云数据库成本优化。


3.3 可视化数据与报告


原则4:Reports should be accessible and timely

HBase目前是集群模式运作,各个集群都存在业务团队共用集群的情况。另外,业务数量众多(近百个敏捷组),如何快速识别成本大头进行优化,也是一个重点问题。

因此,本次HBase成本优化项目中,充分践行了 数据驱动 的理念。

  • 大数据量识别筛选出单副本大于5T的业务,共15个敏捷组,占总存储80%以上
  • 高增速识别筛选出增速较快的业务。
  • 优化效果指标评判采用脚本统计的方式记录数据,跟踪目标业务的优化情况。

这些数据驱动的能力,后续会沉淀为FinOps平台上的通用组件能力。


3.4 因地制宜,业务架构优化


原则5:Decisions are driven by business value of cloud

获得成本相关数据后,根据实际业务价值和使用情况进行成本优化决策。

本次HBase成本优化项目中,各个业务团队充分利用各自业务特点,进行相关业务优化。


3.4.1 减少副本数


以HBase为例,本身存储在本地盘的HDFS上,通过三副本机制保证数据不丢失。

为了提高应用稳定性,降低单HBase不可用带来的风险,我们核心服务都配备了双集群主备架构的HBase。这样导致了一份数据会存在六个副本,造成了磁盘空间使用率的极速膨胀。

640.png

在多副本灾备架构下,可以对主备集群内数据都调整为两副本(去掉replica3、replica6),整体变为四副本,可以降低30%的磁盘空间使用。

某业务团队单副本140T数据,六副本840T,磁盘使用率不断上涨,造成巨大成本压力。我们通过调整副本数量为四副本(从原来的六副本),有效降低了280T数据的磁盘使用空间。


3.4.2 数据冷热分离


如果数据量过大,一般可以考虑根据数据生命周期特点,实施冷热分离、无效数据清理。

640.png

关键逻辑

  • 客户端写热存储
  • 客户端查询时,根据 业务冷热划分逻辑 进行路由查询。
  • 迁移任务根据 业务冷热划分逻辑(一般为生产时间或修改时间)进行 查询&过滤 ,将符合条件的冷数据写入冷存储,并且从热存储中删除
  • 对账任务根据迁移任务的记录日志log,进行定时校验,确保数据不丢失,校验无误后清理log

3.4.3 做好数据压缩,减少存储量

对于单value比较大的数据,可以通过数据压缩算法,如snappy、lz4、gizp等,提高数据压缩比,降低存储。

HBase、mongo等数据库服务端可以做自动压缩的配置,如果服务端不支持自动压缩的,可以采用客户端压缩后再写入。


3.5 充分利用云产品


原则6:Take advantage of the variable cost model of the cloud

充分利用好不同的云产品计费模型。这个目前其实做比较多了,比如选择不同云厂商的不同产品、根据不同场景选择不同计费模式( 包年包月、按量付费、serverless等)等。

本次HBase成本优化项目中,典型的就是在某个特定业务场景下,引入了 HBase serverless方案 作为灾备集群,降低了普通集群作为灾备集群的低效支出。

4、云数据库FinOps之道

前面聊了HBase成本优化实践的若干原则与具体操作,比较偏重“术”的层面。

下面,我们再结合FinOps的循环治理方法论,来更全面地思考云数据库的FinOps之道。

640.png

FinOps 基金会建议采用迭代方法来管理云服务的可变成本。最佳实践包括应持续管理的三个环节:通知、优化和运营。


4.1 通知(Inform)


核心在于 数据可视化可分配

业务团队和财务利益相关者能够确保他们在控制预算和准确预测支出的同时提高ROI,避免意外。

同时,也能作为一个业务团队的基础指标,来衡量并提升团队成本优化效率。


4.1.1 数据可视化


俗话说,It you can’t measure it, you can’t manage it。

数据驱动理念在FinOps中同样处于核心地位。

包括但不限于:

  • 资源(CPU/内存/磁盘)使用率
  • 资源增长速率
  • 资源预算
  • 资源实际使用超额比例
  • 资源使用预测

准确而全面的可视化,可以较好解决成本优化的挑战一,精准衡量是否存在资源浪费的情况。


4.1.2 可分配


对于所有云上资源,都要尽可能精细化、准确 分配到各个实际使用团队上。

目前在微服务架构下,单实例类型的组件比较容易跟上游应用绑定,进而分配到具体业务团队。但是集群类型的组件(如HBase),仍然需要做进一步细粒度的计算与分配。


4.2 优化(Optimize)


一旦资源优化指标准确绑定到 实际使用团队后,就可以开展各项优化工作。

最基础的方式,是根据数据使用率指标,对空闲资源进行降配、缩容等方式。

更深度的优化,需要结合实际业务场景,参考3.4的内容,实施 减少副本数、冷热分离、数据压缩、充分利用云产品 等手段。(解决挑战二)


4.3 运营(Oprate)


4.3.1 文化建设


通过FinOps进行成本优化的文化建设是首要条件。必须自上而下推行这种意识和相关的奖惩制度。

让基础团队、业务团队认识到这项工作不是某个人、某个团队的事情,而是各个团队在架构设计、技术优化、绩效达成中的关键任务。(解决挑战三)

如果没有自上而下推行这种文化,FinOps肯定无法落地,更不用谈长期机制了。


4.3.2 自动化流程与机制


为了使FinOps成为一种长期机制,除了文化建设外,必须将人工流程自动化。

从 数据化、成本问题识别、任务分配、优化完成、数据追踪 等环节入手,将一整套流程以平台产品的形式沉淀下来。

转变”运动式“优化的困境,形成真正的长期机制。(解决挑战四)


5、小结


本文从云数据库成本挑战引入FinOps的概念,结合HBase成本优化项目阐述了FinOps的具体原则与实践案例。

最后总结了云数据库FinOps之道,形成数据库成本优化真正的闭环解决方案,形成长效机制,彻底解决四种常见成本优化挑战。


往期热门笔记合集推荐:

  • HBase原理与实战笔记合集
  • MySQL实战笔记合集
  • Canal/Otter源码与实战笔记合集
  • Java实战技巧笔记合集
目录
相关文章
|
3月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
500 7
|
人工智能 关系型数据库 OLAP
聚光灯已就位!阿里云瑶池数据库邀你征战Cursor首届实战征文大赛
阿里云AnalyticDB携手Cursor中文社区,正式发起首届实战征文大赛!我们诚邀开发者融合Cursor的智能编程能力与AnalyticDB PostgreSQL提供的Supabase服务进行项目开发,让优秀项目被专家看见、被机遇拥抱!
|
7月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
368 1
|
8月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
7月前
|
SQL 数据建模 关系型数据库
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
1462 4
|
4月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
437 0
|
10月前
|
存储 运维 监控
百万指标,秒级查询,零宕机——时序数据库 TDengine 在 AIOps 中的硬核实战
本篇文章详细讲述了七云团队在运维平台中如何利用 TDengine 解决海量时序数据存储与查询的实际业务需求。内容涵盖了从数据库选型、方案落地到业务挑战及解决办法的完整过程,特别是分享了升级 TDengine 3.x 时的实战经验,给到有需要的小伙伴参考阅读。
428 1
|
存储 缓存 监控
71.7万/秒到1.4万/秒!数据库查询优化实战
在现代计算机系统中,程序的局部性原理是优化性能的关键。通过利用时间局部性和空间局部性,可以显著提升数据访问效率,减少高开销的操作如内存访问和网络 I/O。本文将探讨如何利用空间局部性原理,在实际案例中减少数据库查询量,并通过详细的监控和优化措施确保系统的稳定性和高效性。
71.7万/秒到1.4万/秒!数据库查询优化实战
|
11月前
|
关系型数据库 数据库 数据安全/隐私保护
云数据库实战:基于阿里云RDS的Python应用开发与优化
在互联网时代,数据驱动的应用已成为企业竞争力的核心。阿里云RDS为开发者提供稳定高效的数据库托管服务,支持多种数据库引擎,具备自动化管理、高可用性和弹性扩展等优势。本文通过Python应用案例,从零开始搭建基于阿里云RDS的数据库应用,详细演示连接、CRUD操作及性能优化与安全管理实践,帮助读者快速上手并提升应用性能。
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
905 4
国产数据实战之docker部署MyWebSQL数据库管理工具

热门文章

最新文章