服务编排发布支持一次性,有序的发布多个相互依赖的服务。编排发布需要用户自己编写*发布计划*文件,该文件是Yaml格式的。
如图所示可以找到创建编排发布的入口。
发布计划是一个Yaml文件,由key-value的形式构成。下面是一个发布计划示例,注意所有关键字(key)的大小写。
comment: 这是一个发布计划的注释 # 此次编排发布的备注,可以为空 deployPlanItems: # 发布计划的具体内容 - serviceId: 111 # !!必填项!! 服务id priority: 3 # 该服务在所有待发布服务序列中的优先级 deployment: HTTP_UPLOAD_DEPLOY # !!必填项!! 此次服务的发布方式 containerExecMethod: PARALLEL # 容器部署的执行方式(串行或并行) deployLabel: label1 # 此次服务发布支持的标签,多个标签以逗号(,)分隔 httpSrcUri: http://exapmle.zip # http上传部署的代码包地址 compileRepoPath: http://git... # 编译部署的git仓库地址 compileRepoBranch: master # 编译部署git分支名称 - serviceId: 222 priority: 1 deployment: STOP containerExecMethod: PARALLEL ...
下面详细讲解几个重要的关键字:
serviceId: 必填项 表示服务的id。服务id在服务列表的服务名称右侧可以找到。
deployment: 必填项 表示发布方式,当前支持5种方式:START
(启动),STOP
(停止),RESTART
(重启),HTTP_UPLOAD_DEPLOY
(HTTP上传部署),COMPILE_DEPLOY
(EWS自带GIT仓库编译部署)。上述五种方式请注意填写的**准确性**。
priority: 指服务在这次编排序列的所有服务中的优先级。数值越大表示优先级越高,则会被优先发布;若数值相同,则会同时发布。
deployLabel: 可以定制发布的容器标签。多个标签以英文字符逗号(,)分割。
containerExecMethod: 约定服务部署过程中容器的执行方式,支持PARALLEL
(并行)和SEQUENTIAL
(串行)。
httpSrcUri: http上传部署的代码包地址,当deployment
字段设置为HTTP_UPLOAD_DEPLOY
时,该字段*必填*,否则会解析出错。
compileRepoPath & compileRepoBranch: 编译部署的GIT仓库地址和代码分支。当deployment
字段设置为COMPILE_DEPLOY
时,该字段*必填*,否则会解析出错。当前只支持EWS自带便已部署GIT仓库。仓库地址在下图位置可以找到:
创建完成编排发布计划后,点击计划右侧的*执行*按钮可以开始执行刚创建的编排发布计划。
随后,可以在*任务列表*Tab的位置,查看当前发布计划的执行进度。
点开*任务列表*Tab,可以看到刚执行的编排计划。在每个编排计划的右侧操作栏可能会出现以下几种操作:
执行报告: 点击执行报告可以看到这次编排发布的详细执行报告,包括了各服务的执行状态,开始时间,结束时间,以及发布过程的关键信息。
停止: 在任务执行过程中,可以停止当前任务执行。*注*: 这里的停止是指,**完成当前正在部署的服务操作后,中断后续服务部署的执行**。
暂停: 在任务执行过程中,可以暂停当前任务的执行。*注*: 这里的暂停同停止一样,都是**暂停后续服务的部署操作**。暂停操作成功后,如果重新手动部署之前的任务,可能会导致版本出错,请谨慎使用。
恢复: 恢复可以继续状态为*被中断*,和*已暂停*的历史编排发布计划执行。
删除: 删除当前任务。
执行中: 任务正在执行的状态。
执行失败: 编排任务中的*任意一个服务部署出错都会导致当前任务停止*,并出现*执行失败*的状态。
执行成功: 编排任务中的所有服务成功部署。
已停止: 任务执行过程中,被执行*停止*操作。
已暂停: 任务停止过程中,被执行*暂停*操作,后续可以通过继续操作来恢复。
被中断: 出现系统级别的异常,会有*被中断*状态。任务被中断后,还可以使用继续来继续任务。该状态下,建议重新执行相应编排计划。
停止中,暂停中: 为*停止*和*暂停*操作的中间状态,该状态是在等待当前还在执行部署操作的服务执行完成,若等待过程中服务部署出错,会直接跳到*执行失败状态*。
出于服务可靠性的考虑,不提供自动回滚。用户可以根据之前的发布计划与发布进度,完成已发布服务的回滚。