Type something to search...
云数据库成本效率:FinOps 数据库指南

云数据库成本效率:FinOps 数据库指南

在应用开发生命周期早期融入 FinOps 实践,有助于主动构建成本效益更高的云基础设施。我们此前已探讨基于虚拟机的应用成本效率架构,本文聚焦如何以成本效率为目标设计云数据库。

阅读本文,了解在应用设计阶段采用最有效的定价与使用策略,如何助力云数据库的精准前期成本估算与优化。

注意:本文不涉及数据分析(Hadoop、Spark、Databricks、Snowflake、BigQuery、EMR)、托管数据存储或流式数据库(S3、Redshift、数据湖、Amazon Timestream),这些服务可能是未来文章的主题。


关注云数据库的成本效率架构设计

根据 IDC 数据,数据库管理系统是云支出中最大且增长最快的领域。63% 的企业已将数据库迁移至云,另有 29% 计划在未来三年内迁移(IDC)。

2022 年,数据库管理系统(DBMS)市场 98% 的增长来自云数据库平台,Gartner(2023 年 6 月)指出,云数据库平台即服务(PaaS)占市场总份额超半数(55%)。从采购数据库许可证和基础设施作为资本支出(CapEx)转为按需付费的云数据库服务作为运营支出(OpEx),使企业只需为实际使用量付费。

云的动态性和近乎无限容量使云数据库使用和支出难以预测。更糟的是,低效数据库架构可能未被察觉,导致云成本大幅上升。为优化资源使用并确保成本可预测,在生产部署前设计成本效率的数据库架构至关重要。

在为云设计数据库工作负载时,需考虑影响总拥有成本和业务成果的若干挑战与风险,包括:

  • 许可证:选择数据库平台前,需评估许可证影响,包括现有供应商合同、许可证排除的功能,以及团队添加新功能的能力(与开源选项相比)。
  • 支持:数据库配置、升级、维护、备份和安全补丁可能成为繁琐任务,若管理不当,可能导致昂贵的停机和额外风险。
  • 服务级别协议(SLAs):托管云数据库服务通常包含可用性和维护保障,需审阅 SLAs,确保满足当前和未来应用需求。
  • 性能:常见挑战包括网络延迟、数据库垂直或水平扩展限制、低效数据存储/检索、不佳查询设计(如不必要的 SQL 连接和表列宽)、错误索引、碎片化及为加速处理而过度配置资源。
  • 供应商锁定:专有数据库可减少配置、部署和管理云数据库的时间和精力,但可能限制功能、第三方集成、区域可用性、安全性、扩展性和成本选择。
  • 成本管理:云数据库支出的快速增长及云的不可预测性,使成本管理成为 IT 领导者的首要关切。

云数据库定义

云数据库是为公共或混合云环境构建的数据库,协助组织存储、管理和组织数据。云数据库可作为托管数据库即服务(DBaaS)提供,或部署在云虚拟机(VM)上,由内部 IT 团队自行管理。


数据库类型、用例与部署模型

数据库是有组织的数据集合,设计用于高效存储、管理和检索信息。数据库类型各有优势和适用场景,常见类型包括:

  • 关系型数据库(RDBMS)
  • NoSQL 数据库
  • 面向对象数据库
  • 时间序列数据库
  • 内存数据库
  • 空间数据库
  • NewSQL 数据库

数据库类型、用例与部署模型


云数据库架构决策的关键输入

开发云部署的应用数据库时,需考虑功能性和韧性等因素,但成本同样至关重要。成本效率的架构设计适用于全新项目、本地应用迁移至云,或现有应用的重新设计与重构。这些输入涵盖组织和技术应用需求的多个方面。

规划数据库实施时,需根据应用方式和需求选择合适的数据库类型并优化其架构。需考虑的因素包括存储数据类型、数据查看或修改频率、支持的用户数量及用户地理分布。

