阿里云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搭建和管理企业级网站应用
相关文章
|
3天前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
26天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
12天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
26天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
26天前
|
Kubernetes 算法 调度
阿里云 ACK FinOps成本优化最佳实践
本文源自2024云栖大会梁成昊演讲,讨论了成本优化策略的选择与实施。文章首先介绍了成本优化的基本思路,包括优化购买方式、调整资源配置等基础策略,以及使用弹性、资源混部等高级策略。接着,文章详细探讨了集群优化和应用优化的具体方法,如使用抢占式实例降低成本、通过资源画像识别并优化资源配置,以及利用智能应用弹性策略提高资源利用效率。
|
26天前
|
弹性计算 调度 数据中心
阿里云 ACK One 注册集群云上弹性:扩展业务新利器
随着企业数字化转型深入,传统IDC数据中心因物理容量限制,难以实现动态扩容,缺乏弹性能力。阿里云ACK One注册集群凭借其高度灵活性和丰富资源选择,成为解决此问题的最佳方案。通过与阿里云资源的整合,ACK One不仅实现了计算资源的按需扩展,提高了资源利用率,还通过按需付费模式降低了成本,使企业能够更高效地应对业务增长和高峰需求。
|
26天前
|
运维 Kubernetes Serverless
阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算
本文基于2024云栖大会田双坤的演讲,介绍了Kubernetes作为云原生操作系统的角色及其在各类任务中的应用,重点探讨了Argo Workflows在Kubernetes上编排并行任务的能力。面对自建Argo Workflows的挑战,如稳定性、成本和安全性等问题,阿里巴巴云推出了全托管的Serverless Argo工作流,提供全托管、免运维、可观测和易集成的特点,显著提升了任务编排的效率和稳定性。适用于数据处理、科学计算、自动驾驶仿真等多个领域。
|
26天前
|
Kubernetes 容灾 调度
阿里云 ACK 高可用稳定性最佳实践
本文整理自2024云栖大会刘佳旭的演讲,主题为《ACK高可用稳定性最佳实践》。文章探讨了云原生高可用架构的重要性,通过Kubernetes的高可用案例分析,介绍了ACK在单集群高可用架构设计、产品能力和最佳实践方面的方法,包括控制面和数据面的高可用策略、工作负载高可用配置、企业版容器镜像服务高可用配置等内容,旨在帮助企业构建更加可靠和高效的应用运行环境。
|
26天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
10天前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
45 12

热门文章

最新文章