MySQL Serverless 介绍 | 学习笔记

简介: 快速学习 MySQL Serverless 介绍,介绍了 MySQL Serverless 介绍系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【云数据库 RDS MySQL 从入门到高阶MySQL Serverless 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/996/detail/15105


MySQL Serverless 介绍


内容介绍:

一、什么是 Serverless

二、MySQL Serverless

三、Serverless 最佳实践


一、什么是 Serverless

1. Serverless 的定义

如图:

image.png

可以看到,负载模型是一个波形,这个波形有高峰也有低谷。在规划资源的时候,如果要和负载需求相匹配,通常会选择比较大的规格覆盖住峰值,避免业务受损,在更多时候,是无法预测出峰值的,此时规格可能会偏大,这时负载还未达到资源亏损,导致资源浪费,如果规格偏小,就可能出现资源不足导致业务受损。

为了解决这些问题,可以发挥 Serverless 的作用,如图:

image.png

可以看到,Serverless 的一个很大的作用是可以让资源的变化随着负载的变化而发生变化,所以用户不需要关注资源使用了多少,Serverless 可以自行进行决策,达到成本推优,同时在资源的变化中,对整个业务进行管理。

Serverless 是无服务运算,需要做到:

(1)资源的解耦和服务化

①计算和存储分开部署收费

②计算无状态且易调度扩缩容

③存储变为独立云服务数据更安全

(2)自动弹性伸缩

①代码运行无需人工指定所需资源

②机器学习算法自动调度资源

③CPU、内存、磁盘按需动态分配

(3)按使用量计费

①计费粒度精确到秒甚至毫秒

②PAY AS YOU GO 按使用量付费

③打破传统 ECS/RDS 的规格计费

2. Serverless 生态发展

以阿里云函数计算为例:

image.png

可以看到,开发者编写代码之后,需要把代码上传到函数计算服务,当有客户端或者大量网站也就是有负载之后,弹性计算会把资源作出呈现,满足用户的需求。计算过程中按使用量付费,成为各种资源。

在写代码后,会有很多数据需要存储在数据库,并且数据库也需要做到 Serverless 。

如阿里云的数据库:

image.png

只有数据库也做到 Serverless ,才能真正实现在整个软件生命周期内,无需过度关注资源的能力,前端负载的变化可以让后端做出调整,这就是 Serverless 的生态发展


二、MySQL Serverless

1. MySQL Serverless 简介

下图是围绕实例的生长周期的案例图:

image.png

可以看到, 这里首先创建了一个实例,进行备份管理、规格变配等管理工作后最终释放,其中规格变配和参数优化贯穿整个生命周期。随着业务的发展,所需要的流量越来越大,与传统形态人工调整规格相比,在 Serverless  形态下,MySQL Serverless 可以自动调度资源(其中 RCU 是资源量单位),因此无需关注资源的使用和上升或下降。

MySQL Serverless 相对于传统模式,有不同的特点:

(1)有状态且核心数据

①有状态

②企业启用最核心的数据资源

③安全性稳定性要求更高

(2)系统结构复杂

①Buffer Pool 内存管理复杂

②参数众多修改配比千变万化

③宿主级资源和 BP 资源多层调度

2. MySQL Serverless 技术方案

(1)MySQL Serverless 技术实现原理

如图:

image.png

可以看到,MySQL Serverless 技术实现原理分为以下三个步骤:

①指标探测采集:实例资源指标、实例性能状态

②指标分析:实时预测分析、周期预测分析、参数预测分析、 SQL 预测分析

③决策执行:实例资源调度、实例画像、实例参数优化、实例索引优化

现如今,MySQL Serverless 已经实现跟随负载变化,分配资源的模式,在一些场景下可以做到成本最高节省90%及以上

如图:

image.png

可以看到,在峰值调度的资源会更多,而在低谷期调度的资源更合适,避免资源浪费。

(2)MySQL Serverless 的重点突破:

①极致弹性

②按使用量计费

(3)综上,可以看到,MySQL Serverless 现如今已经可以做到:

①实例资源跟随客户负载升高、降低,做秒级弹升和弹降,保障客户业务稳定

②实例弹升弹降过程平滑,客户请求无需中断

③实例的存储资源按照客户使用情况动态扩容

④实例收费粒度细化到秒级粒度

⑤实例打破了规格计费,按照 RCU 的实时使用量来收费

3. MySQL Serverless 未来发展

比较过去、现在和未来的 MySQL Serverless 发展

如图:

image.png

①规格售卖

②按小时计费

③提前规划容量

image.png

资源弹性和负载需求的曲线基本一致,而且有以下变化:

①无规格售卖

②按使用资源量收费

③按秒粒度计费

④容量动态扩容

image.png

在现在的基础上,未来资源弹性和负载需求将匹配的更好,并且基本实现以下功能:

①无规格售卖

②按使用资源量收费

③按秒粒度计费

④容量智能动态扩容

⑤Serverless 社区无缝融合

⑥支持只读副本动态扩展


三、Serverless 最佳实践

1. MySQL Serverless 创建

如图,当用户购买 Serverless 后,可以进行选择

image.png

可以看到,用户可以选择自己所希望的资源弹性的区间范围,可以保证用户购买数据库资源后,资源是在一定范围内进行调整的。然后是数据库的存储空间,可以看到,数据库初始是20 GB 的空间,存储空间随使用量自动扩展,最大是32 T。

继续确定当前配置,如图:

image.png

 image.png

通过上述图片,可以发现现在的创建页面与传统页面大致相同,这也是为了吸引传统用户购买的一种手段

2. MySQL Serverless 压测观察

如图:

image.png

可以看到,在压测开始之前时,用户的数据库一直保持在0.5 RCU ,有压力之后,瞬间上升到了7 RCU 来承载压力,然后当压力稳定之后, RCU 的值保持稳定的5 RCU 不变,后来,压力上升,RCU 同样上升后保持稳定,再往后也是如此,最后稳定在6.5 RCU 左右不变。即负载发生变化, RCU 秒级做出调整以达到节约最大的成本的目的。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
11月前
|
存储 关系型数据库 MySQL
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
734 81
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
359 6
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
408 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
243 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
206 1
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
203 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
600 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
安全 关系型数据库 MySQL
揭秘:如何在无影的Serverless世界中,悄无声息地操控MySQL数据库!
【8月更文挑战第8天】在云计算领域,Serverless 枟能凭借其高效与弹性特性脱颖而出。本文采用问答形式解析函数计算环境中 MySQL 数据库的安全高效访问方法。介绍了如何利用数据库插件或 SDK 连接 MySQL,并提供了一个使用 Python 和 `pymysql` 在阿里云函数计算中连接 MySQL 的示例代码片段。同时强调了通过环境变量或密钥管理服务安全处理数据库凭证的重要性。随着 Serverless 技术的发展,数据库操作将更加简便。
280 7
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
131 6
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
440 4

热门文章

最新文章

相关产品

  • 函数计算
  • 推荐镜像

    更多