写点什么

如何了解云数据库的隐藏费用,计算真实成本

作者 :Dan Kelly

  • 2023-04-27
    北京
  • 本文字数:2513 字

    阅读完需:约 8 分钟

如何了解云数据库的隐藏费用,计算真实成本

在云计算成为主流之前,计算数据库成本只需要使用一个简单的公式:软件成本+硬件成本=数据库成本。如果你使用的是开源产品,那么软件成本可能会有所降低。虽然云计算已经从根本上改变了使用和部署软件的方式,但很多人仍然在使用这种过时的计算方法来计算数据库成本。

 

事实上,在计算数据库的总体成本时,还有很多东西需要考虑。除了硬件和软件成本,你还需要考虑数据库的伸缩成本、与现有或未来系统集成的成本,以及计划中(或计划外)的停机时间成本。

 

在计算云数据库的成本时,需要事先考虑到这些问题。在The Cockroach Hour的一期 Webinar 中,我们给出了在计算数据库真实成本时需要考虑的问题。成本主要分为三类:硬成本、运维成本和软成本。

 

如果你想看完整的报告,可以看看这份50页的报告。该报告评估了七家不同的公司,其中的见解可以帮你降低成本,改进正常运行时间,并加快创新的步伐。

 

在本文中,我们将回顾 Webinar 中提到的各个成本项,并提供一个模板,你可以用它来计算自己的数据库成本。

 

数据库的硬成本

 

从表面上看,在云计算开始流行之前,等式的这一部分并没有太大变化。数据库的硬成本分为两类:软件许可和硬件。云计算的崛起为我们带来了一些关于硬件和软件成本的新问题。

 

云数据库软件成本

 

市场上有很多种软件许可,可以分为三类:

 

  • 传统企业:在云计算出现之前,这种模式在企业软件领域已经存在了 30 多年。你需要提前为企业软件许可支付一大笔费用(通常是数十万美元,再加上支持和维护费用)。购买之后,你还要为额外的功能和升级支付额外的费用。

  • 完全开源:完全免费的 Apache 许可。不过,与自由软件许可相关的成本并非不存在。你需要花钱维护它,支持它,降低它的风险。我们稍后会讨论这些成本。

  • 商业开源:这种模式大约是在 10 到 15 年前出现的,作为一种可行的解决方案,可以解决完全开源许可中存在的一些问题,比如补偿和支持方面的问题。

 

云数据库硬件成本

 

如今的硬件成本与 30 年前有所不同,但它们并没有消失,尽管你不再需要在机房里安装嗡嗡作响的巨型机器。不同的地方在于,你可能会与供应商协商价格,或利用规模来降低成本,但这些成本仍然存在。

 

你还需要管理和运维,所以运维成本不会凭空消失。你需要花时间在云供应商提供的管理接口上,并从运维的角度来理解它们,因此接口的易用性就变得非常重要。

 

数据库的运维成本

 

除了硬件和软件成本之外,还有日常运行数据库所产生的成本。根据你所选择的供应商(及其定价结构)的不同,这方面的成本变化很大,但都存在同一个问题:如果在未来需要执行 X 个任务该怎么办?

 

在使用数据库的过程中,你将不得不进行灾难恢复、水平伸缩以及将系统与其他工具集成,等等。我们可能会想“船到桥头自然直”,但在计算数据库的真实成本时,你需要考虑这些不可避免的情况,并在需要处理这些情况时将其纳入到成本计算当中。

 

灾难恢复:数据库故障成本

 

不管硬件之上有多少个抽象层,归根结底,我们都是在跟机械设备打交道,而机械设备总归会发生故障。在为你的应用程序部署数据库时,你还需要考虑临时或灾难性故障所带来的成本。虽然导致应用程序发生故障的原因有很多,但数据库是导致停机的主要原因:版本太旧、写入性能瓶颈、内存问题、事务被锁定、配置错误、硬件故障。你需要为这些不可避免的情况做好准备,因为它们总有一天会发生。

 

计划中和计划外的停机都可能带来巨大的成本,虽然这种成本可能不容易计算,但仍然需要将其作为数据库成本的一部分来考虑。业务不同,停机时间的影响也不相同,但在计算停机时间对业务的影响成本时,可以考虑以下几个方面:

 

  • 收入损失:错失进行在线交易或吸引潜在用户的机会;

  • 声誉影响:消费者可能会转而购买竞争对手的产品;

  • 客户满意度:由于看到了问题的发生而对你的产品或服务失去信任;

  • 监管成本:监管机构有时会因数据问题对组织处以罚款;

  • 法律责任:在极端情况下,可能会因与数据丢失相关的问题遭到诉讼。

 

有一些非常简单和直接的技术原因可以说明为什么数据丢失和停机可能会是一个问题。我们经常发现自己在处理较长时间的 RPO(恢复点目标)/RTO(恢复时间目标),并承受高昂的技术成本。

 

水平伸缩:分片的成本

 

大多数云数据库的伸缩是通过加大实例的大小来实现的,但这种方法会受到可用最大大小的限制。如果你想要更大的规模或者需要全球规模时该怎么办?

 

有些数据库,如 AWS Aurora,允许扩展到单个实例(RDS)以外,并支持多个实例。但这仅用于读取,并且限制了可处理的事务数量,因为没有扩展写节点的能力。因此,你仍然面临规模的限制。此外,这种单一的写节点配置限制了跨地理区域访问的可用性,因为总是存在写访问的物理延迟。

 

