【实操系列】 AnalyticDB PostgreSQL发布实例计划管理功能,实现资源分时弹性&分时启停

简介: 简介: 本文将对AnalyticDB PostgreSQL产品的计划任务管理功能以及其背后的实现机制和最佳实践做详细介绍。

背景

云原生数仓AnalyticDB PostgreSQL在2022年8月份对外发布了手动启停和秒级计费功能,在实例暂停期间计算资源免费,可以很好地帮助用户节约成本。在同年9月份,对外公测了计划管理功能,让用户由原来的“手动挡”切换到“自动挡”,同时,提供了更加丰富的资源弹性能力,支持计划启停和计算节点扩缩容,方便用户基于时间维度来规划实例的资源使用情况,进一步节约成本。


实现方案

整体架构

基于手动启停的技术框架, 计划任务在执行层增加了计划任务管理模块,同时引入了定时任务调度器来定时执行计划任务。


计划任务管理

计划任务模型

指定时间计划

指定时间执行计划任务(启动,暂停,扩容,缩容),适用于突发事件,比如想临时跑个批量任务,临时扩容,跑完后立即缩容,合理规划资源使用量。

周期执行计划

按照固定的周期执行任务(启动,暂停,扩容,缩容),适用于有规律的业务,比如离线批跑业务,每天凌晨批量执行期间扩容计算资源,跑完后再减少计算资源。


计划任务调度

计划任务和实例进行关联,一个实例可以创建多个计划任务。定时任务调度器每1min调用一次业务控制器的执行任务接口,业务控制器查询所有待执行的计划任务,并采用异异步线程池的方式来执行具体的计划任务。考虑到定时任务调度器的调度周期,理论上任务执行时间最大会有1分钟的延迟。

计划任务状态机

计划任务主要有以下几种状态,其状态转换如下图所示:

  • pending: 计划的初始状态,等待被调度执行
  • running: 计划执行中
  • finished:指定时间计划执行成功会进入到该状态,表示任务执行成功执行完成
  • success:周期任务本周期执行成功
  • failure: 任务执行失败,等待重试
  • discard:失败重试达到一定的阈值,表示计划执行失败,不再重试
  • cancel: 计划被暂停
  • deleted:计划被删除


计划任务带来的挑战

计划任务能够让用户在时间维度规划资源使用情况,在业务低峰时自动缩容,甚至暂停实例,在业务高峰时自动启动或者扩容计算资源,最大程度上节省用户成本。同时,计划任务对产品的自动化运维带来了更高的挑战:

  1. 计划任务要准时
  2. 计划任务成功率要高
  3. 产品成本不能增加


如何保证计划按时执行

为了保证计划任务能够按时执行,我们主要从定时任务调度器和监控告警两个方面来考虑:

  1. 定时任务调度器的执行逻辑足够简单,保证不会因为额外逻辑导致调度延迟;同时定时框架本身提供了任务执行失败或者延迟的告警;
  2. 完善计划任务监控告警,除了在计划管理模块中增加任务执行延迟的告警,还需要提供额外的巡检模块,定时对待执行的任务进行检测,一旦发现计划任务延迟大于一定阈值,则进行告警;


如何保证计划成功率

计划任务分为两类,第一类不依赖底层资源,比如暂停,缩容,这类任务主要和执行时的运行环境有关,失败的概率相对小一点;即使失败了,只要在可控的时间范围内处理好,对用户的影响也是可控的。但是,对于启动和扩容类任务的成功率,除了依赖当时运行时环境有关,还和底层的资源池水位有关。这类任务如果执行不及时,或者执行失败将会对用户的业务产生影响,容易引发生产故障,所以如何保障这类任务的成功率,是我们首要考虑的问题。


adbpg serverless实例底层采用资源池的模式部署,可以提升实例的生产和弹性速度,实现秒级扩缩容;不过,资源池需要维护一定的资源buffer,如果资源售卖率上不去,会增加业务成本。对于计划类任务,如果实例暂停或者缩容,资源不释放,是可以保证实例在启动或扩容时候的资源,但这无疑会增加产品的成本。如果资源释放了,如何保证实例在启动或扩容一定有资源? 我们采用采用冷热分池的资源池模式,热池里面存放可调度的资源,热池不用维护资源buffer;冷池存放预装好业务组件的ecs,停机存放,计算资源不收费,仅需要承担系统盘的费用,在热池资源不足时,冷池可以在业务无感知的情况下弹升到热池。冷热资源池模式具体的实现原理如下:

  • 自动扩缩容控制器会每5分钟为一个点,预测下一个点的资源售卖量,并主动维持热池的资源总量在预测值的水平
  • 资源调度器在进行资源评估时,如果当前可调度的节点无法满足资源评估,需要再评估一次冷池的资源,仅评估ecs规格是否可以新购(同单租户的资源评估逻辑),冷池资源可以满足新购的需求时,返回资源评估成功
  • 资源调度器在收到实例创建请求时,调在热池进行调度,如果资源不足,通知cluster-autoscaler缺少的资源总量
  • 自动扩缩容控制器在收到弹升事件后,需要把资源量转换成ECS节点数,并执行冷池扩容到热池的流程
  • 业务层在实例创建失败时会自动重试,只要在重试间隔内冷池资源能够弹升成功,那实例最终会创建成功,业务无感知。


最佳实践

用户在购买一个Serverless实例后,可根据以下操作完成对计划任务的创建,并可在事件中心查看计划任务的执行记录;