其他应用需求包括响应时间、同步与异步模式、连接存活时间(TTL)、加密、管理、监控指标、集成、应用部署与运维(如 DevOps)。

下表列出在公共云上设计数据库前应思考的多种考虑因素和输入:

考虑因素需提问的问题潜在决策
组织核心能力是否拥有或计划招聘、培训并保留具备所需专长的员工?团队对云原生数据库的经验如何?技术团队对某一数据库类型或品牌经验更丰富?培训是否易获取,团队是否愿意学习新技能?若缺乏数据库管理员(DBA)、业务分析师或数据运维(DataOps)团队,考虑完全托管的数据库服务,而非低成本自管理选项。
现有应用和数据库是否有大量专有或遗留数据库?遗留应用是否使用特定数据库品牌?将本地应用迁移至云时,是否可行迁移至其他数据库类型或品牌?考虑转向更通用的数据库(拥有强大社区和广泛技术劳动力)。为降低云迁移风险,可分阶段迁移或重新架构数据库。
数据库软件安装、部署和运维人员是否有中央 IT 团队按组织安全政策和标准安装数据库?手动数据库管理(创建、监控、升级、备份)耗时多少?是否有员工执行这些任务?组织可通过自动化安装和部署数据库,确保高效安全管理,可能涉及内部成本追溯。尽量自动化。若员工有限,完全托管云数据库可能是更好选择,尽管成本较高。
组织一致性需求是否有企业许可证和支持合同的考虑?新增应用使用特定数据库品牌的边际成本是多少?内部是否围绕某数据库类型或品牌形成专长社区?能否轻松实现和测试通用“非功能”能力?新数据库品牌和方式的许可成本对边缘应用可能是合理的。员工分配灵活性和数据库一致性具有价值。考虑高可用性(HA)、灾难恢复(DR)、性能、可维护性、可靠性和扩展性等非功能能力。
持续数据库软件补丁数据库软件更新如何部署?应用对高优先级补丁安装所需的停机是否敏感?若发现数据库软件漏洞,需快速应用补丁以防数据丢失或泄露。
运营成本直接迁移(lift-and-shift)是否存在成本风险?组织是否有大量技术专才用于持续监控、管理和运维?运营故障排查可能需额外可见性,或专用可观测性工具。
支持应用或供应商是否支持其他数据库选项?若应用需求变化,是否可使用更低成本的替代方案?
部署时间支持应用的数据库部署时间表如何?规划数据库、索引等,动态创建数据库与使用现有数据库表相比。
应用生命周期非经常性工程(NRE)与持续成本的预期如何?若数据库仅用于一个月质量保证(QA)测试,而非持续应用,运营成本可能不是架构或效率的关键驱动因素。
许可是否有可带到云的自带许可证(BYOL),或可加入企业最终用户许可协议(EULA),以避免许可证审计、容器许可或云服务商 PaaS 包含许可的问题?是否有企业许可证可 BYOL?若组织已有数据库许可证或支持特定 RDBMS 的内部能力,可能不鼓励其他数据库平台。若支付固定数量许可证,未来五年企业许可协议(ELA)可能限制超出数量。
预测应用/数据库使用增长数据运维团队扩展数据库的速度如何?使用增长时成本如何上升?水平扩展数据库可动态增减计算和存储容量,但管理更复杂。垂直扩展数据库部署更快,但扩展灵活性较低。
性能服务级别协议(SLAs)是什么?消费信贷机构可能要求 200 毫秒 SLA 以交付就业验证和信用报告。
投资回报率(ROI)能否衡量数据库价值?是否有单位成本和单位经济的可见性?共享数据库架构可能更高效,但难以将成本归因于单个应用、用户、项目或团队。
数据库“原生功能”数据库本身是否有构建应用所需的功能?开发团队可选择数据库外的业务逻辑,使数据库层替换或升级更简单。
合规性认证应用是否需要安全或合规认证,如 SOC2、HIPAA、HITRUST?选择云上合规的数据库解决方案(如 HIPAA 合规的 AWS DynamoDB、RDS)。
高可用性(HA)和灾难恢复(DR)应用可用性是否有服务级别协议(SLAs)?若发生中断,数据库恢复速度需多快?关键应用(如医院急诊室应用、执行仪表板、期末财务分析、每日批处理记录更新)对可用性要求和成本差异较大。

