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

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
简介: 本文基于2024云栖大会田双坤的演讲,介绍了Kubernetes作为云原生操作系统的角色及其在各类任务中的应用,重点探讨了Argo Workflows在Kubernetes上编排并行任务的能力。面对自建Argo Workflows的挑战,如稳定性、成本和安全性等问题,阿里巴巴云推出了全托管的Serverless Argo工作流,提供全托管、免运维、可观测和易集成的特点,显著提升了任务编排的效率和稳定性。适用于数据处理、科学计算、自动驾驶仿真等多个领域。

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




云原生操作系统

Kubernetes与Argo Workflows



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


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


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


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

图片.png

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


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

图片.png

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


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


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

图片.png

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


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


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


开源自建Argo Workflows挑战


图片.png

第一个就是稳定性:


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


第二是成本和规模:


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


第三是安全运维:


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


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



全托管Serverless Argo工作流


图片.png

它主要有以下几个特点:


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


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


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


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


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


图片.png

主要有以下几个方面:


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


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


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


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


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

图片.png

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


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


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


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


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


图片.png

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


并行数据处理


图片.png

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


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


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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
5
5
1
3502
分享
相关文章
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
35 10
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
介绍如何使用ACK Edge与虚拟节点满足DeepSeek部署的弹性需求。
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云ACK+GitLab企业级部署实战教程
GitLab 是一个功能强大的基于 Web 的 DevOps 生命周期平台,整合了源代码管理、持续集成/持续部署(CI/CD)、项目管理等多种工具。其一体化设计使得开发团队能够在同一平台上进行代码协作、自动化构建与部署及全面的项目监控,极大提升了开发效率和项目透明度。 GitLab 的优势在于其作为一体化平台减少了工具切换,高度可定制以满足不同项目需求,并拥有活跃的开源社区和企业级功能,如高级权限管理和专业的技术支持。借助这些优势,GitLab 成为许多开发团队首选的 DevOps 工具,实现从代码编写到生产部署的全流程自动化和优化。
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