Skip to content

部署中心

部署中心主要功能是提供给用户可视化界面来进行主机、应用、中间件的部署、启动、停止、删除、卸载、监控等。

1.1.主机管理

1.1.1.主机列表

进入主机->主机列表中添加要部署服务的服务器信息。

添加主机信息时,可单个IP添加,也可进行整个IP段的批量添加。

1.1.2.用户信息

进入主机->用户信息,为对应的主机添加有权限的用户。

如果主机的用户名密码相同,可以选择多个主机进行批量添加用户信息。

主机用户信息添加完成点击保存时,会验证此时添加的主机用户信息,如果添加的主机用户名和密码无法正常登录时,改信息是无法保存的。

进入主机->用户信息,选择批量编辑

如果多个主机用户名密码相同,可以同时修改多个主机; 注意,如果修改的多个主机中有用户名密码验证不通过的,则提示出具体的ip未修改成功, 其中修改成功的不做提示。

1.2.3.定时任务管理

运维平台提供linux定时任务的监控管理,并且可以查看、下载、执行脚本内容。

1.2.应用管理

1.2.1.应用版本

进入应用管理->应用版本,添加并上传所要部署的服务的安装包。

应用版本包的来源可选择本地或者服务器,若选择从服务器上传应用包,其上传地址可在OMS平台的后台服务aries-deploy-center中的YML文件中配置,修改 bootstrap.yml 文件

对应的服务安装包上传完成之后,进入应用列表中添加所要部署的服务,添加端口是为了用来探测此微服务此时的健康状态。

1.2.2.应用列表

应用列表添加时,可选择应用是已部署还是未部署状态,然后选择对应的部署版本、部署服务器、部署地址等信息,启动命令后面要跟上实际启动应用要使用的配置文件环境信息。

应用列表添加完成之后,就可以依次对该应用进行部署、启动操作。

当需要修改应用列表的信息时,可将服务停止,然后点击服务后面操作中的编辑按钮,进行一些可修改属性的编辑,如果直接将运行中状态的服务信息编辑之后可能不生效,此时需要将服务停止然后重新启动。

如果需要修改的属性时服务的安装路径、安装名、IP等信息时,服务状态必须是未部署状态才可修改,修改完成之后将服务进行部署、启动即可生效。

批量编辑应用列表信息时,只能批量编辑未部署服务的版本号。

应用列表中正在运行的应用需要删除时,需要依次进行停止、卸载之后才可删除,切换部署版本时,也需要依次停止、卸载之后才能修改版本号。

应用的停止、卸载、日志按钮在使用时,必须在认证中心的参数管理中配置相关的脚本参数方可使用,以ensemble-cif-service 应用服务为例。

添加服务状态检测命令:进入参数列表中选择字典类型为 OperCommand 的然后点击添加按钮

该参数的标签名必须是: 微服务名称 + “.STATUS” , 类型必须是:OperCommand

服务状态判断条件:

  • [x] 进程是否存在
  • [x] stdout.log中是否有启动完成的相关标识
  • [x] 应用健康探测状态

Auth参数管理配置OperCommand字典类型:

获取状态命令配置:

如:ensemble-cif-service.STATUS

俩个条件";"分号分隔开,即判断进程是否存在,判断stdout.log文件中是否有启动完成的相关标识。

shell
ps -ef | grep $APP_HOME_DIR | grep -v grep;cat ~/logs/ensemble-cif-service/logs/stdout.log |grep "appName=ensemble-cif-service"

也可以只配置进程是否存在,即:

shell
ps -ef | grep $APP_HOME_DIR | grep -v grep

探测应用健康状态需配置OperCommand字典类型的探测url,且需要在部署列表中维护微服务应用节点的端口号。

如:ensemble-cif-service.HEALTHCHECK

shell
/lhdmon/health

默认为/lhdmon/health接口应用探活,如需更换探活接口,需更改部署中心代码com.dcits.aries.deploy.health.InstanceHealth模型

添加服务停止命令:

该参数的标签名必须是: 微服务名称 + “.STOP” , 类型必须是:OperCommand ,数据值是:cd $APP_HOME_DIR/bin && ./stop.sh 命令中的 $APP_HOME_DIR 取得就是服务的实际安装地址。

