问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

云原生时代:从Jenkins到Argo Workflows,构建高效CI Pipeline

发布网友 发布时间:2024-10-08 06:30

我来回答

1个回答

热心网友 时间:2024-11-15 19:40

Argo Workflows

Argo Workflows是用于在Kubernetes上编排Job的开源云原生工作流引擎。它可以轻松自动化和管理Kubernetes上的复杂工作流程,适用于各种场景,包括定时任务、机器学习、ETL和数据分析、模型训练、数据流pipline、CI/CD等。

Kubernetes Jobs只提供基础的任务执行,但无法定义步骤依赖关系和顺序、缺乏工作流模版、没有可视化界面,也不支持工作流级别的错误处理等。对于批处理、数据处理、科学计算、持续集成等业务场景,Kubernetes Job无法胜任。

CI与Jenkins

持续集成和持续部署(CI/CD)是软件开发生命周期中的重要部分,它允许团队以敏捷流程开发应用并提高所构建应用程序的质量。持续集成(CI)是面向开发者的自动化流程,经测试、构建等步骤,有助于更频繁、可靠地将代码变更提交到主分支。

Jenkins作为CI/CD领域最常见的解决方案,具有开源免费、插件丰富、社区成熟等诸多优点,但仍然存在一些问题,尤其是云原生大背景的当下:

•非kubernetes原生;

•随着pipeline和插件的增加,Jenkins会面临性能瓶颈;

•自动扩展能力不足,并发不足,运行时间长,空闲计算浪费成本;

•维护成本方面,虽然Jenkins的插件生态系统丰富,但这也可能导致插件版本不兼容、更新不及时或安全漏洞等问题,管理插件更新和权限是一个持续的挑战;

•项目隔离/权限分配方案的缺陷等。

Argo Workflows与Jenkins的对比

相比于Jenkins,Argo Workflows有诸多优势。Argo Workflows构建在Kubernetes之上,使其具有Kubernetes经过时间考验的优势,其Autoscaling和并发等能力,使得Argo Workflows可以处理大规模的pipelins,具有更快的运行速度,和更低的费用/使用成本,让开发者更加聚焦业务功能和为客户提供、传播价值;并且与Argo生态的Argo CD、Argo Rollout、Argo Event的无缝集成,为CI等场景提供更强大的能力。您可以基于Argo Workflows来构建更加云原生、大规模、高效率、低成本的CI Pipeline。

ACK One Serverless Argo工作流的CI Pipeline

ACK One Serverless Argo工作流作为一款完全遵循社区规范的全托管式Argo Workflows服务,致力于应对大规模计算密集型作业,通过集成阿里云ECI实现自动扩展和极致弹性、按需扩容以最小化成本,通过使用spot ECI(抢占式ECI实例)可以降低80%成本。

CI Pipeline 概述

基于ACK One Serverless Argo工作流集群构建CI Pipeline,主要使用BuildKit实现容器镜像的构建和推送,并使用BuildKit Cache加速镜像的构建,使用NAS来存储Go mod cache加速go test和go build,最终大幅加速CI Pipeline流程。

我们将实现的CI Pipeline的Cluster Workflow Template预置在工作流集群中(名为ci-go-v1),其中主要包含3个步骤:

1.Git Clone&Checkout:Clone Git仓库,Checkout到目标分支;并获取commit id。

2.Run Go Test:通过参数控制是否运行,使用NAS存储Go mod cache进行加速。

3.Build&Push Image:

a.使用BuildKit构建和推送容器镜像,并使用BuildKit Cache中 registry类型cache来加速镜像构建;

b.镜像tag默认使用 {container_tag}-{commit_id} 格式,可在提交工作流时通过参数控制是否追加commit id;

c.推送镜像的同时,也会推送覆盖其latest镜像。

您可执行以下步骤完成CI Pipeline的运行,详细步骤请参见最佳实践:

1.在工作流集群中准备好ACR EE的凭据和NAS存储卷

