前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Argo Workflows v3.0

Argo Workflows v3.0

作者头像
CNCF
发布2021-03-15 15:54:48
1.6K0
发布2021-03-15 15:54:48
举报
文章被收录于专栏:CNCFCNCF

作者:Alex Collins

自三年前成立[1]以来,Argo Workflows[2]取得了令人难以置信的成就,我们感到无比自豪!

  • 2017年10月17日——第一个commit
  • 2018年2月6日——2.0版本用Go重写
  • 2019年9月2日——获得第1000个星星
  • 2020年4月17日——成为CNCF孵化项目[3]
  • 2021年1月22日——373位贡献者,2k个提交,7300个星星,1300个分叉,5.2万位Slack成员

这一切都在支持我们——我们宣布Argo Workflows 3.0版。

Argo Workflows是什么?

Argo Workflows是云原生工作流引擎,可以运行10000个并发工作流,每个工作流有1000个步骤。

我可以用它做什么?

  • 机器学习
  • ETL,数据分析和数据科学
  • 数据处理管道
  • 批处理
  • Serverless
  • CI/CD

谁使用Argo?

Argo被用于CERN的“发现新物理”,用于CoreWeave的3D渲染(在1000个节点的集群上使用6000个GPU),以及Intuit的机器学习和数据处理平台。Argo Workflows在生产中得到了超过100家企业的积极应用,包括Adobe、阿里云、贝莱德、Capital One、Data Dog、Datastax、谷歌、GitHub、IBM、Intuit、NVIDIA、SAP、New Relic和RedHat。

我为什么要用Argo?

当我们询问使用Kubeflow、Apache气流、AWS Batch、AWS Lambda、KNative、TektonCD和Jenkins等工具的用户的原因时,他们说他们喜欢Argo,因为它是云原生、简单、快速、可伸缩性和性价比高。

每个版本都有重大的新特性

在过去的12个月里,每个版本都有一些主要的新特性:

  • v2.12: reports and metrics, SSO+RBAC
  • v2.11: webhooks, memoization
  • v2.10: Java and Python SDKs, semaphores, and mutexes
  • v2.9: single-sign-on, Windows support, workflow template ref
  • v2.8: cluster workflow templates
  • v2.7: submittable workflow templates, Prometheus metrics
  • v2.6: Gomodules, filtering labels
  • v2.5: API server, the workflow archive, cron workflows

那么Argo Workflows3.0有什么新内容呢?

  • Major upgrade (20k new lines of code) to the user interface with many new features and much more robust
  • Brand new APIs for Argo Events
  • Controller High-Availability
  • Key-only artifacts make it easier to perform map-reduce operations
  • Moving the repository
  • Go modules support

Argo Events API和UI

Argo Workflows v3.0带来了一个新的UI,现在也支持Argo Events!UI也更加健壮和可靠。

  • New API endpoints for Argo Events
  • New event-flow page
  • Create, edit, and view log event sources and sensors in the UI
  • Embeddable widgets
  • New workflow log viewer
  • Configurable “Get Help” button
  • More configurable link buttons (e.g. for linking into your logging facility)
  • Seamless reconnection on network errors
  • Refactored code to use more robust React functional components

event-flow页面允许用户了解事件源和传感器如何连接在一起,以及如何链接触发器创建的工作流,以及在看到消息时显示动画。

Event-flow

你可以在用户界面中直接创建和更新事件源和传感器,使用与工作流相同的可视化语言:

Event Sources

我们添加了一些简单的小部件,你可以使用它们来嵌入工作流或由工作流模板或cron工作流创建的最新工作流的状态和进度:

Widgets

与手工编辑工作流不同,你还可以通过模板提交:

Workflow Creator

日志查看器已经更新,使你可以更容易地查看init和等待容器(帮助调试工件问题)。它也允许你跟踪整个工作流程:

Log Viewer

如果你想亲自尝试它,你可以查看一下测试环境[4]