实现成本效率的架构决策

选择云数据库架构时,需考虑直接影响构建、部署和运营应用生命周期成本的关键决策。每种数据库类型有其独特优缺点,选择取决于应用或系统的具体要求、用例范围及关键场景。

云服务商提供详细指导,说明哪些数据库类型和部署模型适用于特定场景。以下是一些实用链接:


数据库部署模型

IaaS 数据库与数据库即服务(DBaaS)

在基础设施即服务(IaaS)模型中,客户在云上运行数据库,基于计算实例(如 Amazon EC2Google Compute EngineMicrosoft Azure 虚拟机),类似本地数据中心,保留完全的管理和运营控制。这种控制需求可能源于定制化或监管约束。客户需负责安装、配置和维护数据库软件。

在数据库即服务(DBaaS)模型中,客户可直接从云服务提供商使用完全托管的数据库(如 AWS 的 RDS、GCP 的 Cloud SQL 或 Azure 的托管 SQL 实例),或通过云市场从第三方 SaaS 供应商获取。在该模型中,云提供商或第三方负责数据库的大部分管理和运维任务。

下表展示 IaaS 和 PaaS 模型中具体任务的责任分配:

功能IaaS 模型责任PaaS 模型责任
数据库优化客户客户
扩展客户,自定义配置基于策略,自动化
高可用性(HA)和冗余客户,自定义配置云提供商提供功能,客户配置
监控 - 技术客户,自定义配置云提供商提供
监控 - 成本客户,自定义配置云提供商提供有限功能
备份客户,自定义配置云提供商提供功能,客户配置
数据库补丁和安全客户,自定义配置云提供商提供并规定
数据库安装客户,自定义配置云提供商提供
操作系统安装、补丁和安全客户,自定义配置云提供商提供
硬件和物理服务器云提供商提供云提供商提供
底层基础设施(电源、网络、冷却)云提供商提供云提供商提供

通常,云服务商 PaaS 实例成本高于同等 IaaS 实例,即便剔除隐含的许可成本。然而,PaaS 提供的功能可节省人工(如系统数据库管理员,DBA)。此外,PaaS 强制按计划补丁,可能提升合规性和安全性。建议组织在评估 PaaS 与 IaaS 时,仔细权衡所有成本与收益。客户应检查表格中“云提供商提供”的功能,判断 PaaS 服务是否满足需求。若需额外功能,可能影响选择 PaaS 或常规 IaaS 实现。

经验表明,IaaS 云数据库在需要严格应用要求、细粒度控制和生命周期管理,或特定监管要求的环境中更受欢迎(如银行和金融机构的大型数据库部署)。PaaS 数据库在现代绿地网络规模架构和部署中更常见,应用动态且能适应数据库版本的频繁更改。

另一决策是组织是否为所有应用标准化使用 PaaS,或逐个应用评估 PaaS 与 IaaS。这更多取决于组织考虑,而非技术因素。


许可模型

将本地数据库许可证迁移至云数据库需谨慎评估。不同许可模型可能导致意外成本或限制。了解许可影响对确保合规和避免罚款至关重要。例如,混合许可优惠可显著降低云数据库工作负载成本。以下是关键考虑因素:

  • 商业 vs 开源数据库:取决于应用或组织需求。
  • 自带许可证(BYOL)(如现有最终用户许可协议,EULA) vs 通过云服务提供商采购许可证。
  • 评估当前许可协议与云数据库解决方案的兼容性。
  • 判断是否需要修改或额外许可证以确保兼容。
  • 考虑云环境的性能调优需求。
  • 实施访问控制措施,有效管理用户权限。
  • 定期审查许可证分配和使用模式,优化利用率。
  • 使用可观测性工具分析数据库使用模式,识别过度配置和未充分利用的数据库。
  • 通过优化频繁或长时间运行的查询和调整索引,提升许可证利用率。