提示: 目前Serverless 仅有按量付费支持计划任务;

点击购买Serverless实例 按量付费试用


创建指定时间计划

登陆云原生数仓AnalyticDB PostgreSQL产品控制台,进入实例详情页面,选择计划管理,点击击"创建计划任务":

需要注意的是,这里指定的运行时间是UTC时间,需要根据当地时间进行换算。在计划任务创建成功后,可以计划列表页面查看计划的详细信息,包括计划状态,计划执行时间等。

创建周期执行计划

登陆云原生数仓AnalyticDB PostgreSQL产品控制台,进入实例详情页面,选择计划管理,点击击"创建计划任务":

需要注意的是,cron表达式是按照UTC时间来计算,需要根据当地时间进行换算。在计划任务创建成功后,可以计划列表页面查看计划的详细信息,包括计划状态,计划执行时间等。

编辑计划任务

对于已经创建的计划任务可以进行编辑,修改计划任务的名字,描述,以及运行时间。

禁用计划任务

如果想暂时不想执行计划任务,可以临时禁用。禁用后,计划任务状态变成已禁用,计划任务不再执行

启用计划任务

对于禁用的计划,在想用的还可以恢复

删除计划任务

如果不再想执行计划,可以将计划任务删除。

删除计划任务后,在计划列表中将无法看到。

查看时间变更记录

计划任务的操作会在通知类事件中展示,方便对计划任务的变更历史进行追溯。同时,计划任务的执行结果也会在通知类事件中展示。



结束语

降本增效一直是客户和我们共同的目标,从手动启停,秒级计费,再到计划任务,我们不断打磨产品的能力,力求给用户提供性价比更高,更易用的云原生数仓产品。

相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
263375 0
|
10月前
|
人工智能 DataWorks 大数据
大数据AI一体化开发再加速:DataWorks 支持GPU类型资源
大数据开发治理平台 DataWorks 的Serverless资源组支持GPU资源类型,以免运维、按需付费、弹性伸缩的Serverless架构,将大数据处理与AI开发能力无缝融合。面向大数据&AI协同开发场景,DataWorks提供了交互式开发和分析工具Notebook。开发者在创建个人开发环境时,可以选择GPU类型的资源作为Notebook运行环境,以支持进行高性能的计算工作。本教程将基于开源多模态大模型Qwen2-VL-2B-Instruct,介绍如何使用 DataWorks Notebook及LLaMA Factory训练框架完成文旅领域大模型的构建。
679 24
|
11月前
|
SQL 人工智能 关系型数据库
PolarDB-PG AI最佳实践 2 :PolarDB AI X EAS实现自定义库内模型推理最佳实践
PolarDB通过POLAR_AI插件支持使用SQL调用AI/ML模型,无需专业AI知识或额外部署环境。结合阿里云EAS在线模型服务,可轻松部署自定义模型,在SQL中实现如文本翻译等功能。
|
人工智能 搜索推荐 API
Perplexica:开源 AI 搜索引擎,Perplexity AI 的开源替代品,支持多种搜索模式、实时信息更新
Perplexica 是一款开源的 AI 驱动搜索引擎,支持多种搜索模式和实时信息更新,适用于个人、学术和企业等不同场景。
1227 6
Perplexica:开源 AI 搜索引擎,Perplexity AI 的开源替代品,支持多种搜索模式、实时信息更新
|
存储 机器学习/深度学习 应用服务中间件
阿里云倚天云服务器实例:计算型c8y、通用型g8y、内存型r8y实例介绍
阿里云倚天云服务器是基于阿里云自研的倚天710 ARM架构CPU打造的高性能计算产品系列,它依托先进的第四代神龙架构,旨在为用户提供稳定可预期的超高效能体验。倚天云服务器在存储、网络性能及计算稳定性方面实现了显著提升,主要得益于其芯片级的快速路径加速技术。本文将深度解析阿里云倚天云服务器的计算型c8y、通用型g8y、内存型r8y实例,探讨其优势及适用场景,以供选择参考。
|
运维 Kubernetes Docker
微服务的成本效益分析
【8月更文第29天】随着微服务架构的流行,越来越多的企业开始考虑采用这一架构模式来构建他们的应用程序和服务。然而,迁移到微服务并非没有代价。本文旨在评估采用微服务架构所带来的成本增加与收益,并探讨如何优化资源使用,以最大化成本效益比。
1010 1
|
SQL 分布式计算 数据挖掘
阿里云MaxCompute携手华大基因打造精准医疗应用云平台,十万基因组计算成本降低至1000美金以内
华大基因是中国最领先的基因科技公司,华大基因为消除人类病痛、经济危机、国家灾难、濒危动物保护、缩小贫富差距等方面提供分子遗传层面的技术支持。让我们结合maxcompute的技术特点,看看如何助力华大基因。
2632 13
|
DataWorks
DataWorks售前咨询
DataWorks售前咨询
14484 8
DataWorks售前咨询
|
关系型数据库 MySQL Linux
在Linux系统上实现高效安装与部署环境的全方位指南
在Linux系统上实现高效安装与部署环境的全方位指南
961 2
|
存储 大数据 关系型数据库
从 ClickHouse 到阿里云数据库 SelectDB 内核 Apache Doris:快成物流的数智化货运应用实践
目前已经部署在 2 套生产集群,存储数据总量达百亿规模,覆盖实时数仓、BI 多维分析、用户画像、货运轨迹信息系统等业务场景。
611 0