赞
踩
作者:木烟
本文主要介绍镜像构建部署场景,多环境镜像晋级/复用最佳实践,保证“所发即所测”。
应用研发场景有效地管理镜像产物是确保软件快速、安全、可靠部署的关键环节。通常一个应用研发需要经过测试、预发、生产各个阶段,一种常用的研发模式如下:
上述流程中,怎么知道哪个镜像版本是预发验收通过的、可用于生产发布的呢?基于云效 Flow 流水线,我们有以下两种实践。
i. 添加 Flow 流水线源,选择上述预发流水线作为源,默认使用最后一次成功执行的版本。
ii. 生产环境部署任务,以 Kubernetes 镜像升级任务为例,选择预发流水线的镜像产物进行部署。
i. 选择预发最后一次成功执行版本运行生产流水线。
ii. 生产发布人工卡点验证通过。
iii. 生产环境部署任务直接拉取预发流水线最后一次验证通过的镜像发布。
此外,Flow 支持流水线运行事件自动触发下一条流水线运行。通常适用于测试、预发镜像传递场景,测试环境验收通过后,自动触发预发环境部署。
i. 添加制品源,选择 ACR 镜像仓库,指定本应用的仓库,指定默认版本号。
ii. 环境部署任务,以 Kubernetes 镜像升级任务为例,选择 ACR 镜像地址部署。同时支持公网地址和 VPC 地址。
i. 选择指定镜像版本运行生产流水线。
ii. 生产发布人工卡点验证通过。
iii. 生产环境部署任务拉取指定镜像发布。
此外,为了降低生产发布版本号选择错误的风险,还可以额外开启版本号过滤规则,约束仅满足规则的镜像版本才可用于生产部署。如仅满足 myapp-V* 的才可用于生产发布。
集成安全扫描工具,在镜像推送至仓库前后进行自动扫描,检测潜在的安全漏洞、许可证问题和恶意软件。Flow 流水线支持开启制品源自动触发,支持 ACR 镜像推送完成或镜像扫描完成后自动触发流水线运行。典型使用场景如下:预发阶段镜像构建完成并推送到 ACR、自动触发 ACR 镜像扫描、ACR 镜像扫描通过后自动触发预发环境部署。
配置预发 CI 流水线,从代码开始构建镜像并推送到 ACR 镜像仓库。
配置预发 CD 流水线:
i. 流水线 ACR 制品源,开启制品源触发, 触发事件选择镜像扫描完成。
ii. 复制上述 Webhook 地址。
访问阿里云容器镜像服务 [ 1] 控制台,进入流水线中配置的镜像仓库实例,点击事件通知->创建规则;设置事件规则名称、设置事件通知触发的事件类型(目前 Flow 仅接收镜像扫描完成和镜像推送完成两个事件自动触发)、设置事件生效范围(可设置镜像版本过滤的正则规则,在该镜像仓库下只有符合正则规则的镜像版本才会触发事件通知);下一步,通知方式选择 HTTP,并将复制的 Webhook 地址配置到通知地址后保存即可。
iii. 配置预发环境部署任务,同上。
相关链接:
[1] 阿里云容器镜像服务
https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcr.console.aliyun.com%2F&lang=zh
点击此处,试用云效流水线 Flow,注册即享每月 1800 分钟的免费运行时长。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。