阿里巴巴DevOps实践指南(二十三)| 编排运维

简介: 面向编排的运维是指用户(PaaS 服务以及开发、运维、运营等角色)根据实际业务需要,对多个原子组件通过简单编排的方式进行灵活装配,构造出不同的业务流程以便完成一个完整的运维需求。运维编排可以帮助我们更好地规范、管理和执行自动化运维操作,以模板的方式定义所需要进行的操作,然后再通过系统运行,从而提高整体运维操作的效率、增强运维操作的安全性,并避免人工运维的错误。

image.png

编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十年DevOps实践经验。

阿里巴巴应用运维平台已经发展了 6 年有余,支撑了公司绝大部分应用的上线部署、扩缩容、资源管理以及各种运维变更操作,并逐渐沉淀出一套丰富且稳定的运维原子服务。为了最大化这些原子服务的价值并打造应用运维平台的中台能力,我们提出了一种面向编排的运维解决方案。

面向编排的运维是指用户(PaaS 服务以及开发、运维、运营等角色)根据实际业务需要,对多个原子组件通过简单编排的方式进行灵活装配,构造出不同的业务流程以便完成一个完整的运维需求。运维编排可以帮助我们更好地规范、管理和执行自动化运维操作,以模板的方式定义所需要进行的操作,然后再通过系统运行,从而提高整体运维操作的效率、增强运维操作的安全性,并避免人工运维的错误。

主要痛点

在应用运维领域,大部分的做法都是基于工作流以及工单管理来实现对应的运维变更操作,而传统的运维工作流在维护成本及可扩展性上都存在一定的不足,缺乏有效的流程生命周期管理手段。

这些问题可以归结为以下三类:

  • 随着业务的不断发展和业务场景的愈发丰富,运维业务自身也变得越来越复杂,经常会出现一些非通用的个性化需求,比如在扩容流程中新增一个第三方数据同步的步骤,或者针对同一变更类型,不同环境需要执行不同的运维流程。这些需求导致平台实现成本以及维护成本越来越大。
  • 依赖的底层流程引擎在运维领域的支持有限,组件编排和流程管控等能力不易进行扩展,同时在规模化场景下,性能、稳定性以及安全性等方面也很难得到有效保证。
  • 传统运维平台不具备统一且标准化的集成与被集成能力,难以赋能其他运维 PaaS 产品,中台能力欠缺,价值渗透有限,同时开发或运维人员缺乏设计和管理定制化运维操作的手段。

核心理念

运维编排的核心理念是服务组件化、运维编排化。我们把运维原子服务按照平台规范注册为组件,并托管到统一的组件池中进行维护和管理,用户按需从组件池中选择对应组件,并采用合适的编排方式装配成运维业务流程,最后触发执行即可完成期望的运维变更任务。运维编排的最终目的是打造一款高效、稳定、安全的运维业务构建平台。

技术思路

业务架构

image.png

架构一共有五层,从下到上,第一层是流程引擎以及容器引擎,作为原子服务的执行者;第二层用于定义各种不同的运维原子服务,是原子服务的定义者;第三层则主要用于注册原子服务为组件,作为组件的注册者;第四层是提供核心的编排能力,作为流程的编排者;第五层主要提供场景化编排能力,针对不同的场景有一些额外的特性支持。

技术架构

image.png

被集成服务可以向 API Gateway 注册 Rest API,从而通过统一的网关对外暴露服务。网关本身需要实现标准的鉴权/授权策略以及 API 生命周期管理、熔断和限流等能力,同时注册到网关的 API 还要能够进一步注册到作业平台的组件池当中;如果被集成服务还引入了流程引擎,那么对应的原子组件也要能够直接注册到远程的组件池,最终通过作业平台完成所有原子组件的收敛和统一管理。基于此可以让业务方按需从组件池中选择对应组件并进行装配,同时通过自定义表单功能设置流程输入,最后触发流程。流程执行时由作业平台的执行引擎子系统进行远程调度并驱动最终的服务提供者运行对应的功能组件。