添加服务日志查询命令:

该参数的标签名必须是: 微服务名称 + “.LOG” , 类型必须是:OperCommand ,数据值是:cd ~ /logs/ensemble-cif-service/logs && tail -100 stdout.log

1.2.3.灰度发布

(1)进入灰度发布菜单,选择要灰度发布的服务,可以在下面看到当前所要灰度发布的服务的所有节点。要使用灰度发布,首先要保证该服务所有的节点版本都是一致的,然后选择要灰度的节点点击 灰度发布按钮,对所选的节点进行灰度发布。

(2)点击灰度发布按钮之后,选择需要灰度发布的版本,执行灰度发布,等待灰度发布成功之后既可以进行灰度测试。

执行灰度发布之后,会跳转到灰度发布进度的页面。

灰度发布完成之后,查看灰度发布的拓扑图,灰度节点会有一个灰度标识,查看注册中心(http://192.168.164.180:8848/nacos),在注册中心中可以看到灰度节点的元数据会携带一个灰度标识**gray=true**。

(3)待灰度发布完成之后(在注册中心中可以查看到灰度节点,并且灰度发布菜单中灰度节点显示灰度节点IP 版本号 ),进行灰度测试,首先需要在服务治理中将网关的路由策略修改为灰度,其次,需要在请求头中添加gray=true

(3)待灰度测试完成之后,然后进入灰度发布菜单点击余量发布 按钮将服务正常余量发布完成即可。

等待余量发布完成之后,首先灰度节点会先启动起来,其余节点正在启动,待所有的节点启动成功之后都会升级到新的版本。同时灰度节点的灰度标识会被清除掉,可以在注册中心查看(http://192.168.164.180:8848/nacos)

灰度发布要注意的问题:在灰度发布之后需要在nacos注册中心中去查看灰度节点时候已经上线,同时查看部署中心的灰度发布菜单中的灰度节点显示为 灰度IP 版本号

1.2.4.滚动升级

1.2.4.1 滚动升级-滚动升级

(1)进入滚动升级菜单,选择需要升级的应用类型,可查询出当前应用类型服务的所有节点;可以同时升级多个应该类型,每个应用类型升级是并行的;

image-20220324110946907

1 - 可以支持选择多个应用类型

2.1,2.2 - 选择多个需要升级的应用

3 - 在对应的应用上选择需要升级的版本(版本只显示最新的10个版本)

4 - 点击滚动升级按钮进行滚动升级

(2)点击滚动升级页面的滚动升级按钮,选择要升级到的版本和一次要升级的数量然后确认,选择一次升级的数量就是你本次操作要升级的节点的数量,最大升级的节点数是该服务的所有节点数减1,要确保该服务在升级过程中仍有节点在提供服务;如果当前服务只有一个节点,那就升级该节点。

image-20220324111514426

(3)点击确定按钮之后可以查看升级进度

image-20220408134406376

1 - 执行进度,进度条根据(应用备份、应用停止、应用卸载、应用部署、应用启动)进行百分比。

2 - 状态,应用在滚动升级过程中的应用的实时状态会展示在该位置

3 - 暂停按钮,应用暂停,会终止正在执行升级的应用以及待执行升级的应用。正在执行的应用会等该环节的执行完成之后暂停,举例,当前正在执行应用停止,点击暂停按钮之后,应用会继续执行应用停止进度,直到停止成功,后边的进度会被暂停。

1.2.4.2 滚动升级-暂停

点击暂停按钮,只会暂停对应的应用实例。

image-20220408135536065

1 - 正在暂停,等待当前环节暂停的状态

2 - 已暂停,滚动升级暂停成功

3 - 继续,应用继续,将暂停的滚动升级进行恢复。

4 - 取消,应用取消,将应用的滚动升级取消。

1.2.4.3 滚动升级-继续

image-20220408140018434

1.2.4.4 滚动升级-取消

取消滚动升级,只有在暂停⏸之后才可以进行取消。

image-20220408140241755

image-20220408140608282

1.2.4.5 滚动升级-回退

​ 回退功能,服务列表的每一项后面都有一个回退按钮,点击回退之后会弹出当前部署过的所有版本的表格,然后选择需要回退的版本然后点击确认之后即可回退,回退前需要先停止需要回退的节点的服务。

img

回退完成之后还需要进入应用列表中将当前回退的节点启动。

1.2.5 配置加密

1.2.5.1 集成说明

配置加密有两种方式

1.使用国密的加/解密方式:应用需要集成国密的加密/解包,并修改配置文件

平台集成开源国密算法的sdk包如下,如果需要使用国密加密方式需要添加的依赖

<dependency>
    <groupId>com.dcits.galaxy</groupId>
    <artifactId>jasypt</artifactId>
</dependency>

应用配置文件增加如下配置:

image-20230407143756158

2.使用spring boot默认的加/解密方式:应用需要集成 jasypt-spring-boot-starter的加密包,修改配置文件

<dependency>
      <groupId>com.github.ulisesbocchio</groupId>
      <artifactId>jasypt-spring-boot-starter</artifactId>
</dependency>

应用配置文件增加如下配置:

image-20230407144648921

使用方式

此功能是为数据库的密码做加密的,在输入框中输入数据库的密码点击加密按钮之后就可以得到加密后的数据密码,若想添加多条密码可以点击添加行,然后加密。此处加密使用的是auth的getEncryptDataList接口

将密文复制,在yml 文件中以: ENC(密文) 的方式进行配置。例如: 在部署中心的加密密文为: NVWyBo8nEH1f1TFuaM1dA/oZR6OxjQjM,则在yml中配置为:ENC(NVWyBo8nEH1f1TFuaM1dA/oZR6OxjQjM)

image-20230407145537557

若配置中心未找到此菜单,请在认证中心按照图片内容进行配置:

(1)先进入认证中心的菜单管理中,将deploy系统的配置加密菜单是否显示按钮打开

(2) 进入角色管理中,为所要使用deploy系统的角色添加此菜单的权限

1.3.中间件部署

OMS中的中间件部署是用来部署redis和zookeeper 的。

1.3.1.部署redis

1.3.1.1单节点部署

首先进入redis版本菜单上传redis的安装包

进入redis列表菜单中,选择对应的服务器添加要部署的redis实例,单节点部署时不用选择所属集群并且实例类型选择 ’主‘ 就可以

实例添加完成之后,点击实例列表中的配置按钮,可为对应的实例设置端口、密码等配置。

redis实例添加完成之后,启动、停止、状态、日志操作命令也需要在认证中心的参数管理中设置对应的参数命令。

redis停止参数配置:

redis启动参数配置:

redis状态获取参数配置:

redis日志获取参数:

1.3.1.2.集群部署

OMS平台目前只支持redis的哨兵模式部署。

首先进入redis集群菜单,添加一个redis集群

上传redis版本和单节点中的操作一致,添加redis实例时与单节点部署不同的时需要选择集群,并且实例类型此时要根据部署节点的规划去选择是 主、从还是哨兵。

1.3.2.部署zookeeper

1.3.2.1.单节点部署

首先进入zk版本菜单上传zookeeper的版本

zk版本上传完成之后,进入zk列表中添加一个对应的zk实例,单节点不需要选择集群

实例添加完成之后需要进入认证中心添加zk的 启动、停止、状态获取、日志获取参数命令。

zk启动参数配置:

zk停止参数配置:

zk状态获取参数配置:

zk日志获取参数配置:

1.3.2.2.集群部署

zk的集群部署与redis集群部署步骤基本一致,可参考redis集群部署进行操作。

1.4.远程配置文件操作

此功能是用来远程修改微服务中的yml文件的配置。如果没有此菜单可以参考上述配置加密中的操作将菜单添加给对应角色和租户。

服务器ip选择所要修改的微服务所部署的服务器,如果没有需要在主机列表和用户信息中添加此服务网的ip和用户。服务器名可输入为所能区别的服务节点的名称,配置文件名填写你所要修改的是哪个配置文件,例如:application.yml ,配置文件路径填写你所要修改的配置文件的路径。

添加完成之后,点击操作中的加载会将要修改的配置问价获取到部署中心所部署的服务器本机中,路径需要在部署中心aries-deploy-service中修改(如下图所示)。

配置加载完成之后点击查看然后在页面修改配置并保存,保存成功之后点击推送将修改的配置推送到被修改的服务中去,最后再重启修改配置的微服务即可。