文档

RDS MySQL Serverless正式上线

更新时间:

RDS MySQL Serverless实例提供了CPU、内存的实时弹性能力,构建云盘架构下的RDS MySQL产品新形态。RDS MySQL Serverless正式版已于2022年08月15日发布上线。

背景信息

Serverless计算模式一直是各大云厂商追求的目标。Serverless概念以及FaaS+BaaS的设计思想的提出也极大地影响了近几年云计算的发展。随着阿里云的FC、AWS的Lambda以及国内各云厂商FaaS模式的不断发展,业内对数据库模式的BaaS需求也越发强烈。

Serverless数据库的核心是解决实例CPU、内存和磁盘等资源平滑升降的问题,使得数据库实例可以根据负载情况按需分配资源。这种方式可以让用户获得最合理的IT资源,从而优化用户价值。

image..png

为了更好地服务用户,阿里云RDS MySQL Serverless在设计开发中始终坚持以下几个目标:

  • 提升云资源的利用率,平峰填谷带来最大化资源利用,为用户提供更高性价比的服务。

  • 构建极致的弹性能力,自动应对流量峰值,提升DBA等运维同学的幸福感。

  • 借助AliSQL的定制能力,结合Serverless场景进行深度优化,保证弹性过程的稳定性。

  • 提供秒级计费和丰富的产品功能,让按需使用和按量付费更加灵活便捷。

  • 实例资源隔离分配,避免争抢,让用户使用更加稳定可靠。

Serverless简介

阿里云RDS MySQL数据库一直致力于研究和探索资源池化、监控、弹性和计费等方面的能力。通过不断提升监控、弹性、计费、调参和诊断等能力,实现了秒级监控、秒级弹性、秒级计费、内核无感调参和智能诊断等功能,从而产生了Serverless数据库这种形态。Serverless数据库既是用户所需,也是自然而然的发展结果。

RDS MySQL Serverless采用了云原生的技术架构,分为接入层、路由层、计算层、存储层四个层次,充分利用云原生基础设施的弹性能力,实现了资源解耦和分层弹性。同时,RDS MySQL Serverless还辅以智能决策能力、统一资源调度能力等成熟的周边工具能力,将Serverless能力做到更加稳定和顺滑。

image

作为阿里云首个商业化的Serverless数据库,RDS Serverless数据库在数据库Serverless领域引领着创新的潮流。在本次商业化中,RDS MySQL Serverless引入了若干理念的变化:

  • 首次引入了归一化的资源度量单位RCU,将算力进行了统一化,针对底层不同的硬件类型进行了优化。

  • 首次引入了秒级计费的能力,将数据库的计费力度精细到秒的级别,更好地满足了用户的需求。

  • 首次引入了Data API的概念,让应用可以像访问RESTful接口一样访问数据库,更好地与函数计算集成。

Serverless特性

RDS MySQL Serverless产品于2022年08月15日正式对外发布MySQL 8.0基础系列的商业售卖,并在以下几个方面进行了深入改造和优化,以提供给用户更为稳定和高性价比的服务。

本地秒级弹性

基于云原生能力,RDS MySQL Serverless数据库可以实现弹性调度,最快可在3~5秒内进行资源弹性调整。当用户实例负载发生变化时,系统能够快速感知并及时调整资源,以确保实例的负载始终在合理的范围内。这种弹性调度机制不仅能够提高实例的弹性和可用性,还能够有效地应对用户需求变化和数据负载波动等情况,为用户提供更加优质和稳定的服务。

image

