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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache Pulsar 在微信大流量实时推荐场景下实践
导语 本文整理自 8 月 Apache Pulsar Meetup 上,刘燊题为《Apache Pulsar 在微信的大流量实时推荐场景实践》的分享。本文介绍了微信团队在大流量场景下将 Pulsar 部署在 K8s 上的实践与优化、非持久化 Topic 的应用、负载均衡与 Broker 缓存优化实践与COS Offloader 开发与应用。 作者简介 刘燊,腾讯微信高级研发工程师,Apache Pulsar Contributor。 在通信社交领域,微信已经成为国内当之无愧的社交霸主。用户人数在 2018 年突破了 10 亿,截至 2021 年第三季度末,微信每月活动账户总数已达到 12.6 亿人,可以说,微信已经成为国人生活的一部分。 微信的业务场景包括推荐业务、风控、监控系统、AI 平台等。数据通过 SDK 和数据采集方式接入,经由 MQ、Kafka、Pulsar 消息中间件,其中 Pulsar 发挥了很大的作用。中间件下游接入数据计算层 Hadoop、Spark、Flink、ClickHouse、TensorFlow 等计算平台,由于本次介绍实时推荐场景,因此较多使用 Flink...
- 下一篇
NanoMQ 新版本,更强大的 MQTT over QUIC 桥接 & Azure 桥接
金秋十月,NanoMQ 继续保持稳步更新,最新的 0.13 版本将于近日正式发布。此版本的更新继续聚焦于桥接功能部分:为原来的 MQTT over QUIC 桥接功能增加了多路桥接和更丰富的 QUIC 传输层配置参数,新增了内置的 Azure 桥接功能。另外新增了规则引擎消息重发布功能。 更完善的 MQTT over QUIC 桥接 在 0.12 版本中推出的 MQTT over QUIC 桥接功能与 EMQX 5.0 配合使用得到了用户的热烈反响。在 0.13 版本中,我们为此功能进行了多项加强: 多路桥接 原先的 MQTT over QUIC 桥接功能只能支持连接一个服务端,这无法满足多路数据同步和传输的要求。与传统的基于 TCP 的 MQTT 连接相同,NanoMQ 也为基于 QUIC 的桥接功能的传输层做了优化,使其能够支持同时建立多个 MQTT over QUIC 连接。用户只需要和使用标准 MQTT 桥接功能一样,在配置文件中设置多个桥接目标配置(只摘录部分相关): ## Bridge via both TCP & QUIC ## ## 以同时桥接到EMQX公...
相关文章
文章评论
共有0条评论来说两句吧...