BYOL vs 云服务商许可证

在选择 BYOL、云服务商或市场购买的数据库许可证时,需考虑每个工作负载的预期使用情况:

  • 许可证和支持费用的总成本是多少?了解内部可用许可证的单位成本。
  • 是否有可用许可证?
  • 实例是否 24×7 运行,或更零散运行?云服务商提供的许可证(含支持)在 24×7(每年 8760 小时)运行时成本可能高于每实例 EULA 许可证,但若实例运行时间较短(如“扩展工作时间”,每年 2880 小时,12 小时/工作日),云服务商许可证可能更低成本。
  • 数据库实例是否长期运行?若仅用于测试环境、试验或创新实验,将许可证加入企业协议可能要求组织在协议期限内支付维护费用,远超实际需求。因此,即便云服务商许可证更贵,整体成本可能更低。

组织应根据具体情况详细计算,因单个实例和 BYOL 模型的许可证成本各异。这是与 ITAM、SAM 或采购团队合作,了解数据库及其他许可证成本和可用性的绝佳机会。


采购模型

在云端,可通过多种采购策略实现数据库支出的显著节约,基于长期使用承诺。这包括预留和基于承诺的折扣。为有效实施,需准确估算使用模式,为 24×7 运行的实例(如生产工作负载)采购预留。非生产工作负载通常每天运行 10-12 小时,按需开关。假设非生产每周 5 天、每天 12 小时,每月共 240 小时;生产每月 24×7 共 720 小时。通过此模型,可减少 2/3 的小时数,从而降低成本。

若云实例未正确调整规模,预留过度分配且未充分利用的实例(CPU、内存、存储),问题将加剧。在承诺节省计划或其他承诺项目前,应探索实例的正确调整规模。


治理与工程实践

云拥有与传统数据中心遗留运营模型根本不同的运营模式。

实施一致的云最佳实践,使团队能够基于数据决策。例如:

  • 为数据库实例标记适当的基础设施和应用所有者。
  • 实施策略,识别并通知用户关于未充分利用或过度配置的资源。
  • 管理数据库生命周期(如存储、内存、实例类型、备份)。
  • 选择合适的备份频率和保留策略(例如,对象存储中的数据库备份比托管云数据库便宜 80%)。
  • 通过持续监控使用量和性能,适时调整数据库规模。
  • 选择最具成本效益的数据库存储(例如,标准性能 SSD vs 高 I/O SSD)。
  • 确保自动删除过期快照,遵循保留周期和生命周期。

在云上设计数据库时,根据应用需求优化内存、性能或 I/O。RDS 定价因选择的数据库引擎而异。

  • 探索开发测试环境的无服务器策略,避免应用未运行时的数据库基础设施成本。
  • 单可用区(AZ) vs 多可用区(multi-AZ)部署:仅为符合恢复时间目标(RTO)/恢复点目标(RPO)业务需求的工作负载选择多 AZ。跨 AZ 数据传输和额外目标 AZ 均有成本影响。非生产环境禁用多 AZ,除非必要。

存储类型

云数据库存储成本因云提供商、数据库引擎、存储类型和数据存储区域而异。关系型数据库通常需低延迟存储(如块存储)。对象存储性能较低,常用于归档和备份关系型数据库。