如果你选择对开源数据库(如 PostgreSQL 或 MySQL)进行伸缩,就需要对数据库进行分片。这种方法会带来巨大的成本。首先,你需要修改应用程序,这会带来风险。你还需要配置一个新的实例,并在某个时刻(通常是在半夜)将流量切换到这个新的实例上。这会带来与硬件相关的额外成本,以及它给团队带来的痛苦……这还是最好的情况,如果在这个过程中出了问题,就会导致计划外的停机。此外,分片数据库的管理成本随着每个新分片的增加而呈指数级增长。

 

集成成本

 

你的数据库并不是孤立存在的,它将被集成到 IT 平台的其他部分。你不会在 OLTP 数据库中运行 OLAP,数据仓库的出现是有原因的。因此,数据库与其他工具(如数据仓库)之间的集成就变得非常重要。根据数据库的不同,集成成本可能会很高。你需要使用 Kafka 或某种流式处理吗?你在使用数据湖吗?

 

在购买前评估数据库的隐性成本

 

除了运维成本之外,还有一些难以量化的问题,这些问题构成了云数据库的隐性成本,包括合规成本、竞争风险、供应商锁定的可能性以及吸引人才的能力。评估部署、管理和伸缩传统关系数据库隐性成本最好的方法是使用这个报告:

 

https://www.cockroachlabs.com/guides/do-more-with-less-with-distributed-sql/

 

原文链接:

https://www.cockroachlabs.com/blog/true-cost-cloud-database/


相关阅读:

在今年的数字生态大会上,云原生数据库前进了一大步

共促云原生数据库生态繁荣

国内首份《云数据库选型及满意度调查报告》出炉! | ITPUB 报告(一)

TDSQL云时代,我们需要怎样的数据库?

2023-04-27 11:083098

评论

发布
暂无评论
发现更多内容

解析Redis操作五大数据类型常用命令

华为云开发者联盟

数据库 redis string 数据类型 getset

鲲鹏HCIA认证之初识鲲鹏

桥哥技术之路

鲲鹏

实用机器学习笔记二十:偏差和方差

打工人!

机器学习 深度学习 算法 学习笔记 12月日更

盘点2021 | 技术十年-记录十年技术经历

高性能架构探索

技术人 工作经历 经历分享 盘点2021

腾讯云原生数据库TDSQL-C斩获2021 PostgreSQL中国最佳数据库产品奖

科技热闻

Apache APISIX 社区双周报 | 功能亮点更新进行中

API7.ai 技术团队

云原生 后端 开源社区 api 网关 Apache APISIX

化繁为简--百度智能小程序主数据架构实战总结

百度Geek说

小程序 百度 架构 后端 数据

10 个打造 React.js App 的最佳 UI 框架

编程江湖

前端开发

2021数据技术嘉年华 | OceanBase 技术盛宴ON LINE ,我们不见不散!

OceanBase 数据库

数据库 OceanBase 社区版 技术嘉年华 DTC

(转)大数据开发之Hive中UDTF函数

@零度

大数据 hive

6000 字干货详解:直播聊天室的无限用户优化

融云 RongCloud

高并发 直播 直播聊天室 海量用户

喜提双奖 | 旺链科技彰显综合硬实力!

旺链科技

区块链 产业区块链 供应链

孩子,你为什么要上学?

Tiger

28天写作

升级过log4j,却还没搞懂log4j漏洞的本质?

华为云开发者联盟

Java log4j 漏洞 JNDI rmi

酷炫3D效果在瘦设备上也能实现?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

蓝格赛(中国)用TDengine落地聚合查询场景,效果如何?

TDengine

数据库 tdengine 后端

web技术分享| 白板SDK的几种图形检测算法

anyRTC开发者

前端 音视频 白板 web技术分享 图形检测算法

从 Discord 看未来社交的「超级群」模式

融云 RongCloud

30个类手写Spring核心原理之自定义ORM(下)(7)

Tom弹架构

Java spring 源码

30个类手写Spring核心原理之动态数据源切换(8)

Tom弹架构

Java spring 源码

Linux云计算好学吗?Linux云计算运维学习资料,手把手教你学 条件测试语句和流程控制语句的使用

学神来啦

Linux centos Shell if linux云计算

盘点 2021|不忘初心,扬风起航

小鲍侃java

盘点2021

(转)前端开发之MySQL分区表中的性能BUG

@零度

MySQL 前端

Linux之more命令

入门小站

Linux

【MongoDB学习笔记】-使用 MongoDB 进行 CRUD 操作(上)

恒生LIGHT云社区

数据库 mongodb

给弟弟的信第19封|年轻人要注意养生

大菠萝

28天写作

Ajax+SSM实现客户端开发 实现简单的前后端分离

Bug终结者

Java ajax 前后端分离

JAVA 开发常用工具汇总

编程江湖

java编程

DotNet工具箱之性能监控组件——CLRStats

为自己带盐

dotnet 28天写作 12月日更

在线JSON转Csharp工具

入门小站

工具

「猿桌派」即将开播,聚焦客户端埋点和大数据分析

融云 RongCloud

大数据 程序员 埋点

如何了解云数据库的隐藏费用,计算真实成本_服务革新_InfoQ精选文章