大规模微服务想上 K8s?用 Zadig 实在香!
Zadig on Github / Zadig on Gitee
大家对 CI/CD 的概念并不陌生,但真实世界的 CI/CD 绝不是一段代码做「构建->部署->发布」那么简单,大部分情况下一个产品是由若干个微服务组成的,而微服务之间互相有依赖,不同角色基于不同测试环境进行协作。这里给大家介绍一个典型的微服务架构项目,如何用 Zadig 实现全流程自动化、持续交付。该项目包含 Python, Redis, Postgres, Node.js, and .Net 等前后端、数据库、中间件、相对典型的微服务应用程序组合。
大家对 CI/CD 的概念并不陌生,但真实世界的 CI/CD 绝不是一段代码做「构建->部署->发布」那么简单,大部分情况下一个产品是由若干个微服务组成的,而微服务之间互相有依赖,不
准备工作
本案例所用代码及配置 fork 自 GitHub Zadig 仓库,主要包括:
-
案例中 5 个服务的 Kubernetes YAML 配置:YAML
-
案例中 3 个业务服务的 Dockerfile 文件:result、vote、worker
接入 GitHub 代码源
第一步:新建 GitHub OAuth 应用程序
-
个人账号下的代码库接入:可以通过点击用户名 -> Settings -> Developer settings -> OAuth Apps 来新建应用程序。
-
GitHub Organization 下的代码仓库接入:可以通过点击 Organization Settings -> Developer settings -> OAuth Apps 来新建应用程序。
下面以 GitHub Organization 为例,如下所示。
-
打开 Organization Settings。
-
选择 Developer settings -> OAuth Apps,点击 New OAuth App 新建应用程序。
第二步:配置 GitHub OAuth 应用程序
在
新建应用程序页面,你需要进行如下步骤:
-
Application name:zadig,也可以填写可识别的任一名称
-
Homepage URL:http://[koderover.yours.com]
-
Authorization callback URL:http://[koderover.yours.com]/api/directory/codehosts/callback
-
点击注册
第三步:获取 Client ID、Client Secret 信息
应用创建成功后,GitHub 会返回应用的基本信息,点击 Generate a new client secret 生成 Client Secret。
-
此时页面包括完整的 Client ID 、Client Secret。
第四步:将 Client ID、Client Secret 集成到系统
切换到 Zadig 系统,管理员依次点击系统设置 -> 集成管理 -> 代码源集成 -> 点击添加按钮。
依次填入如下已知信息:
-
代码源:此处选择 GitHub
-
Client ID:应用的 Client ID
-
Client Secret:应用生成的 Client Secret
-
Organization:GitHub 要授权的 Organization 名称或者个人 GitHub Username
信息确认无误后点击、前往授权,耐心等待,此时系统会跳转到 GitHub 进行授权。
点击授权按钮,同意授权后,GitHub 会跳转到 Zadig 系统,至此 GitHub 集成完毕。
产品交付
第一步:项目配置
进入 Zadig 系统,新建项目 voting。
进
第二步:创建服务与服务构建
这里我们需要为以下 5 个服务添加服务配置:
-
vote
-
worker
-
result
-
redis
-
db
并为以下三个业务服务添加构建以支持持续交付:
-
vote
-
worker
-
result
注:服务配置指的是 YAML 对这个服务的定义。Kubernetes 可以根据这个定义产生出服务实例。可以理解为 Service as Code 。
Zadig 提供两种方式管理这些模板:
-
系统平台管理:在 Zadig 中直接输入 YAML 。
-
代码仓导入与同步:从某个代码仓库中导入,之后提交到代码仓的 YAML 变更会被自动同步到 Zadig 系统上。
这里,我们使用代码仓导入的方式。案例所需 YAML 配置位于 koderover/zadig 仓库 freestyle-k8s-specifications 文件目录中,现在要做的就是把它们导入。
-
加载服务配置:点击仓库托管 按钮 -> 选择仓库信息 -> 选择文件目录。Zadig 支持一次性导入多个服务,同步 examples -> voting-app -> freestyle-k8s-specifications 文件目录可导入此次案例中所需的 5 个服务。
-
配置服务构建:选择服务 -> 点击添加构建 -> 填写构建脚本。
以 result 服务为例,在构建脚本中填写以下代码:
cd $WORKSPACE/voting-app/<service-directory>
docker build -t $IMAGE -f Dockerfile .
docker push $IMAGE
重复以上配置服务构建过程,完成 vote 、 result 和 worker 的构建配置,注意根据不同的服务修改脚本中的 <service-directory> 参数。
第三步:加入运行环境
-
点击向导的“下一步”。这时,Zadig 会根据你的配置,创建两套环境(dev,qa),以及相关工作流。
-
点击下一步完成向导。至此,onboarding 完成。一个有 5 个微服务的系统,2 套环境、3 条工作流已经产生。
第四步:工作流交付
-
点击运行触发工作流启动。
-
选择需要更新的服务,比如 vote 和 result,点击「启动任务」运行工作流。
-
查看工作流运行状况:
-
下面是项目的总体状态:
-
进入集成环境,查看服务列表并点击 result 和 vote暴露出来的 URL 可以查看网站。
vote 页面:
result 页面:
第五步:配置自动触发工作流
添加触发器,使得代码 Push 或者 Pull Request 都触发 result,vote,worker 三个服务的重新构建和部署:
-
进入工作流配置页面
-
添加 Webhook 触发器
-
配置 Webhook 触发器
-
保存工作流
第六步:代码改动持续交付
-
提交 GitHub PR 修改源代码,交换 vote 服务中 CATS 和 DOGS 的背景颜色。
-
进入 项目->voting->工作流->voting-workflow-dev 查看工作流,可以看到 PR 变更已自动触发工作流执行:
-
待 voting-workflow-dev 工作流执行完毕,进入 项目->voting->集成环境,点击 dev 环境中 vote 服务的服务入口,查看网站结果,可以看见 CATS 和 DOGS 背景栏颜色已被更改。
关于 Zadig
Zadig 是基于 Kubernetes 设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,为开发者提供云原生运行环境,支持开发者本地联调、微服务并行构建和部署、集成测试等。Zadig 内置了面向 Kubernetes、Helm、云主机、大体量微服务等复杂业务场景的最佳实践,为工程师一键生成自动化工作流 。
欢迎大家 Star、Fork、 Watch!和众多开发者一起探讨、交流,共建开源社区!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
图谱相关技术在风控反作弊中的应用和探索
导读:互联网黑产不断发展壮大,作弊模式逐渐变得规模化、产业化,团伙作弊行为日益猖獗。为了进一步提升百度账号的安全和用户体验,维护公司核心利益,百度账号安全策略团队结合自身在账号安全领域的优势,构建了可以处理海量数据、具备丰富扩展性的关联图谱黑产团伙挖掘能力,充分实践应用并不断拓展落地场景,同时也在图神经网络等前沿领域探索相关技术在风控反作弊场景中的应用价值,致力于构建高效、完备的基于图谱的风控反作弊能力。 全文3770字,预计阅读时间14分钟。 一、简介 《中国互联网络发展状况统计报告》显示,截止2021年6月,中国网民规模达到了10.11亿。基于如此庞大的用户群体,使得互联网业务不断飞速发展。围绕着不断成长的互联网生态,自然而然也就催生出了一系列躲藏在隐秘角落里的黑灰产业务。随着技术的进步发展,黑灰产从最初的作坊式的作弊方式也转变成了流程化、规模化、产业化作弊模式,目前网络黑灰产规模也已超千亿,并且已经深入到多种业务场景进行作弊,首当其冲的即是账号系统,接着进入到具体业务场景,从事刷单、薅羊毛、引流、诈骗、洗钱等等欺诈作弊行为。黑灰产行为不仅使互联网公司蒙受金钱损失,长此以往更...
- 下一篇
奖学金获得者的成功案例:Linux 基础培训帮助 SysAdmin 将开源引入政府级应用
LiFT奖学金计划是Linux基金会2011年以来每年举办的活动,LiFT奖学金截至目前已经颁发了1100多项奖项,价值数百万美元。2020年,LiFT奖学金即Linux基金会开源软件学园人才激励计划在中国首办,受到中国大陆和港澳台地区开发者的广泛支持。 2021年Linux基金会开源软件学园人才激励计划进行升级,与去年相比,今年扩大评选人群范围,从社会身份和技术水平对奖学金类别进行分类,无论来自任何行业、从事任何工作,是否和技术有关,只要对技术有兴趣和渴望,就有机会入选。 申请链接:https://training.linuxfoundation.cn/scholarship 在2021年LFOSSA人才激励计划开启之际, Linux基金会对2014年的LiFT奖学金获得者 Sandeep Aryal进行了访谈,了解他在完成 Linux 基金会培训后的情况。Sandeep是尼泊尔政府的系统管理员,他致力推动政府的项目迁移到 Linux和开源系统。他希望借着这个机会让他学会相关技能,从而推动这个数字化转型。 下面是本次访谈的内容: LF:Linux基金会 SA:Sandeep ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器