编者按:本文源自阿里云云效团队出品的《阿里巴巴 DevOps 实际指南》,扫描上方二维码或返回:https://developer.aliyun.com/…,下载完整版电子书,理解阿里十年 DevOps 实践经验。
阿里巴巴利用运维平台曾经倒退了 6 年无余,撑持了公司绝大部分利用的上线部署、扩缩容、资源管理以及各种运维变更操作,并逐步积淀出一套丰盛且稳固的运维原子服务。为了最大化这些原子服务的价值并打造利用运维平台的中台能力,咱们提出了一种面向编排的运维解决方案。
面向编排的运维是指用户(PaaS 服务以及开发、运维、经营等角色)依据理论业务须要,对多个原子组件通过简略编排的形式进行灵便拆卸,结构出不同的业务流程以便实现一个残缺的运维需要。运维编排能够帮忙咱们更好地标准、治理和执行自动化运维操作,以模板的形式定义所须要进行的操作,而后再通过零碎运行,从而进步整体运维操作的效率、加强运维操作的安全性,并防止人工运维的谬误。
次要痛点
在利用运维畛域,大部分的做法都是基于工作流以及工单治理来实现对应的运维变更操作,而传统的运维工作流在保护老本及可扩展性上都存在肯定的有余,不足无效的流程生命周期管理手段。
这些问题能够归结为以下三类:
- 随着业务的一直倒退和业务场景的愈发丰盛,运维业务本身也变得越来越简单,常常会呈现一些非通用的个性化需要,比方在扩容流程中新增一个第三方数据同步的步骤,或者针对同一变更类型,不同环境须要执行不同的运维流程。这些需要导致平台实现老本以及保护老本越来越大。
- 依赖的底层流程引擎在运维畛域的反对无限,组件编排和流程管控等能力不易进行扩大,同时在规模化场景下,性能、稳定性以及安全性等方面也很难失去无效保障。
- 传统运维平台不具备对立且标准化的集成与被集成能力,难以赋能其余运维 PaaS 产品,中台能力欠缺,价值浸透无限,同时开发或运维人员不足设计和治理定制化运维操作的伎俩。
核心理念
运维编排的核心理念是服务组件化、运维编排化。咱们把运维原子服务依照平台标准注册为组件,并托管到对立的组件池中进行保护和治理,用户按需从组件池中抉择对应组件,并采纳适合的编排形式装配成运维业务流程,最初触发执行即可实现冀望的运维变更工作。运维编排的最终目标是打造一款高效、稳固、平安的运维业务构建平台。
技术思路
业务架构
架构一共有五层,从下到上,第一层是流程引擎以及容器引擎,作为原子服务的执行者;第二层用于定义各种不同的运维原子服务,是原子服务的定义者;第三层则次要用于注册原子服务为组件,作为组件的注册者;第四层是提供外围的编排能力,作为流程的编排者;第五层次要提供场景化编排能力,针对不同的场景有一些额定的个性反对。
技术架构
被集成服务能够向 API Gateway 注册 Rest API,从而通过对立的网关对外裸露服务。网关自身须要实现规范的鉴权 / 受权策略以及 API 生命周期治理、熔断和限流等能力,同时注册到网关的 API 还要可能进一步注册到作业平台的组件池当中;如果被集成服务还引入了流程引擎,那么对应的原子组件也要可能间接注册到近程的组件池,最终通过作业平台实现所有原子组件的收敛和对立治理。基于此能够让业务方按需从组件池中抉择对应组件并进行拆卸,同时通过自定义表单性能设置流程输出,最初触发流程。流程执行时由作业平台的执行引擎子系统进行近程调度并驱动最终的服务提供者运行对应的性能组件。
外围性能组件
编排引擎: 通过流程引擎、表单引擎、规定引擎以及脚本引擎等驱动运维业务的制作与执行。
中台网关: 标准组件接入规范,同时通过对立的服务网关集成丰盛多样的运维原子组件,提供给第三方或者平台编排应用。
平安保障: 由编排生成的业务流程默认集成审批流、平安风控、无人值守以及多种巡检能力,为运维变更提供全方位的平安保障机制。
撑持服务: 提供企业主数据、音讯核心、告诉核心、工作核心、权限核心等业务反对服务。
应用步骤
要害能力
次要包含以下要害能力:
- 疾速性能扩大构建能力:运维编排提供丰盛的运维根底组件,以及常见运维场景的公共模板,用户能够通过复制公共模板并对其批改,疾速地构建模板,实现特定的运维需要,升高模板编写的难度,进步整体运维的效率。
- 疾速集成第三方运维能力 :用户能够把第三方运维能力通过 API 网关,包装成运维编排的性能组件,在运维编排中应用,实现第三方运维能力的疾速集成。
- 被第三方平台集成的能力 :第三方平台能够通过运维编排核心的 API,进行模板和流程的治理,通过订阅流程事件来监听执行过程,实现运维编排被集成的能力。
- 治理运维脚本 / 文件 :运维平台对立对用户的运维脚本或文件进行治理,包含脚本或文件的上 / 下线、版本治理、受权治理等。
- 可视化的执行过程和执行后果 :通过提供可视化的执行过程,用户能够看到残缺的执行过程和执行后果,具体包含:
直观地看到各个工作的执行详情;
清晰地看到执行的流程、程序和谬误跳转。
实用场景
- 扩大现有运维变更业务: 针对运维平台现有的运维变更操作进行调整,以便满足业务方所在部门的特定需要。
- 定义全新的变更类型: 针对运维平台以后并未提供的变更类型(比方 IoT 场景的运维),业务方能够依据本身须要把相干的原子组件注册到平台中,而后通过编排形式构建出全新类型的运维操作流程。
- 批量主机运维: 选定一批主机并依照编排的程序执行一系列的运维脚本或者命令,以达到批量操作主机的目标。
- 定时巡检工作 :通过定时组件联合自定义流程能够对线上资源或者服务进行各种不同维度的数据巡检以及后果报告。
- 运维编排器: 用户应用该平台,把本人的 API 以自定义 HTTP 组件的模式进行编排,进而疾速编排出所需的运维性能,缩小开发工作量。
- 主机运维 :用户通过主机运维组件,实现对主机的日志清理、组件治理等。
以利用扩容为例
1、可视化编排出利用扩容模板
2、提交表单,执行利用扩容模板
3、查问执行进度及后果
总结
面向编排的运维业务构建模式,能够高效、灵便、稳固地反对企业中的各种运维业务场景。围绕企业业务管理需要,通过可视化的用户编排界面、控件元素和成熟稳固的模块组件,面向编排的运维工具能够反对团队疾速搭建轻资产、高效能、个性化的 IT 运维工具,助力传统运维转型,减速企业数字化过程。
【对于云效】
云效,云原生时代一站式 BizDevOps 平台,反对公共云、专有云和混合云多种部署状态,通过云原生新技术和研发新模式,助力翻新守业和数字化转型企业疾速实现研发麻利和组织麻利,打造“双敏”组织,实现 10 倍效力晋升。
立刻体验