2.基于预置模板启动工作流(workflow)运行CI Pipeline

预置CI Pipeline模板

工作流集群中默认已经预置了名为ci-go-v1的工作流模板(ClusterWorkflowTemplate),yaml如下所示,详细参数说明请参见最佳实践:

在控制台运行CI Pipeline

1.登录ACK One工作流集群控制台;

2.在基础信息,开启工作流控制台(Argo),并访问进入页面;

3.左侧菜单栏Cluster Workflow Templates,单击ci-go-v1预置模板进入详情页;

4.单击+SUBMIT,在右侧填入您的参数,单击下方+SUBMIT。

参数说明:

执行完以后,可在Argo UI的workflow详情页查看运行情况,如下所示:

总结

ACK One Serverless Argo工作流作为全托管的Argo工作流服务,可以帮助您实现更大规模、具有更快的运行速度、及更低成本的CI Pipeline,与ACK One GitOps(Argo CD)、Argo Event等事件驱动架构可以构建完整的自动化CI/CD Pipeline。

欢迎加入ACK One客户交流钉钉与我们一同交流。(钉钉群号:35688562)

相关链接:

[1] Argo Workflows

argoproj.github.io/argo...

[2] ACK One Serverless Argo工作流

help.aliyun.com/zh/ack/...

[3] 抢占式ECI实例

help.aliyun.com/zh/eci/...

[4] BuildKit

github.com/moby/buildki...

[5] BuildKit Cache

github.com/moby/buildki...

[6] 最佳实践

help.aliyun.com/zh/ack/...

[7] ACK One工作流集群控制台

account.aliyun.com/logi...

[8] ACK One GitOps

help.aliyun.com/zh/ack/...

我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。 欢迎关注 “阿里云基础设施”同名 微信、 微博、 知乎 获取关于我们的更多信息~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 猫发情期是几月 猫一般几岁发情? 无线网卡连上电脑怎么重启或关机了还得从新连接啊,这个怎么样设置啊... 我笔记本电脑死机了然后重启了一下就什么都没了?那是什么原因啊? 神兽金刚小游戏游戏简介 坠入星河的温柔网名有哪些 中秋节出生的女孩子起名字,爸爸姓段 延边长白虎vs辽宁盘锦宏运比分多少 韩国有姓付的吗 韩国姓氏的起源 面对社会压力,如何调节自己的生活状态? ...衣服泡在一起,那见衣服褪色的,把我的衣服染上了颜色,有什么办法可 ... 一个木材商人,如何将同治帝和慈禧太后骗得团团转 《圆明国的毁灭》中的太后是谁 尹比加兰个人简介 装修工程资质可承接工程范围有哪些 吕梁中考分数线是多少? 吕梁中考分数线什么时候公布 辞职时,歇工期间发的还给公司吗 歇工的近义词 怎样给微信设置自定义铃声~ ...欲学,恐已暮矣!” 师旷曰:“何不炳烛乎?” 平公曰:“安有为人臣而... 豉椒墨鱼球制作工艺 豉椒墨鱼球食疗作用 中山a类是什么意思? 富钟水牛的产区环境 可可蔓越莓华夫饼(面团版)做法大全 别样华夫饼做法大全 杭州老鸭汤做法: 鸭汤的做法(老鸭汤的做法) 苹果5s 腾讯视频突然不管看了 这是什么情况。无线网信号满格 用腾讯微... 苹果5S手机里的腾讯视频放电视剧的时候手机不会发热,为什么PPS会发热?而... iphone5s腾讯视频加载不出来 苹果5s看腾讯视频自动关机怎么办 为什么我的iphone5S安装的腾讯视频软件,视频打开后广告结束,视频缓冲... ...有的都拒绝几次,加其他群时为何总显示请求发送失败呢?可以... QQ群,在一个群邀请另一个群成员加入,这个怎么关闭?就是那种关闭以后别人... 身份证一般什么时候多少天能出来 家常手工花卷的做法 爱心与责任:用智慧教育孩子40招内容简介