配置部署中心,包含三大模块:
1.配置管理:管理线上服务的参数配置(如:超时,路由,限流,负载均衡,以及服务白名单的管理)
2.持续集成:完成服务代码打包,服务镜像的构建过程
3.发布部署:完成线上服务的环境变量变更,服务挂载文件内容变更,线上服务的发布更新/启动停止,更有发布记录以供查询。
此篇文档着重说明其中第三个模块发布部署的大体流程:
使用菜单:
发布部署包含六个子菜单,每个菜单的功能如下:
文件管理:管理所有服务容器的配置文件,如:服务网关需要挂载于宿主机的服务白名单文件,可以通过此功能进行配置文件内容,关联某台机器的服务容器进行挂载。
服务管理:管理服务基础信息
环境管理:管理环境集信息,以及环境集下某个服务的环境变量信息
节点管理:管理节点信息(一个节点总是从属于某一个环境集)
部署单元:管理部署的服务信息,确定服务最终部署的节点和使用的镜像版本(简而言之就是具体到某个服务容器)
上线部署:上线部署数据来自于部署单元进行筛选展示,执行具体的上线升级,重启,停止操作,可以预览服务运行状态和运行的基本信息(如:当前运行的镜像tag号,服务的最后更新时间,是否需要更新等信息)
部署记录:记录每一次部署升级操作(包括重启和停止),可预览本次升级的yml配置文件并做出有效diff对比
一次完整的上线操作:
上线场景:上线一个新服务至生产某节点,完成发布,验证存在发布记录。
已知服务基础信息:存在数据库连接,存在生产环境必须的环境变量配置,存在文件需要挂载至宿主机,需要将服务端口映射至宿主机
添加新服务:
服务管理=>新增(可根据现有服务进行复制)
以上添加了一个基础服务,配置了服务信息,服务镜像字段不需要填写tag号,只需填写基础镜像即可。
服务中添加环境变量(ENV)的原则是:服务中不易变动的环境变量
为需要发布的新服务的环境添加公共环境变量配置:
环境集中添加环境变量(ENV)原则为:公共的环境变量,数据库资源配置信息
如果新服务有额外的环境变量需要添加,且环境变量只用于新加服务,对于其他服务完全不会需要这些环境变量,则需要添加SetSubEnv,如下:
添加一个新节点用于部署新服务:
节点管理=>新增
节点从属某个环境集,所以在添加节点时需要选定所属环境集:
是否是外部机器用于区分是否需要部署服务,一般为否
节点上的环境变量(ENV)添加原则为:尽量不添加,如果添加,必将与节点关联密切,或因节点而异的环境变量。
添加一个部署单元:
部署单元=>新增
一个部署单元确认了一个节点上的一个服务容器。
部署单元环境变量添加原则:只要没有特殊情况不需要添加,一旦添加,只会在当前部署单元所在节点生效。
添加服务外部文件挂载:
文件描述了一个或多个容器的VOLUMES信息,当添加一个文件后,都需要与指定的部署单元(容器)进行关联,关联的文件或文件夹最终将作为容器的VOLUMES,点击关联部署单元按钮查看或关联/取消关联部署单元。
上线升级:
至此,所有新加的服务配置都已经完成,以上配置在升级时最终都会综合为一份配置文件进行下发如下:
差异对比
从上面操作可以看到,之前添加的环境变量,文件,都生效于配置文件,确认无误后升级即可启动对应节点上的服务。