控制器的高可用性

3.0版本引入了热备工作流控制器特性,通过利用Kubernetes领导人选举特性实现高可用性和快速恢复。默认安装支持领袖选举,其中一个有pod,即领袖。当控制器pod崩溃时,Kubernetes将重新启动它。为了减少启动时间,现在可以运行两个pod。第二个pod会处于热备状态如果首领死了,它会立即接管。

代码语言:javascript
复制
kubectl scale deployment/workflow-controller --replicas=2 

Key-Only工件

Argo Workflows 3.0引入了默认工件仓库引用和key-only工件,这两个新特性一起工作。

  • 用户可以为其命名空间配置默认的工件仓库,而不必为每个工作流显式地定义它。
  • 工作流规范不需要提供non-key字段(例如bucket,用户名/密码密钥)。他们可以只使用key(因此是“key-only”),而non-key字段将从工件仓库中继承。
  • 用户可以指定全局引用构件的key,而无需使用参数化的输入和输出。
  • 更容易指定扇入工件模式,简化了map-reduce风格的工作流。

因此,我们不再需要复制清单中的non-key元素,从而减少了工作流所需的磁盘空间。

新的仓库位置

我们将重命名Argo Workflows库为argo-workflows而不是argo。新名称清楚地表明,这是Argo Workflows的仓库,而不是整个Argo项目。

当仓库被重命名时,Github会自动转发,所以用户不会受到重大影响。

Go Modules + Go Client v1.19

在2020年,我们迁移到Go模块。不幸的是,迁移到Go模块是个重大变化,我们没有完成工作,在没有一些hackery下是不能够go get github.com/argoproj/argo。v3版本将解决这个问题。

v2.12的长期支持

我们计划为v2.12提供长期支持。在6个多月的时间里,将会修复bug,但不会有新的功能。

我们期望的后移植内容:

  • 错误修正。
  • 完成v1.12中完整的新特性(例如SSO+RBAC)。

我们不打算进行后移植:

  • 基于3.0版本独有重构的UI bug修复。但是你可以使用v2.12控制器运行v3.0 UI。
  • 新特性。

下一步

Argo Workflows v3.1将包含增强功能,使用工件和条件工件更容易地编写扇出扇入工作流。

鸣谢

一个人是完成不了这些的,因此在核心团队之外,我们必须鸣谢以下主要贡献者:

  • Daisuke Taniwaki — Preferred Networks
  • 唐源 — 蚂蚁集团
  • Mark White
  • Daniel Herman
  • Sam Elder — Keblotix
  • Michael Crenshaw — Colaberry/CCRi
  • Xianlu Bird — 阿里云
  • Peter Salanik — CoreWeave
  • J.P. Zivalich — Pipekit
  • Niklas Hansson — Sandvik CODE
  • Antoine Dao — Pollination
  • Clemens Lange — CERN
  • Vaibhav Page — Blackrock
  • Sumit Nagal — Intuit
  • David Breitgand — IBM

参考资料

[1]

成立: https://blog.argoproj.io/introducing-argo-a-container-native-workflow-engine-for-kubernetes-55c0b4b76fac

[2]

Argo Workflows: https://github.com/argoproj/argo-workflows

[3]

成为CNCF孵化项目: https://www.cncf.io/blog/2020/04/07/toc-welcomes-argo-into-the-cncf-incubator/

[4]

测试环境: https://workflows.apps.argoproj.io/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Argo Workflows是什么?
  • 我可以用它做什么?
  • 谁使用Argo?
  • 我为什么要用Argo?
  • 每个版本都有重大的新特性
  • 那么Argo Workflows3.0有什么新内容呢?
  • Argo Events API和UI
  • 控制器的高可用性
  • Key-Only工件
  • 新的仓库位置
  • Go Modules + Go Client v1.19
  • v2.12的长期支持
  • 下一步
  • 鸣谢
    • 参考资料
    相关产品与服务
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档