核心功能组件

  • 编排引擎:通过流程引擎、表单引擎、规则引擎以及脚本引擎等驱动运维业务的制作与执行。
  • 中台网关:规范组件接入标准,同时通过统一的服务网关集成丰富多样的运维原子组件,提供给第三方或者平台编排使用。
  • 安全保障:由编排生成的业务流程默认集成审批流、安全风控、无人值守以及多种巡检能力,为运维变更提供全方位的安全保障机制。
  • 支撑服务:提供企业主数据、消息中心、通知中心、任务中心、权限中心等业务支持服务。

使用步骤

image.png

关键能力

主要包括以下关键能力:

  • 快速功能扩展构建能力:运维编排提供丰富的运维基础组件,以及常见运维场景的公共模板,用户可以通过复制公共模板并对其修改,快速地构建模板,实现特定的运维需求,降低模板编写的难度,提高整体运维的效率。
  • 快速集成第三方运维能力:用户可以把第三方运维能力通过 API 网关,包装成运维编排的功能组件,在运维编排中使用,实现第三方运维能力的快速集成。
  • 被第三方平台集成的能力:第三方平台可以通过运维编排中心的 API,进行模板和流程的管理,通过订阅流程事件来监听执行过程,实现运维编排被集成的能力。
  • 管理运维脚本/文件:运维平台统一对用户的运维脚本或文件进行管理,包括脚本或文件的上/下线、版本管理、授权管理等。
  • 可视化的执行过程和执行结果:通过提供可视化的执行过程,用户可以看到完整的执行过程和执行结果,具体包括:

    • 直观地看到各个任务的执行详情;
    • 清晰地看到执行的流程、顺序和错误跳转。

image.png

适用场景

  • 扩展现有运维变更业务:针对运维平台现有的运维变更操作进行调整,以便满足业务方所在部门的特定需求。
  • 定义全新的变更类型:针对运维平台当前并未提供的变更类型(比如 IoT 场景的运维),业务方可以根据自身需要把相关的原子组件注册到平台中,然后通过编排方式构建出全新类型的运维操作流程。
  • 批量主机运维:选定一批主机并按照编排的顺序执行一系列的运维脚本或者命令,以达到批量操作主机的目的。
  • 定时巡检任务:通过定时组件结合自定义流程可以对线上资源或者服务进行各种不同维度的数据巡检以及结果报告。
  • 运维编排器:用户使用该平台,把自己的 API 以自定义 HTTP 组件的形式进行编排,进而快速编排出所需的运维功能,减少开发工作量。
  • 主机运维:用户通过主机运维组件,实现对主机的日志清理、组件管理等。

以应用扩容为例

1、 可视化编排出应用扩容模板

image.png

2、 提交表单,执行应用扩容模板

image.png

3、 查询执行进度及结果

image.png

总结

面向编排的运维业务构建模式,可以高效、灵活、稳定地支持企业中的各种运维业务场景。围绕企业业务管理需求,通过可视化的用户编排界面、控件元素和成熟稳定的模块组件,面向编排的运维工具可以支持团队快速搭建轻资产、高效能、个性化的 IT 运维工具,助力传统运维转型,加速企业数字化进程。

免费下载《阿里巴巴DevOps实践指南》

阿里巴巴合伙人和业界多位大佬力荐、何勉、陈鑫等17位阿里资深技术专家联袂出品、阿里十年DevOps经验沉淀总结、阿里巴巴DevOps落地实践一本通。

前往:https://developer.aliyun.com/topic/devops,下载完整版电子书。

image.png

