当前位置:   article > 正文

有意思了!数据库也搞Serverless!

sd服务搞一个serverless版本

1

云数据库

云计算时代,相信很多人都用过云计算的产品,例如云数据库

我们购买云数据库,需要指定固定规格,如2核4G ,然后按规格付费。

这有两个问题,一是规格不好确定,因为系统负载不好确定,到底使用大规格还是小规格呢?

二是如果确定了规格,在运行中发现规格太低/太高,就需要再人工发起扩容缩容请求,很麻烦。

我经常想:如果数据库能按负载状况,自动实现扩容缩容,那该多好!

最近参与了腾讯技术开放日Techoday的线上活动,有个专场讲的是云原生数据库TDSQL-C,听了个开头我就意识到:TDSQL-C已经把这个想法给实现了!

37ea6499513bcfed52b897dbf41f3771.jpeg

7deac79d1981d1a9030677d122429061.jpeg

简单来说,TDSQL-C 能帮我们实现自动的数据库扩容缩容,并且完全按使用量付费,如果你放在那里不用它,完全不收费!

其实这就是云计算中的Serverless的思想:弹性、按使用计费,不需要运维。

使用Serverless产品就像使用水和电一样,打开开关即可使用。

TDSQL-C这个数据库产品也具备了Serverless的能力,它到底是怎么实现的?我又去深入研究了一下它的原理。

2

实现原理

首先,TDSQL-C把计算和存储做了分离,分离以后才可以对计算层做灵活的资源分配(扩容缩容),这是它实现Serverless的基础。

传统的数据库是这样的(以多个数据库做读写分离为例):

cf5dec5ff8a6e7b9ff2a6b23ef0b8e91.png

TDSQL-C把计算和存储分开后,变成了这样:

92f0d6d01292f5358322acd7ba3c4506.png

其次,在数据库架构上,要对计算层进行监控:

48774a72a49242d7ea9cf65ba3abaa00.png

系统不断对计算层进行监控,如果没有请求,就把它暂停,实现了不用不收费。等到请求来了就恢复它,然后根据流量大小动态触发扩容/缩容,程序员完全不用操心细节。

在这种架构下,TDSQL-C就具备了三个非常好的特性:

自动扩缩容、按使用量付费和不用不付费。

3

自动扩缩容

这个特性对于公司来说特别友好,因为流量和负载总是不固定的,比如白天负载稳定,对CPU和内存的使用也相对稳定,到了晚上,需要运行一些慢查询,或者生成报表,对计算力的要求一下子就上来了。

如果我们购买大规格数据库,白天会产生浪费,购买小规格数据库,晚上又不够用,需要很小心地在成本和性能之间平衡,非常烦人。

TDSQL-C很贴心地让我们指定一个CPU和内存概况范围,例如最小规格1核2G,最大规格4核8G,剩下的事情我们就不用管了,它会根据你的算力要求动态扩容缩容。

扩容缩容速度很快,秒级完成,我们几乎感知不到。

但是,我们很容易想到一个问题,数据规格不确定,那怎么收费呢?

4

按使用量收费

答案自然是按使用量收费,具体的做法是每隔5秒采集一次CPU和内存的消耗,然后按照CCU(TDSQL-C Compute Unit)来收费,每小时出一次账单。

这个CCU的计算也很有意思,公式是:

CCU = max(CPU, 内存/2, 最小规格)

举个例子就明白了,例如你购买时指定的规格范围是[1核2G, 4核8G] ,公式中的最小规格为1。

3e3527329193faed6ec8fa0ddafeba60.png

相比大部分云数据库按一小时内最大的规格进行按量计费的方案,可以说是实现了非常精细化的计费方式,真是替我们这些用户省钱了。

还有更贴心的一点,系统实现了以任意单位的资源计费,用户用了 0.4 核那就按 0.4 来收费,而不是强制的“不足一核按一核收费”。

5

不使用不收费

如果我们的数据库在一段时间内没有任何连接,这时候还要收费吗?

对于常规的云数据库来说,购买以后,不管用不用,都是要收费的。

但是TDSQL-C实现了计算和存储的分离,对计算层可以实现自动启停,启动的速度可以达到秒级,那可以做的事情就多了。

如果我们的数据库实例10分钟内没有连接,就把实例暂停,回收计算节点,这时候就不再收费了。

当用户请求来了以后,可以迅速唤醒实例,提供服务。

这个特性对于一些低频访问的网站特别友好,例如个人博客,大部分时间是没人访问的,为啥还要给云数据库付费呢?没人访问就暂停数据库实例,不付费省点儿钱。有人访问了,马上把实例启动,用多少付多少,这实在太爽了。

还有一些公司的测试环境,中午吃饭的时候,晚上睡觉的时候,还有周末是没人用的,为啥还要掏钱呢?自动暂停,省点儿费用多好。

6

总结

TDSQL-C给数据库也赋予了Serverless的能力,可以像函数计算那样,自动扩缩容,多用多收费,少用少收费,不用不收费,具备了极高的弹性和精准的计费能力,代表了云数据库的发展方向。

我强烈建议大家有机会去尝试一下TDSQL-C,感受下这种低成本、非常灵活的云数据库服务。

7

写在最后

我参加的这次腾讯Techo Day,活动非常多,除了“像自来水一样使用”的云原生数据库,活动还分享了腾讯的Lighthouse、Serverless、微搭之类的明星技术原理、适用场景跟使用方式。

从灵活易用的TDSQL-C,开箱即用的Lighthouse,低门槛的AI开发...... 我能感受到腾讯云的理念:给开发者提供“化繁为简,轻而易用”的工具和产品,降低开发门槛,提高研发效率,让云服务普惠更多的人。

最后也整理成《腾讯云轻量级工具指南》的课件材料,有需要的同学可以点击“阅读原文” 或长按下方二维码下载,我觉得了解下各个厂商的技术路线,还是对工作很有帮助的,毕竟大的开发平台就这么几个~

b661b3f33dad41ba63fb290d2073aea3.jpeg

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/369640
推荐阅读
相关标签
  

闽ICP备14008679号