嘉宾 | 郑大禹 整理 | ClaireWang
出品 | CSDN云原生
2022年5月17日,在CSDN云原生系列在线峰会第5期"DevOps峰会"上,阿里云弹性技术专家郑大禹对构建阿里云产品的技术进行了解密,并分享了在构建运维编排产品中的云上实践。
运维编排服务(Operation Orchestration Service,简称OOS)是阿里云的免费的云上自动化运维平台,提供运维任务的管理和执行功能。
简单来说,OOS就是通过模板编排的方式,将ECS、RDS等基础云产品所提供的原子能力组合成用户的实际运维场景。
为了实现各类产品能力,OOS被划分为4个部分,分别是:API接入层、工作流引擎、中间件、应用支撑服务。
-
API接入层:负责运维任务的输入,健全流控和运维任务参数的校验工作。
-
工作流引擎:承担大批量的运维任务执行,负责模板任务的分解、原子API的编排执行并提供并发处理、错误处理等功能。API接入层和工作流引擎通过MS消息队列来完成通信工作。
-
中间件:如数据库缓存、消息队列等,中间件周围构建了许多监控以及运维方案。
-
应用支撑服务:包括线上运维监控、应用稳定性监控及业务报表等。
适用于OOS的产品架构一般具有以下四类特点:
-
云产品故障容忍较低
-
业务存在明显的高峰和低谷
-
产品的稳定性要求高
-
完全构建在阿里云公有云平台上,最大化利用云上技术红利和最佳实践
云上应用构建三大挑战
针对前面所提到的运维编排服务的特点,我们也遇到了一些挑战。
如何自动化管理云资源——多地域大规模云资源管理
多地域大规模云资源部署和管理是一个非常大的挑战。多地域资源的初始化、应用的部署升级、应用配置的变更本身就是一个比较繁琐的过程。如果变更过程中遗漏了某些地域,会造成应用的故障。
而OOS服务又由多个应用组成,且每个部分的管理需求也不一样,这使得如何管理成为一个挑战。比如API接入层对应用的可用性要求比较高,而工作流引擎部分需要应用有比较好的弹性,应用支撑服务对可靠性要求及在线服务要求可能又会比较低,这些都需要单独配置。
如何构建云上弹性服务——应对大流量及突发流量
随着编排服务的用户越来越多,执行的任务越来越多,这要求应用具有更好的弹性,从而能够应对不断发展的大流量和突发流量。
如何提升服务的可靠性——及时发现线上问题
因为应用稳定性要求比较高,所以我们需要尽力提高服务的可靠性,及时发现和处理线上出现的潜在问题。比如一个任务失败了,用户会在一分钟之内感受到,如果此时我们的应用能够在线上10秒钟内发现执行异常,并且通过重试或者补偿机制来完成此任务,这样就能使服务的可靠性得到大幅提升。因此如何及时发现线上的问题也是一个需要解决的关键点。
下面针对这三大挑战,分享一下我们的实战经验和解决之道。
自动化管理云资源
多地域大