阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: Kubernetes已经成为事实的云原生操作系统,成为业务上云、容器化的标准。从过去无状态应用、企业核心应用,到现在AI时代的数据处理、AI训练、科学仿真等,越来越多的离线任务跑在K8s上。

【阅读原文】戳:阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算

本文整理自2024云栖大会田双坤演讲

 

 

 

云原生操作系统Kubernetes与Argo Workflows

 

 

 

 

Kubernetes已经成为事实的云原生操作系统,成为业务上云、容器化的标准。

 

从过去无状态应用、企业核心应用,到现在AI时代的数据处理、AI训练、科学仿真等,越来越多的离线任务跑在K8s上。

 

如何管理好这些离线任务是新的课题,对于离线任务来说往往不是单个存在,之间往往有着许多的依赖关系,比如上图是一个典型的汽车仿真场景,其中包括了数据收集、数据清洗、算法设计、模拟仿真等。

 

那么如何把这些流程串联起来,提高整体的任务管理和执行效率呢?

 

 

答案是Argo Workflows,Argo workflow是一款专为Kubernetes上编排并行Job设计的一款工作流引擎,能够通过简单的Step或者复杂的DAG将任务编排起来。主要的使用场景有数据处理、科学/自动驾驶仿真、机器学习pipeline、基础设施自动化以及CI/CD等。

 

Argo workflow拥有良好的UI控制台、提交任务后能够在UI上观测到Workflow的运行状况。

 

 

Argo拥有非常活跃的社区、在过去一年中,超过900名贡献者活跃在Argo社区,在整个CNCF项目中排名第三,阿里云也作为核心贡献者来参与了很多的贡献。它在Git上有超过14k的star、在CNCF处于毕业状态,在全球有超过200+的大型公司来使用。

 

可以看到这个项目已经非常稳定、成熟,可以说引领了云原生离线任务编排,成为了在Kubernetes编排任务的标准。

 

无论您是企业的开发人员、运维人员、数据科学家。您都可以使用Argo workflow编排,来提高生产效率。

 

 

这是Argo workflows在kubernetes上的一个架构。其核心组件controller、UI等部署在K8s集群中。

 

用户可以通过UI、Python SDK、Cli等向集群中提交任务。工作流引擎会根据任务的逻辑来动态创建Pod完成任务。

 

有些用户使用开源自建的方式构建自己的工作流引擎,那随着业务增、复杂性提升,研发流程自动化水平的进一步提升,编排的任务越来越多,在使用过程中,也难免会遇到一些问题,尤其是大规模、深水区使用的情况。我们收集了一些用户的反馈,总结出来有以下挑战。

 

 

 

 

开源自建Argo Workflows挑战

 

 

 

 

第一个就是稳定性:

 

runC的方式让多个任务集中在一个机器上,导致资源争抢、出现节点OOM、频繁宕机。大规模工作流调度导致集群控制面异常,集群不可用。工作流Result资源泄露、controlller异常重启。

 

第二是成本和规模:

 

开源Argo workflow对超大工作流支持不完善。如何支持科学计算等复杂的场景。大规模任务运行速度如何保障。业务潮汐效应明显,固定资源池成本高,如何分摊成本。

 

第三是安全运维:

 

如何实现用户认证、鉴权和单点登录。解决CVE安全问题。如何持续升级迭代。减少自建场景下大量的日常问题排查、运维工作。

 

这些问题困扰着用户,往往一个问题需要排查很久,这对人力成本是得不偿失的。为了解决用户遇到的这些问题,聚焦精力在业务创新上,我们结合在过去工作流场景的沉淀,支持自动驾驶、科学计算等场景的客户的经验。推出了全托管的Serverless Argo工作流。

 

 

 

 

全托管Serverless Argo工作流

 

 

 

 

它主要有以下几个特点:

 

全托管:托管了Argo workflows的核心组件。让用户无需运维控制面。

 

免运维:使用Serverless Pod运行任务,按需付费,无需运维节点。

 

可观测:集成了Prommethous、Sls等可观测产品,方便观察工作流的运行情况。

 

易集成:可以便捷的和git、fc、eventbridge等产品进行集成、提高业务的自动化能。

 

这些特点可以让用户得到好的使用体验,方便快捷的上手使用工作流。除此之外,对于系统的核心引擎也针对开源做了针对性增强。来提升整体的性能和稳定性。

 

 

主要有以下几个方面:

 

1)支持超大工作流,单个工作流可达2w,支持数千Pod同时快速启动,以及超大工作流的快速retry,保障Workflow执行成功率。

 

2)超长命令行参数支持,方便科研人员。自动地磁扩缩容。大文件分片上传、垃圾回收,提升整体易用性。

 

