应用发布管理

应用发布管理用于实现应用的持续部署(Continuous Deployment)。通过标准化的发布流程,可将应用程序自动发布至云服务器ECS、容器服务ACK等云资源。提升应用发布的效率与稳定性。

关键概念

一个应用可划分为多个应用分组。每个应用分组包含一组计算资源(如 ECS 实例)。通过应用发布管理功能,将应用的部署物部署到各应用分组,即可完成应用发布。

image

应用与应用分组

  • 应用:由应用程序和其部署所需的资源构成,作为一个整体进行管理与运维。

    • 应用程序:待部署的应用程序,例如 Web 服务、机器学习模型、数据库服务等。

    • 资源:部署应用程序所需的云资源,例如 ECS、ESS 伸缩组、容器集群等。

  • 应用分组:同一个应用下可以划分多个分组,用于隔离不同环境的资源和配置。例如:

    • 按环境划分:prod-group(生产环境分组)、pre-group(预发环境分组)。

    • 按地域划分:hangzhou-group(杭州地域分组)、beijing-group(北京地域分组)。

分组划分完成后,需为每个分组导入资源。例如,为杭州分组导入4ECS实例,为北京分组导入2ECS实例。应用程序将部署在这些已导入的资源上。

部署物

部署物是待发布应用程序的源文件和启动/停止脚本的集合。包含了应用程序发布所需的全部信息,用于实现应用程序的规范化和版本化管理。将部署物发布到应用分组即可完成应用发布。

类型

示例场景

OSS部署物

Java应用的JAR包存储在OSS中,并在部署物中指定该JAR包和启动/停止脚本。

Git部署物

Python应用的代码保存在Git仓库中,并在部署物中指定这个Git仓库地址和启动/停止脚本。

ECS镜像部署物

构建包含待发布应用的ECS镜像,并在部署物中直接指定该镜像。

Docker镜像部署物

将应用的Docker镜像存放在容器镜像服务(ACR)仓库中,并在部署物中指定该镜像的地址和启动/停止脚本。

仅执行命令部署物

当无需指定部署物源时,可创建此类型的部署物。所有应用启动/停止相关的部署操作均通过Shell脚本实现。

发布模式

发布模式

说明

示例场景

全量发布

将应用发布至当前分组下的所有实例。

将应用发布到生产环境分组下的所有实例。

灰度发布

将应用发布至当前分组下手动选择的部分实例。

发布应用到一台实例进行功能验证。

应用参数

为应用分组创建的参数,可在部署物的启动/停止脚本中作为环境变量引用。

应用参数分为普通参数和加密参数。对于密码、密钥等敏感信息,应使用加密参数以提高安全性。