开发者学堂课程【云数据库 RDS MySQL 从入门到高阶:MySQL Serverless 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/996/detail/15105
MySQL Serverless 介绍
内容介绍:
一、什么是 Serverless
二、MySQL Serverless
三、Serverless 最佳实践
一、什么是 Serverless
1. Serverless 的定义
如图:
可以看到,负载模型是一个波形,这个波形有高峰也有低谷。在规划资源的时候,如果要和负载需求相匹配,通常会选择比较大的规格覆盖住峰值,避免业务受损,在更多时候,是无法预测出峰值的,此时规格可能会偏大,这时负载还未达到资源亏损,导致资源浪费,如果规格偏小,就可能出现资源不足导致业务受损。
为了解决这些问题,可以发挥 Serverless 的作用,如图:
可以看到,Serverless 的一个很大的作用是可以让资源的变化随着负载的变化而发生变化,所以用户不需要关注资源使用了多少,Serverless 可以自行进行决策,达到成本推优,同时在资源的变化中,对整个业务进行管理。
Serverless 是无服务运算,需要做到:
(1)资源的解耦和服务化
①计算和存储分开部署收费
②计算无状态且易调度扩缩容
③存储变为独立云服务数据更安全
(2)自动弹性伸缩
①代码运行无需人工指定所需资源
②机器学习算法自动调度资源
③CPU、内存、磁盘按需动态分配
(3)按使用量计费
①计费粒度精确到秒甚至毫秒
②PAY AS YOU GO 按使用量付费
③打破传统 ECS/RDS 的规格计费
2. Serverless 生态发展
以阿里云函数计算为例:
可以看到,开发者编写代码之后,需要把代码上传到函数计算服务,当有客户端或者大量网站也就是有负载之后,弹性计算会把资源作出呈现,满足用户的需求。计算过程中按使用量付费,成为各种资源。
在写代码后,会有很多数据需要存储在数据库,并且数据库也需要做到 Serverless 。
如阿里云的数据库:
只有数据库也做到 Serverless ,才能真正实现在整个软件生命周期内,无需过度关注资源的能力,前端负载的变化可以让后端做出调整,这就是 Serverless 的生态发展
二、MySQL Serverless
1. MySQL Serverless 简介
下图是围绕实例的生长周期的案例图:
可以看到, 这里首先创建了一个实例,进行备份管理、规格变配等管理工作后最终释放,其中规格变配和参数优化贯穿整个生命周期。随着业务的发展,所需要的流量越来越大,与传统形态人工调整规格相比,在 Serverless 形态下,MySQL Serverless 可以自动调度资源(其中 RCU 是资源量单位),因此无需关注资源的使用和上升或下降。
MySQL Serverless 相对于传统模式,有不同的特点:
(1)有状态且核心数据
①有状态
②企业启用最核心的数据资源
③安全性稳定性要求更高
(2)系统结构复杂
①Buffer Pool 内存管理复杂
②参数众多修改配比千变万化
③宿主级资源和 BP 资源多层调度
2. MySQL Serverless 技术方案
(1)MySQL Serverless 技术实现原理
如图:
可以看到,MySQL Serverless 技术实现原理分为以下三个步骤:
①指标探测采集:实例资源指标、实例性能状态
②指标分析:实时预测分析、周期预测分析、参数预测分析、 SQL 预测分析
③决策执行:实例资源调度、实例画像、实例参数优化、实例索引优化
现如今,MySQL Serverless 已经实现跟随负载变化,分配资源的模式,在一些场景下可以做到成本最高节省90%及以上
如图:
可以看到,在峰值调度的资源会更多,而在低谷期调度的资源更合适,避免资源浪费。
(2)MySQL Serverless 的重点突破:
①极致弹性
②按使用量计费
(3)综上,可以看到,MySQL Serverless 现如今已经可以做到:
①实例资源跟随客户负载升高、降低,做秒级弹升和弹降,保障客户业务稳定
②实例弹升弹降过程平滑,客户请求无需中断
③实例的存储资源按照客户使用情况动态扩容
④实例收费粒度细化到秒级粒度
⑤实例打破了规格计费,按照 RCU 的实时使用量来收费
3. MySQL Serverless 未来发展
比较过去、现在和未来的 MySQL Serverless 发展
如图:
①规格售卖
②按小时计费
③提前规划容量
资源弹性和负载需求的曲线基本一致,而且有以下变化:
①无规格售卖
②按使用资源量收费
③按秒粒度计费
④容量动态扩容
在现在的基础上,未来资源弹性和负载需求将匹配的更好,并且基本实现以下功能:
①无规格售卖
②按使用资源量收费
③按秒粒度计费
④容量智能动态扩容
⑤Serverless 社区无缝融合
⑥支持只读副本动态扩展
三、Serverless 最佳实践
1. MySQL Serverless 创建
如图,当用户购买 Serverless 后,可以进行选择
可以看到,用户可以选择自己所希望的资源弹性的区间范围,可以保证用户购买数据库资源后,资源是在一定范围内进行调整的。然后是数据库的存储空间,可以看到,数据库初始是20 GB 的空间,存储空间随使用量自动扩展,最大是32 T。
继续确定当前配置,如图:
通过上述图片,可以发现现在的创建页面与传统页面大致相同,这也是为了吸引传统用户购买的一种手段
2. MySQL Serverless 压测观察
如图:
可以看到,在压测开始之前时,用户的数据库一直保持在0.5 RCU ,有压力之后,瞬间上升到了7 RCU 来承载压力,然后当压力稳定之后, RCU 的值保持稳定的5 RCU 不变,后来,压力上升,RCU 同样上升后保持稳定,再往后也是如此,最后稳定在6.5 RCU 左右不变。即负载发生变化, RCU 秒级做出调整以达到节约最大的成本的目的。