此外,云提供商常基于使用量提供不同定价模型和层级:

  • 对象存储(如 Amazon S3Google Cloud StorageAzure Blob Storage):存储大量非结构化数据最具成本效益,适合文件、备份、日志等非关键数据检索场景。
  • 冷存储(如 Amazon S3 Glacier、Google Cloud Storage Coldline、Azure Archive Storage):为长期数据归档设计,比标准对象存储更经济,但检索时间较长,适合合规或监管要求的罕见访问数据。
  • 关系型数据库存储(如 Amazon RDS、Google Cloud SQL、Azure SQL Database):通常基于 SSD 或 HDD 存储,比对象存储昂贵,但性能更高。
  • NoSQL 数据库存储(如 Amazon DynamoDB、Google Cloud Firestore、Azure Cosmos DB):NoSQL 数据库存储成本通常高于关系型数据库。
  • 内存数据库存储:内存数据库主要在 RAM 中存储数据以加快访问,因内存成本高于磁盘存储,费用较高。

备份

云上数据库备份策略与传统本地数据库备份有所不同,每项架构决策均有成本影响。例如:

  • 本地备份是否足够,或需跨可用区或区域复制?
  • 根据恢复时间目标(RTO)/恢复点目标(RPO)确定备份频率?
  • 备份保留策略如何(基于 RTO/RPO)?
  • 备份数据存储在哪里?EBS 卷、S3 存储桶还是归档存储?
  • 是否利用去重和压缩减少备份大小和存储成本?
  • 是否使用云原生工具和自动化,采用更适合云的备份策略(如时间点快照)?

无服务器数据库

无服务器数据库(如 AWS Aurora)为用户提供底层存储容量,无需配置专用计算资源,可能避免相关成本。查询此类数据库类似于调用 AWS Lambda。备份和韧性策略与传统数据库不同(参考 AWS Aurora 概览)。因此,设计无服务器数据库需考虑这些差异,并评估并发性和安全性需求,因并非所有数据库引擎适合无服务器。


灾难恢复

数据库复制是在不同位置创建和维护多个数据库副本,以确保数据可用性、容错、数据冗余和性能提升。每种灾难恢复相关的复制策略都有成本影响,包括可能因需升级到更强大 DBMS 版本(如 SQL Server 标准版 vs 企业版)导致的许可成本。典型复制策略包括多 AZ 和多区域,采用主从或活跃-活跃配置。

需根据具体用例、工作负载需求、RTO/RPO 要求及数据一致性和可用性选择合适的复制策略。此外,需考虑网络延迟、数据量、应用恢复及复制节点间潜在冲突。灾难恢复测试应涵盖从应用到数据库的端到端流程。还需估算跨区域出口成本(如 Amazon RDS、Azure SQL、Google Cloud SQL)。


自动扩展模型

  • 垂直扩展:通过在更大、更高效的实例上运行数据库,采用扩展方式。垂直扩展通常较简单,但可能需重启数据库,导致临时离线或以有限容量运行(如只读),以扩展存储、内存或处理能力。
  • 水平扩展:通过添加更多同类型实例,分散工作负载,提供无中断的高并发和并行处理、降低延迟、提升速度、弹性(高峰期优化性能,低需求时降低成本)和改进查询性能。
  • 垂直 vs 水平扩展配置取决于数据库和应用类型,并非所有数据库支持两者。

预测

预测云数据库资源使用对按需付费模型下的业务价值交付至关重要。准确预测可制定节省成本策略(如采购预留和承诺、闲置时关闭实例)。但预测极具挑战,需深入了解使用模式及工程与业务团队的广泛协调。因此,应利用“架构良好框架”(AWSAzureGoogle Cloud、Oracle Cloud)最大化成本效率。根据组织和费率优化管理方式,需考虑以下问题:

  • 选定数据库引擎能否在本地和多种云服务商环境部署?
  • 数据库是否可从多种设备、服务和地理位置访问?
  • 数据库能否根据应用消耗需求配置性能并上下扩展?
  • 数据库是否支持多种用户角色和应用,还是仅为单一应用设计?
  • 云数据库资源和许可证预测是否考虑应用使用增长?

角色参与

