软件的持续部署发布流程

将构建完成和验证通过的应用软件包,发布到该应用对应环境下的 IP 主机上的指定目录下,并通过应用优雅上下线,来实现软件最新版本对外提供服务的过程。

软件的持续部署发布流程_第1张图片

单体架构软件启动起来就可以提供服务,但是对于微服务应用,无论停止还是启动,都需要考虑到对周边其它依赖和被依赖应用的影响才可以,考虑的点也就相对较多。

针对单机发布,分环节来看一下:

1. 从 CMDB 中,拿到线上生产环境下的应用主机 IP 列表去对应关系,目的是要将软件包发布到应用对应的 IP 主机上。

2. 检查每台机器上的服务是否正常运行,如果是正常服务的,说明可以发布,但是服务本身异常,就要记录或跳过。

3. 下载 war 包到指定目录。这里要依赖前期我们介绍的应用配置管理,在这一步要获取到该应用的源代码目录。

4. 关闭该应用在这台主机上的监控,以免服务下线和应用终止产生线上错误告警。

5. 优雅下线。RPC 服务从软负载下线,如果该应用还提供了 http 的 Web 调用,就需要从 Nginx 这样的七层负载下线,下线动作均通过 API 接口调用方式实现。

6. 下线后经过短暂静默,重启应用。对于 Java 应用来说,重启时可以自动解压,启停命令等还是之前从应用配置管理中获取响应路径和命令脚本名称。

7. 优雅上线,进行健康监测,检查进程和应用状态是否正常,如果全部监测通过,则开始上线服务,开启监控。

上述是一个应用的单机发布过程,过程比较长,但是可以看出,每个环节并不复杂。这里我们需要注意两个关键点:

  • 针对场景,进行细分,这样就可以化整为零,把一个乍看上去很复杂的过程,分解成一个个可执行的步骤。
  • 与服务化的软负载和注册中心进行交互,确保应用是可以优雅上下线的,而不是简单粗暴地启动和停止。

此文章为3月Day27 学习笔记,内容来源于极客时间《赵成的运维体系管理课》,推荐该课程。

你可能感兴趣的:(运维,运维)