3)修复开源版本多个稳定性问题,避免控制面Crash,OOM等,增强引擎稳定性。

 

4)任务运行过程并行优化,并行更新Pod,解析Artifacts等。管控面参数全面调优,有效提升性能。

 

通过这些在核心引擎上的提高。有效地保障了集群的稳定和性能。

 

 

总结一下全托管工作流的优势:

 

简单易用的工作流引擎:五分钟即可开启并提交工作流,并且完全兼容开源,方便将原生工作流迁移过来。

 

稳定高性能:经过控制面调优,修复社区版本稳定性问题,整体提升工作流引擎稳定性可靠性,比如深势科技使用全托管的工作流、大规模编排科学计算任务、使用数万核的算力运行任务,系统稳定性大幅提高。

 

专业支持,兼顾效率与成本:我们沉淀出众多领域的最佳实践,可以帮助您构建高效工作流。拥有专业的团队支持,有社区的Maintainer帮助处理工作流引擎优化问题,只需专注于业务创新。通过Serverless方式运行任务,按需使用,无需预留资源,支持高并发,有效节省成本。

 

下面我再分享一些领域的经典实践。

 

 

Serverless Argo应用广泛,在各个领域都有最佳实践,包括不限于:汽车行业大规模的自动驾驶仿真、科学计算行业的复杂的工作流模拟、金融行业的自动化分析预测、数字媒体行业的视频数据处理等。

 

 

 

 

并行数据处理

 

 

 

 

下面我们演示一个并行数据处理的demo,主要流程是合并oss上的500多个文件,每个文件有一个字符,他的整个主流程是串行的,但是每一个主流程中间会启动多个pod进行并行加速数据处理,比如这里第一步启动256个pod来加速512个文件的处理,第二步启动128个pod加速处理上一步的输出结果。依次类推,最终做一个Merge操作。

 

可以看到使用Serverless Argo编排任务非常流畅、简洁、并且支持规模化并行。如果大家感兴趣,欢迎来进行试用。

 

https://www.alibabacloud.com/help/zh/ack/overview-12

 

阿里云容器团队诚招内转【开发&SRE】【产品经理】【PDSA】- 杭州、北京、深圳的岗位均可,欢迎大家帮助推荐。



我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
27天前
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
2月前
|
专有云 Serverless 持续交付
亚太唯一,阿里云再度入选Gartner®容器管理魔力象限领导者
Gartner正式发布 2024《容器管理魔力象限》报告,阿里云再度成为中国唯一一家入选「领导者象限」的科技公司。
|
2月前
|
人工智能 专有云 Serverless
亚太唯一!阿里云再度入选Gartner®容器管理魔力象限领导者
亚太唯一!阿里云再度入选Gartner®容器管理魔力象限领导者
107 2
|
3月前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
3年前的云栖大会,我们发布分布式云容器平台ACK One,随着3年的发展,很高兴看到ACK One在混合云,分布式云领域帮助到越来越多的客户,今天给大家汇报下ACK One 3年来的发展演进,以及如何帮助客户解决分布式领域多云多集群管理的挑战。
阿里云容器服务 ACK One 分布式云容器企业落地实践
|
3月前
|
人工智能 Prometheus 监控
使用 NVIDIA NIM 在阿里云容器服务(ACK)中加速 LLM 推理
本文介绍了在阿里云容器服务 ACK 上部署 NVIDIA NIM,结合云原生 AI 套件和 KServe 快速构建高性能模型推理服务的方法。通过阿里云 Prometheus 和 Grafana 实现实时监控,并基于排队请求数配置弹性扩缩容策略,提升服务稳定性和效率。文章提供了详细的部署步骤和示例,帮助读者快速搭建和优化模型推理服务。
184 7
使用 NVIDIA NIM 在阿里云容器服务(ACK)中加速 LLM 推理
|
3月前
|
人工智能 Prometheus 监控
使用NVIDIA NIM在阿里云ACK中加速LLM推理
介绍在阿里云ACK集群上结合AI套件能力快速部署NVIDIA NIM模型推理服务,同时提供全面的监控指标和实现弹性伸缩。
使用NVIDIA NIM在阿里云ACK中加速LLM推理
|
3月前
|
Kubernetes 网络虚拟化 Docker
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
文章提供了一个解决方案,用于在无法直接访问Google镜像仓库的情况下,通过使用阿里云镜像来下载kubeadm所需的Kubernetes镜像。
313 4
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
|
3月前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
|
3月前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
阿里云ACK容器服务生产级可观测体系建设实践
|
4月前
|
运维 Kubernetes Devops
阿里云云效操作报错合集之k8s直接返回401,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之k8s直接返回401,该如何排查