Amazon Web Services (AWS) 提供全球覆盖广泛、服务深入的云平台,亚马逊云科技连续 11 年被 Gartner 评为“全球云计算领导者”。其完整的云原生“家族产品”,比如 Amazon EKS/ECR/S3(Amazon Simple Storage Service)/EC2...可以很好地支撑企业各类上云业务场景。
Zadig 作为云原生持续交付平台,支持多云架构交付,对 AWS 基础设施的兼容和适配性也极其友好。
本文中我们将演示在 AWS 上安装、使用 Zadig,以及 Zadig 是如何支持 AWS 全家桶进行微服务的持续交付,助力企业以更优雅的姿势快速走上云原生交付之路,降低成本、提高敏捷性并加速创新。
添加图片注释,不超过 140 字(可选)
安装 Zadig
以下操作以社区版 v1.15.0 版本为例,使用脚本的方式在 EKS 集群上快速安装 Zadig。
EKS 集群版本:v1.16~v1.22
第一步下载安装脚本:
curl -LO https://github.com/koderover/zadig/releases/download/v1.15.0/install_quickstart.sh
chmod +x ./install_quickstart.sh
第二步 配置环境变量并执行安装脚本:
export IP=124.53.19.22 # 集群任一节点的外网 IP 地址
export PORT=30333 # 安装完毕后,使用 IP:PORT 来访问 Zadig 系统
./install_quickstart.sh
安装完毕后,使用系统默认的账号密码登录即可。
添加图片注释,不超过 140 字(可选)
更丰富的安装参数和方式可参考文档:安装 Zadig | Zadig 文档 [1]
使用 Zadig
准备工作
集成 AWS 资源
- 对象储存 系统管理员访问 系统设置 -> 基础设施 -> 对象存储 -> 新建 ,提供商选择 Amazon S3 ,填写基本配置信息并设置为默认使用后保存。
添加图片注释,不超过 140 字(可选)
- 镜像仓库 系统管理员访问 系统设置 -> 基础设施 -> 镜像仓库 -> 新建 ,提供商选择 AWS ECR ,填写基本配置信息后保存即可。
添加图片注释,不超过 140 字(可选)
- Helm Chart 仓库 系统管理员访问 系统设置 -> 基础设施 -> HELM 仓库 -> 新建 ,填写由 AWS 厂商提供的 Chart 仓库配置后保存即可。
添加图片注释,不超过 140 字(可选)
准备项目
本文使用 voting-app 案例进行演示,案例源码位于 koderover/zadig[2]代码库中,目录结构说明如下:
本例中集成的 Helm Chart 仓库已有 voting-app 服务的 chart 配置,如果读者完全按照本实践操作,请将 chart 目录的内容上传到自己的 Helm Chart 仓库中。
zadig/examples/voting-app
├── chart # Helm Chart 配置
├── result # result 服务源码
├── vote # vote 服务源码
└── worker # worker 服务源码
集成代码源
系统管理员访问 系统设置 -> 集成管理 -> 代码源集成 -> 添加 ,集成代码源(即: voting-app 所在的代码源)。
系统管理员可 fork koderover/zadig 代码库,也可以下载后上传到自己的代码仓库中。
添加图片注释,不超过 140 字(可选)
如何使用
下面以 voting-app-helm-demo 项目为例来演示,包括搭建项目、管理服务配置、持续构建部署服务、版本管理的完整场景。
创建项目
系统管理员登录系统后点击 新建项目 ,创建 K8s Helm Chart 类型的项目 voting-app-helm-demo ,点击 下一步 。
添加图片注释,不超过 140 字(可选)
导入服务
从 AWS 提供的 Helm Chart 仓库中导入服务的 Chart 配置到 Zadig 中。
点击 从 Chart 仓库同步 ,选择 Chart 仓库以及 Chart 后新建即可导入服务配置,系统会自动解析 values 文件中的服务和服务组件,导入成功后点击 下一步 。
添加图片注释,不超过 140 字(可选)
构建配置
为服务组件配置构建,后续可使用工作流对该服务进行变更。以 examplevotingapp_result 为例,点击 添加构建 并填写构建配置后点击 下一步 。本例中构建配置说明如下:
- 构建名称 :voting-app-helm-demo-build-result
- 代码信息 :准备工作中集成的代码信息
- 通用构建脚本 :内容如下:
#!/bin/bash
set -ex
cd $WORKSPACE/zadig/examples/voting-app/result
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE
- 添加步骤 :增加文件存储,将 zadig/examples/voting-app/result 目录下的内容归档到 AWS S3 对象存储中
添加图片注释,不超过 140 字(可选)
创建环境
选择 本地集群 和 ECR 镜像仓库后点击 创建环境 ,系统会自动在 EKS 集群创建 dev 和 qa 两套环境,待环境创建完毕后点击 下一步 。
添加图片注释,不超过 140 字(可选)
运行工作流
系统自动创建 3 条工作流,运行 voting-app-helm-demo-workflow-dev 工作流来更新 dev 环境的 result 服务。
添加图片注释,不超过 140 字(可选)
构建日志的内容会存储在 AWS S3 对象存储中,在工作流运行时可点击查看实时构建日志,当构建失败时可辅助排查问题。
添加图片注释,不超过 140 字(可选)
工作流执行完毕后,会将新的镜像推送到 AWS ECR 镜像仓库中,并使用该镜像更新 dev 环境的 result 服务,实现微服务的持续部署。
添加图片注释,不超过 140 字(可选)
登录 AWS 对象存储控制台查看,构建中配置的归档文件被成功上传。
添加图片注释,不超过 140 字(可选)
在实际使用中,还可以充分利用工作流的触发器能力:只需在工作流中配置开启 Git 触发器便可实现代码变更后自动构建部署服务的全部流程,缩短代码到交付的时间周期,具体使用可参考 代码变更自动触发工作流 | Zadig 文档 [3]
创建版本
在 Zadig 平台上持续部署验证迭代出稳定的服务版本后,可创建完整的 Helm Chart 版本(比如:用于和内部发布系统对接)。
访问项目的 版本管理 -> 创建版本 ,填写版本基本信息:
添加图片注释,不超过 140 字(可选)
选择环境和服务后点击 添加 ,点击 下一步 :
添加图片注释,不超过 140 字(可选)
选择 AWS 镜像仓库和 Chart 仓库,填写版本号后点击 完成 即可基于指定环境创建服务版本。
添加图片注释,不超过 140 字(可选)
创建完毕后,可查看版本详情、将完整的 Helm Chart 包下载到本地,企业内部系统也可以从对应的 Chart 仓库中获取该版本。
添加图片注释,不超过 140 字(可选)
更多场景
对于暂时不便于迁移容器部署的场景,比如基础设施本身是可网络互通的设备:IoT 物联网场景下自动驾驶车辆主机端、工厂可连接设备...等,也可以结合 Zadig 的主机类型项目和 AWS 主机资源对服务进行持续交付,具体使用方法可参考教程: 如何使用现有主机 + Zadig 自动化交付产品 [4]。
添加图片注释,不超过 140 字(可选)
扩展阅读
- Zadig 玩转腾讯云全家桶TKE/EKS/TCR/COS/CVM...
- Zadig 玩转华为云全家桶 CCE/SWR/OBS/ECS...
- Zadig 玩转阿里云全家桶 ACK/ACR/OSS/ECS...
- 是时候和 Jenkins 说再见了
- 不想放弃 Jenkins?这么做也能云原生
- Zadig 推出环境睡眠,平均节省一半测试资源
- Zadig vs. Jenkins 详细比对:时代的选择与开发者之选
立即体验 Zadig V2.0 新架构,开启高效交付之旅!🚀