成本效率的云数据库架构需创新领导力和高技能团队协作。业务需求决定数据库模式及其他架构设计决策,如索引、缓存、复制、维护和灾难恢复。在需求阶段,产品、财务、采购和 FinOps 团队协作,定义衡量数据库效果的关键标准,如查询响应时间(插入、更新、删除)、维护和安全补丁的数据库停机时间、区域可用性和故障转移服务级别协议(SLAs)。

明确业务需求后,额外团队协助定义数据库架构。数据库管理员(DBA)、云架构师、功能架构师、开发人员、云工程师/运维和数据运维(DataOps)评估最有效且成本效益高的数据库选项,以满足业务需求。以下是产品开发时间线示例,展示各阶段涉及的角色。小型组织可能合并这些角色/职责。

角色参与


需求阶段角色与交付物

团队或角色FinOps 从业者输入FinOps 交付物
产品应用愿景、用例、目标、业务指标、SLAs 和预期使用模式成本分配计划及成功案例
财务总体应用预算、收入、盈利目标预计年度产品收入和支出
业务领导批准业务应用需求、预算、收入和盈利目标预计年度云应用成本、成本驱动因素和盈亏平衡分析
采购/法律首选云和软件供应商选择标准、支出承诺、消耗折扣、数据主权和监管要求预计年度云应用成本
云架构师可行性、云考虑因素预计年度云应用成本、分配计划

数据库架构阶段角色与交付物

团队或角色FinOps 输入FinOps 交付物
产品用户角色、期望、故事和客户反馈云应用成本驱动因素和盈亏平衡分析
财务应用使用增长预测及效率指标(如每用户、每交易或每会话成本)云应用成本驱动因素、分配计划及效率指标估算和目标
业务领导批准应用开发预计应用利润率、效率目标
采购/法律软件即服务(SaaS)、现成商用软件(COTS)推荐,应用、数据库、可观测性和软件的购买 vs 新建决策按时间段和季节(小时、日、周、月、季、年)估算承诺云服务、SaaS 和 COTS 软件使用量
数据库管理员(DBA)云数据库架构选项和考虑因素、数据库模式、安全、存储、缓存和监控各架构替代方案的预计成本节约、云数据库成本效率建议、云数据管理成本考虑
云架构师云数据库设计选项、建议和考虑因素云数据库和数据存储成本效率建议的预计成本节约、云成本管理考虑
功能架构师功能需求、监管合规和成本效率的数据库硬件、软件、计算、存储和网络云数据库和数据存储成本效率建议的潜在成本节约及成功案例
开发人员数据库可靠性、性能、扩展、韧性目标及概念验证测试,建立基线和峰值使用成本云数据库定价、成本基准、考虑因素和成功案例
云工程师/运维数据库可靠性、性能、扩展、韧性要求及优化应用成本效率的可观测性计划云数据库成本驱动因素、效率指标估算、成本基准、考虑因素和成功案例
数据运维(DataOps)优化关系型数据库和数据管道成本效率的数据可观测性计划数据成本驱动因素、效率指标估算、数据库和数据存储成本基准、考虑因素和成功案例

结论

本文强调,战略和战术数据库设计/架构决策对云应用生命周期成本(包括开发、运营和支持)影响巨大。建议读者深入了解这些决策、驱动决策的标准(包括应用需求、组织能力和云数据库部署方式)。审查决策者的角色对改善协作也至关重要。

由于云数据库成本受数据库功能和部署模型强烈影响,架构决策将产生持久财务影响,因此在应用开发生命周期早期对齐数据库部署和运营方式,以平衡部署速度、数据库性能和成本效率。


联系我们

有任何云成本管理的需求或问题?欢迎通过以下方式联系我们!

公众号

Mofcloud 微信公众号二维码

企业微信客服

Mofcloud 企业微信客服二维码

业务咨询

contact@mofcloud.com

技术社区

mofcloud/issuer

地址

北京市海淀区自主创新大厦 5层

标签 :

推荐阅读