应用发布管理用于实现应用的持续部署(Continuous Deployment)。通过标准化的发布流程,可将应用程序自动发布至云服务器ECS、容器服务ACK等云资源。提升应用发布的效率与稳定性。
关键概念
一个应用可划分为多个应用分组。每个应用分组包含一组计算资源(如 ECS 实例)。通过应用发布管理功能,将应用的部署物部署到各应用分组,即可完成应用发布。
应用与应用分组
应用:由应用程序和其部署所需的资源构成,作为一个整体进行管理与运维。
应用程序:待部署的应用程序,例如 Web 服务、机器学习模型、数据库服务等。
资源:部署应用程序所需的云资源,例如 ECS、ESS 伸缩组、容器集群等。
应用分组:同一个应用下可以划分多个分组,用于隔离不同环境的资源和配置。例如:
按环境划分:
prod-group(生产环境分组)、pre-group(预发环境分组)。按地域划分:
hangzhou-group(杭州地域分组)、beijing-group(北京地域分组)。
分组划分完成后,需为每个分组导入资源。例如,为杭州分组导入4台ECS实例,为北京分组导入2台ECS实例。应用程序将部署在这些已导入的资源上。
部署物
部署物是待发布应用程序的源文件和启动/停止脚本的集合。包含了应用程序发布所需的全部信息,用于实现应用程序的规范化和版本化管理。将部署物发布到应用分组即可完成应用发布。
类型 | 示例场景 |
将Java应用的JAR包存储在OSS中,并在部署物中指定该JAR包和启动/停止脚本。 | |
将Python应用的代码保存在Git仓库中,并在部署物中指定这个Git仓库地址和启动/停止脚本。 | |
构建包含待发布应用的ECS镜像,并在部署物中直接指定该镜像。 | |
将应用的Docker镜像存放在容器镜像服务(ACR)仓库中,并在部署物中指定该镜像的地址和启动/停止脚本。 | |
当无需指定部署物源时,可创建此类型的部署物。所有应用启动/停止相关的部署操作均通过Shell脚本实现。 |
发布模式
发布模式 | 说明 | 示例场景 |
全量发布 | 将应用发布至当前分组下的所有实例。 | 将应用发布到生产环境分组下的所有实例。 |
灰度发布 | 将应用发布至当前分组下手动选择的部分实例。 | 发布应用到一台实例进行功能验证。 |
应用参数
为应用分组创建的参数,可在部署物的启动/停止脚本中作为环境变量引用。
应用参数分为普通参数和加密参数。对于密码、密钥等敏感信息,应使用加密参数以提高安全性。