在上述结构示意图中,弹性调度系统被设计成了4个阶段,共同实现了实例的快速弹性调整:

  1. 监控感知

    该模块通过秒级监控实例的综合状态,包括计算、存储、网络以及MySQL的核心指标,并将核心数据上报给控制器,以便后续的决策控制和资源调度。

  2. 决策控制

    该模块会根据实例的实时状态进行综合判断,找出实例的性能瓶颈,并给出资源弹升建议,为后续资源调度做出决策。

  3. 资源调度

    该模块负责完成资源的再分配,确保资源的合理使用,避免实例之间的互相争抢,从而提高实例的弹性和可用性。

  4. 执行控制

    最终控制器通过完成实例所需内存和相应参数的修改,确保实例资源的最佳配比。

通过以上一系列任务的执行和正反馈,系统不断动态调整,使得实例平稳运行在合理的资源区间,为用户提供了更加高效、稳定和可靠的服务。

存储自动扩容

RDS MySQL Serverless在实际应用中发现很多实例因为扩容不及时而导致锁定,给业务带来了不必要的影响。因此,在设计时考虑提供云盘容量自动扩容功能,通过实时探测磁盘水位,每5分钟进行巡检并按需执行扩容,最大限度地避免实例因为空间不足而锁定(最大扩容容量为32TB)。这一功能极大地提高了RDS MySQL Serverless数据库的弹性和可用性,为用户的业务提供了更为可靠和稳定的支持。

实例自动启停

RDS MySQL Serverless支持实例的自动启停功能,这项功能为研发实例、测试实例或周期无负载的实例提供了更为极致的成本优化。当用户不需要访问数据库时,该功能能够让实例进入静默状态,从而进一步节省资源成本。通过实现自动启停,RDS MySQL Serverless数据库能够更加智能地管理资源,使得资源的使用更加高效和灵活,为用户提供了更为经济和便捷的服务。

image

为了保障实例启停体验,RDS MySQL Serverless数据库在以下几个方面进行了深入改造和优化:

  1. AliSQL内核启动效率优化

    通过阿里云AliSQL数据库内核团队的不断优化,将实例内核本身的启动时间压缩到10秒,极大地提高了实例启动的效率和速度。

  2. Router优化改造

    通过对Router的深度改造,RDS MySQL Serverless实例在睡眠期间也不会宕机。当MySQL处于静默状态时,一旦有请求访问,Router会暂存请求并等待MySQL实例醒来后再将请求发送给实例,保证系统一直在线,随时响应用户的请求,提高实例的可用性和效率。

  3. 云原生资源调度优化

    为保障实例资源分配和加载的效率,RDS MySQL Serverless采用了分布式资源调度能力,并不断优化执行效率,极大地降低了实例启动管控时间。

  4. 云原生容器下载加速优化

    结合阿里云云原生团队的容器加速能力,RDS MySQL Serverless可以做到实例启动按需加载,完美解决了容器下载效率问题,提高了实例启动的速度和效率。

秒级计费能力

image..png

通过架构升级和优化,RDS MySQL Serverless数据库实现了秒级计费:

  • 正常运行的实例,计费系统会记录实例秒级RCU资源量变化,实现精确计费。

  • 当您的实例进入自动暂停阶段时,计费系统只会计算您的存储云盘费用,以节省费用。

  • 当您的实例恢复启动状态后,计费系统会重新按照资源RCU进行秒级计费。

生态接入能力

RDS MySQL Serverless数据库通过HTTP请求直接访问数据库,降低了传统数据库的使用门槛。相比通过JDBC/ODBC进行CRUD等操作,对程序员的要求更低。

RDS MySQL Serverless数据库还引入了RDS自有的Secret Manager系统来安全地保存您的数据库访问凭证(用户名和密码),并通过ARN标识符确认您对Serverless数据库的访问权限。我们为用户提供RESTful API、SDK集成等多种方式,以灵活地执行SQL语句并与数据库进行交互。用户示意图如下:

image

总结

RDS MySQL Serverless现已推出基础系列和高可用系列。高可用系列具备企业级容灾切换能力,为用户提供更便捷、高效和稳定的数据库服务。如何快速上手RDS MySQL Serverless,请参见创建Serverless实例

  • 本页导读 (1)