最近,优维科技EasyOps微发布了一波另人兴奋无比的小产品——部署编排,现在和小编一起了解一下吧。
熟悉我们产品的同学都知道,在EasyOps持续交付3.0产品线构成中,只有应付交付这条单独的产品线,用于覆盖单个应用的部署需求。
但在实际的生产中,更多的是同一个业务模块下多个应用的发布更新,让EasyOps实现部署编排的能力,是我们每一个产品、研发、技术的大兄弟们一直在思考推进的事情。
用户场景
User Scenario
我们在对用户场景分析时发现,用户在进行部署编排工作时,一般的工作流程是这样的:
传递给发布方案的参数,是一堆需要更新的应用列表以及他们的发布版本,这可以成为我们部署编排系统 API 层可以接受的参数,用于后续的对接发布计划、自动产生部署方案的扩展能力等,这会成为我们的系统边界。
核心特征
Core features
通过实践总结,一个优秀的部署方案通常会有以下的特点:
1、产品需求不会跨产品线,也就是说:发布方案通常不会跨多个系统模块进行发布,发布计划推送过来的需要更新的应用列表很可能是: ①. 同一个系统下的多个应用;②. 同一个系统下的多个子系统下的应用列表。
2、应用之间的发布顺序和技术架构相呼应,不会随便改变,例如:一个有前端 WebService、后端DataService、存储MYSQL的基本架构,发布顺序通常是 MySQL - > DataService -> WebService;
3、对于发布计划来说,每次更新的应用列表和版本号是会随着需求的变化而改变的,例如:系统A下有 A1、A2、A3、A4 4个应用,但是每次发布可能是 A1/A2、A2/A3、A1A2A4等任何组合;
总结一下:就是实现在业务模块下进行编排,有固定的编排顺序,灵活的变化的参数,画张图表达一下:
E.g.:业务系统 A,拥有应用 A1、A2、A3 和 A4:
固定的部署顺序:
灵活的发布参数(灰色表示本次发布计划不会发布):
这里的部署顺序可以是串行也可以并行,并行我们可以认为是一个部署组,例如:
所以其实我们可以认为,同一个业务模块下的编排顺序可以是一个母版,每一次的执行都是具体的部署方案,这个部署方案和具体的发布计划紧密关联,从而自动构建本次的部署。
而每一次的发布计划,都可以基于母版生成一套相应的编排方案。
应用部署方案
programme
在我们最新的部署编排产品功能中,我们提供了基于单个应用的一键部署方案,也就是把手工部署的流程,保存下来成为一个固定的部署方案,无需每次都走重复的流程,并且可以为单个应用定制多个不同的部署方案来适应不同的情况,让单个应用真正做到一键发布。
产品目标
Target
好啦,那我们部署编排这个产品要实现什么样的目标呢?
1、进一步提高 EasyOps 持续交付系统在应对客户生产环境的需求发布管理上的能力,为用户的产品功能发布自行构建相匹配的发布计划;
2、进一步提高应用交付能力的可配置能力和灵活性,为用户提供 EasyOps 交付系统和其他系统、甚至是第三方系统的联动能力;
3、把业务树和交付平台的底层能力进行场景化、产品化的封装,为平台的基础能力延伸展示更多的可能性。
OK ! 接下来,还是和小编一起,体验下【部署编排】产品的一些特性吧!
特性一.应用实例视图
解决需求:更方便的使用管理体验,用户可以直接通过应用实例树视图,查看和管理应用系统和应用的编排方案。
特性二.通用的编排方案
发布任务支持影响范围的评估
编排方案创建发布任务后,在预览清单会看到此编排方案执行时对应用的影响范围。发布任务支持部署策略检查和发布清单预览
编排方案在创建发布任务的时候,会检查所有的应用一键部署策略状态,如果有应用处于异常情况无法发布时,编排方案会进行提示并且停止本次的发布。
编排方案在创建发布任务时,会提供发布清单进行预览,发布清单暂时会包含应用部署卡片和编排流程图,部署卡片会提供部署的应用策略以及对应的主机部署列表。
发布任务支持编排方案的嵌套子流程查看
发布任务无论是预览清单,亦或是结果详情的流程图,均支持嵌套子流程查看模式,无需打开新的标签页,该特性对深度嵌套子流程、子编排方案以及审批节点有非常好的用户体验。发布任务支持应用部署卡片部署状态实时预览
发布任务在执行时,会根据部署节点为单位,实时加载各个应用的部署节点部署进度。发布任务支持发布任务的终止、失败节点跳过、失败节点重试以及再次执行
发布任务的结果详情对管理操作区域进行了优化,流程级别的操作全部放置在右上角管理区域。发布任务支持发布通知
编排方案在发布时,支持对相关人员进行执行概要的通知,提高了对发布任务跟踪和关注的力度。编排方案节点类型 ICON 全面更新
编排方案中支持的步骤类型有:工具、子流程、人工审批、部署策略(应用的编排方案特有)、子编排方案(应用系统的编排方案特有)。
在编排方案的流程图中对这些节点 ICON 进行了全面的更新,以便提高辨识度。
特性三.应用的编排方案
- 内置“部署策略”的节点类型对接应用交付的一键部署策略
在应用的编排方案中,会提供一个特殊的步骤节点:部署策略,对接应用交付系统的一键部署策略,实现编排方案的部署管理能力的接入。
点击图片查看大图
编排方案可以另存为模板进行内部分享
应用的编排方案可以另存为编排模板,分享给其他业务线使用,同时应用系统的编排方案暂时不支持另存为模板,后续会提供此能力。
https://mmbiz.qpic.cn/mmbiz_png/mFZ1DgnXic3FbxJh8qicepHic7QC8vNKvg0jet2bz5WklJHR3ZKQjl1iaibWUtN6sCsw5TEBfrN2LXzicXrteZibWFX1Q/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1可基于编排模板创建编排方案
特性四.应用系统的编排方案
内置“子编排方案”的节点类型引用系统内的其他应用的编排方案
应用系统的编排方案,会有特殊的步骤节点类型:子编排方案,来引用应用系统内的应用的编排方案,实现当前系统内的多个应用联合发布的能力。支持应用自由组合发布
应用系统的编排方案,创建发布任务时,会计算出此编排方案所引用的发布应用,并且可以对发布的应用列表进行自由组合,禁用和激活要发布的应用,灵活适应发布需求。
特性五.工具和流程
内置工具和流程不允许用户更新
部署编排为内置的工具和流程提供了保护机制,不允许用户直接编辑内置工具,唯一的更新途径是优维的交付同事使用导入的方式来进行更新版本。支持工具和流程添加部署编排白名单
部署编排为工具和流程增加了白名单的机制,从而让不用于部署编排的工具,不会出现在编排方案的编辑列表中,避免信息过多影响编辑效率。