相关文章
|
2天前
|
运维 Devops 持续交付
自动化运维的魔法:打造高效DevOps流水线
【10月更文挑战第34天】在数字化时代的浪潮中,DevOps成为企业追求敏捷、高效和稳定的关键。本文将通过一个真实案例,展示如何构建一个高效的DevOps流水线,实现从代码提交到部署的全自动化流程。我们将探讨流水线设计的哲学、工具选择以及面临的挑战,并分享实际的代码示例和操作步骤,帮助读者理解自动化运维的精髓。
11 2
|
8天前
|
运维 Devops 测试技术
自动化运维的魔法——打造高效的DevOps流程
【10月更文挑战第28天】在数字化浪潮不断推进的今天,企业对运维效率的追求如同古人探索魔法一般充满好奇与渴望。本文将带你走进自动化运维的世界,揭秘如何通过DevOps实践,实现从代码到部署的无缝连接,提升企业的IT运营效能。我们将一起探索自动化工具的选择与配置,以及如何构建一个既能快速响应业务需求,又能保障系统稳定性的高效流程。
|
11天前
|
运维 Prometheus 监控
自动化运维之路:从脚本到DevOps
【10月更文挑战第25天】在数字化时代的浪潮中,运维不再是简单的服务器管理,而是成为了企业竞争力的核心。本文将带你走进自动化运维的世界,探索如何通过技术手段提升效率和稳定性,以及实现快速响应市场的能力。我们将一起学习如何从基础的脚本编写进化到全面的DevOps实践,包括工具的选择、流程的优化以及文化的建设。无论你是运维新手还是资深专家,这篇文章都将为你提供有价值的见解和实用的技巧。
14 3
|
29天前
|
人工智能 运维 Devops
自动化运维之路:从脚本到DevOps的转变
【10月更文挑战第7天】在这篇文章中,我们将一起探索自动化运维的演变历程,从最初的简单脚本到现代的DevOps实践。我们将深入理解自动化如何改变了运维工作的本质,并讨论实现这一转变的关键技术和策略。文章将不包含代码示例,而是聚焦于理念、工具和方法论的介绍,旨在为读者提供一个全面的自动化运维框架视图。
|
30天前
|
运维 监控 Devops
自动化运维的魔法:打造高效DevOps流水线
【10月更文挑战第6天】 在现代软件开发的快节奏中,自动化运维成为提高效率、保障质量的重要手段。本文将带你了解如何构建高效的DevOps流水线,从持续集成到部署,再到监控和反馈,我们将一步步揭开自动化运维的神秘面纱。你将学习到如何通过代码和工具的结合,实现软件交付过程的自动化,以及如何通过这一流程提升团队的协作和响应速度。让我们开始探索自动化运维的奇妙之旅吧!
|
1月前
|
运维 Devops jenkins
自动化运维之路:从脚本到DevOps
【9月更文挑战第31天】在数字化时代的浪潮中,运维不再是单纯的系统维护,而是企业竞争力的加速器。本文将带你领略自动化运维的演变历程,从最初的脚本编写到现代DevOps实践的转变,揭示如何通过持续集成和持续交付(CI/CD)实现运维的高效与创新。我们将一起探索工具的选择、流程的优化以及文化的培养,让运维工作变得既简单又强大。
|
2月前
|
运维 Prometheus 监控
运维中的自动化工具与实践指南
本文深入探讨了自动化工具在IT运维中的重要性,提供了多种实用工具的推荐与应用实例。通过分析自动化工具如何提升运维效率、减少错误率,我们将揭示其在现代信息技术管理中的核心价值。无论你是IT新手还是经验丰富的专家,都能从中汲取到有益的知识,进而提升你的工作效果。
|
2月前
|
运维 Devops 大数据
自动化运维之路:从脚本到DevOps的转变
【9月更文挑战第24天】在数字化时代的浪潮中,企业对运维的要求越来越高。本文将探讨如何通过自动化工具和DevOps文化,提升运维效率,确保系统的稳定性和安全性。我们将一起走进自动化运维的世界,了解其背后的理念和技术实现,以及它如何改变我们的工作方式。
46 2
|
3月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
下一篇
无影云桌面