更新时间:2024-11-06 GMT+08:00

什么是Serverless实例

背景

在现代企业级IT系统中,数据库的稳定性和可靠性是至关重要的。如果数据库不能稳定运行,那么整个系统的运行也将受到影响。为了保障数据库的稳定运行,用户通常会保守地进行配置,包括但不限于计算资源、内存、存储等多种资源和参数的设置,通过冗余的资源来保障在业务高峰时数据库的正常运行。

然而,在业务波谷期,冗余配置的数据库资源会大量闲置,成本空转,而在面对预期外的激增业务压力时,即使已经保守配置,数据库资源也有可能出现短时间的不足情况,系统整体有受损风险。

除了以上典型的企业级用户,云上还存在大量低频小规格的数据库使用场景,如研发测试环境、小程序云开发、学校的实验教学环境等。这些场景中,用户往往对数据库规格要求不高,但也有一定业务连续性要求,不能通过不断创、删按需实例解决,即使购买较低配置的包周期实例,完全无负载的时间段稍长,仍显得成本浪费问题严重。

为了解决上述问题,GaussDB(for MySQL)推出了Serverless实例。Serverless实例可以根据客户业务负载动态调整数据库资源,实现按需付费,从而帮助企业降低成本,提高效率。同时,Serverless也能降低中小企业的使用门槛,使更多的企业能够使用云数据库。

在业务波动较大的场景下,普通实例和Serverless实例的资源使用和规格变化情况如下图:

图1 普通实例和Serverless实例的资源使用和规格变化情况

由上图可以看到,在业务波动较大时:

  • 普通实例:在波谷期浪费的资源较多,在高峰期资源不足,业务容易受损。
  • Serverless实例:规格随业务需求量自动调整,总体浪费的资源很少。在高峰期也能完全满足业务需求,保证业务不受损,提高了系统的稳定性。

工作原理

GaussDB(for MySQL) Serverless是基于共享存储,采用一写多读架构的产品新形态。Serverless提供了随系统业务负载动态弹性伸缩的能力,实例各节点可实现秒级纵向CPU/内存扩缩能力以及横向只读节点扩缩能力,面向业务峰谷时对计算能力进行快速且独立的扩缩要求,做到快速响应业务变化的同时,合理优化使用成本,进一步助力企业降本增效。

图2 Serverless架构图
  • 主节点和只读节点全部为Serverless形态,随业务负载变化而弹性扩缩,并采用分布式共享存储。
  • Serverless节点的计费单位是TCU,1 TCUs的算力配置约等于1U2GB的实例规格。每当主节点或只读节点扩展或收缩时,节点的TCU会随之增加或减少。
  • 创建Serverless实例时,指定计算单元(TCU)的弹性范围,不需要配置具体规格。通过选定计算单元的最大值和最小值,Serverless实例将根据您的CPU使用率及内存使用情况在该范围内进行弹性伸缩。

    纵向伸缩:指节点的性能(CPU和内存的规格)发生变化。

    通过云监控服务监控Serverless实例的CPU使用率、内存使用率,当满足如下条件中的任何一种,就会自动触发Serverless纵向扩容。

    • “CPU使用率”大于80%,持续5秒,距离上次扩容间隔大于等于5秒。
    • “内存使用率”大于80%,持续5秒,距离上次扩容间隔大于等于5秒。
    • “CPU使用率”大于60%,持续20秒,距离上次扩容间隔大于等于10秒。

    当满足如下条件,就会自动触发Serverless纵向缩容。

    “CPU使用率”小于30%,且持续15秒,距离上次缩容间隔大于等于15秒。

    横向伸缩:指只读节点的数量发生变化。

    当算力已经扩容到设定的上限,CPU使用率或内存使用率仍然满足算力扩容的条件,则会触发只读节点数量扩展。

    当算力已经缩容到设定的下限,CPU使用率或内存使用率仍然满足算力缩容的条件,则会触发只读节点数量缩减。

计费说明

请参见Serverless计费说明

核心优势

  • 更低的成本:GaussDB(for MySQL) Serverless不依赖其他的基础设施和相关服务,即买即用并可以提供稳定和高效的数据存取服务。实例使用期间只需要为占用的资源按使用量付费。
  • 更大的存储空间:存储空间最大可高达32000GB,根据实例数据量自动扩容,可以有效避免存储资源不足对业务造成影响。
  • 计算资源自动弹性扩缩容:用户读取和写入需要的计算资源可弹性伸缩,不需要手动扩缩容,极大减少了运维成本和系统风险。
  • 全面托管和免运维:规格扩缩容、存储空间自动扩容、监控告警、智能运维等所有运维工作由华为云专业团队完成,用户无感知,业务无影响,服务持续可用,真正免运维。

适用场景

  • 数据库使用频率不高,如企业测试环境、个人开发者等场景。
  • 业务有间歇性定时任务,如数据统计归档、学校教学和科研等场景。
  • 业务有不易预测的波动,如签到打卡、边缘计算等不确定负载的场景。
  • 希望实现数据库的免运维或全托管的用户。
  • 希望在业务低峰期降低数据库使用成本的用户。