首页 > 其他分享 >阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台

阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台

时间:2023-12-26 16:23:42浏览次数:52  
标签:Serverless ACK 平台 深势 任务 集群 Argo

作者:田双坤、于雪

前言

深势科技是“AI for Science”科学研究范式的引领者和践行者,致力于运用人工智能和多尺度模拟仿真算法,结合先进计算手段求解重要科学问题,为人类文明最基础的生物医药、能源、材料和信息科学与工程研究打造新一代微尺度工业设计和仿真平台。

对于深势的科学家和用户来讲,每天都要进行大量的仿真计算和实验,对应有数以万计的任务需要运行,于是深势科技构建了自己的机器学习任务平台,来实现任务开发训练的自动化提交运行,但是随着业务发展,任务数量和复杂度急剧增大,平台出现了许多的痛点。

业务痛点

在使用任务平台的过程中,主要遇到以下痛点:

1)无法高效弹性

业务具有峰值高,并发大的特点,高峰期可能达到万节点,资源供给不足,会导致业务失败。 在任务跨系统调用时,等待时会产生空闲 Pod,一昧空转会导致资源浪费。

2)运维困难

任务引擎基于开源构建,在出现问题时,需要专业的人来定位问题,由于用户提交的任务参数复杂,步骤多,常常需要耗时数小时,成本巨大。为了避免业务之间的相互影响,按照业务区分了不同的集群,进一步加剧了运维的困难程度。

3)稳定性低

在集群中运行非常多的工作流时,管控面压力太大,会导致集群不可用,业务受损,并且任务失败重试机制不完善,整体任务完成率低。

4)安全风险

权限控制困难,无法做到用户级别的权限控制,有很多潜在的不稳定因素,难以保证业务和主机安全。

全托管 Serverless Argo 工作流

Argo Workflows 是 CNCF 毕业项目,最受欢迎的云原生工作流引擎,无缝兼容 Kubernetes,在机器学习、数据处理、CI/CD、自动化等场景下有着非常广泛的应用。

为使企业可以更加轻松地编排工作流,在短时间内轻松运行大规模机器学习或数据处理的计算密集型作业,快速运行 CI/CD 流水线,阿里云分布式云容器平台 ACK One 提供无服务器模式的分布式工作流 Argo 集群功能(Serverless Argo),使用阿里云弹性容器实例 ECI 运行工作流,通过优化 Kubernetes 集群参数,实现大规模工作流的高效弹性调度,同时配合抢占式 ECI 实例,优化成本。

ACK One Serverless Argo 托管了开源 Argo Workflows,完全兼容社区标准,并且在其基础上有众多增强:

1)跨地域高弹性,资源按需

结合大规模 Serverless Pod 以及跨地域算力调度,在高峰期能够调度到数十万弹性资源,完美应付算力高峰。

增强开源 Argo Suspend 机制,减少跨系统间调用时的资源空转浪费,节省成本。

2)开箱即用,无需运维

Serverless Argo 紧跟开源社区,托管并加强了开源 Argo Workflows,支持大 Workflow(5000+Pod),大规格参数,运行时更新重试,机器学习工程师无需感知底层架构,5 分钟即可获得一个稳定高性能的工作流引擎。

3)集群高可靠

通过众多大规模使用场景沉淀,Serverless Argo 对集群的管控面进行了针对 Workflow 类型任务的参数调优,提升了管控面稳定性,对无效资源进行定期清理,保证集群的长期稳定运行。

4)安全

结合阿里云权限控制,Serverless Argo 能够提供精细化的权限控制。支持 RAM 账号 SSO 登陆,Namespace 级隔离,有效降低集群安全风险。

Serverless Argo 平台非常好的满足了深势科技对于机器学习任务平台高效弹性、免运维、高可靠、安全等方面的需求,迁移也是水到渠成的结果。除此之外,平台还在事件驱动、数据访问、社区差异化等方面有许多优化和增强,让不同类型用户在 ACK One Serverless Argo 平台上得到适配更多场景、更丰富的能力,可以更便捷的构建起符合自身业务需求的工作流平台。

5)事件驱动

托管了 Argo Events,一键开启,并且整合支持了 MNS、OSS 等阿里云产品和开源 Git 等事件源的驱动,自动化的触发任务运行,可以帮助用户构建事件驱动的全自动化工作流平台。

6)数据访问

支持高带宽读,提供的 CNFS 支持 NAS、OSS、CPFS 混合使用和多链路加速访问, 支持 20GB+ 读带宽。提供分布式缓存加速能力,提高数据访问性能,减少任务启动时延,有效节省成本。

7)社区版差异化

相比开源的 Argo Workflows,除了稳定性、可靠性的保障之外,还提供许多的差异化能力,来提高用户工作流的成功率和可观测性:

  • 自动化感知任务失败原因(OOM、Spot Release、磁盘不足等)并 Retry 和自适应 Pod 资源扩容。
  • 工作流 DAG FailFast、Continue On 逻辑优化和 UpdateAPI 增强,支持运行时更新。
  • 工作流端到端成本/资源观测支持、Inputs/Outputs Artifacts UI 可观测支持。
  • 超大输入参数工作流支持。加速工作流间参数解析,支持更扁平(2000+Step)工作流。

迁移成果

在技术方面,深势科技联合 ACK One 团队将之前积累的多项特性一同贡献给社区,进一步提高 Argo Workflows 项目的稳定性和易用性。

在业务方面,由于 Serverless Argo 完全兼容开源 Argo Workflows,所以原平台的各个业务模板可以达到无需修改、无缝迁移,在一周之内就完成了机器学习任务平台的整体迁移。原本分散的多个集群,如今在 Serverless Argo 平台的助力下,被整合成一个高效、统一的集群,这一变革使运维成本显著降低,简化了管理流程,并提升了系统的整体性能。

深势科技 Lebesgue 基础服务负责人孙建翔对迁移过程中的顺利进展表示满意。他特别提到:“阿里云的积极协助在整个迁移过程中起到了关键作用。他们的专业团队为我们提供了全方位的支持,从方案设计到实施迁移,都给予了我们极大的帮助。无论是多大的工作负载,Serverless Argo 平台都能轻松应对,其出色的弹性和扩展性让我们倍感安心,用户对于超大工作流的拉起速度的提升表示高度赞赏。有了 Serverless Argo 平台的强大支持,我们有信心将更多的业务迁移至该平台,从而进一步提升研发效率,加速产品的迭代和创新。我们期待着在 Serverless Argo 平台的助力下,不断突破技术瓶颈,为用户提供更加卓越的产品和服务体验。”

未来

随着模拟仿真、科学计算等大规模数据处理需求越来越多,ACK One Serverless Argo 会继续在弹性、稳定性等方面进行增强,更好的支持大规模数据处理的运行。在 CI/CD、自动化方面也会适配更多场景,驱动基础设施的自动化改造。欢迎使用钉钉搜索群号加入我们。(钉钉群号:35688562)

点击此处,了解分布式工作流 Argo 集群详情。

标签:Serverless,ACK,平台,深势,任务,集群,Argo
From: https://www.cnblogs.com/alisystemsoftware/p/17928394.html

相关文章

  • PyQt报错:Cannot load backend 'Qt5Agg' which requires the 'qt5' interactive framew
    PyQt报错:Cannotloadbackend'Qt5Agg'whichrequiresthe'qt5'interactiveframework,as'headless'iscurrentlyrunning问题描述在远程链接ubuntu虚拟机进行开发时,报错。解决方案原因是pyqt需要绘制UI,而使用远程链接的终端(如windowspowershell、xshell、vscodetermi......
  • Xmake v2.8.6 发布,新的打包插件:XPack
    Xmake是一个基于Lua的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了Lua运行时。它使用xmake.lua维护项目构建,相比makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。我们......
  • linux声音处理 alsa & jack 是什么
    alsa(AdvancedLinuxSoundArchitecture)是什么:简单的说,linux之前的内核里处理声音使用oss,后来大家觉得不好用,重写了声音部分,改名叫alsa(更高级的),并且提供了用户空间库(alsa-lib),供应用程序方便调用。官方说明:高级Linux声音架构(ALSA)为Linux操作系统提供音频和MIDI......
  • webpack(概念)
    入口(entry)入口起点(entrypoint)指示webpack打包起点。构建依赖图(dependencygraph)的开始。默认值是 ./src/index.js。可以配置,如下:webpack.config.jsmodule.exports={entry:'./path/to/my/entry/file.js',};输出(output)output告诉webpack在哪里输出它所创建的 bu......
  • 如何在 WindowManager.addView 中使用 Jetpack Compose
    如何在WindowManager.addView中使用JetpackCompose一、引出问题Android开发中,很常见的一个场景,通过WindowManager.addView()添加一个View到屏幕上。Android最新的视图框架JetpackCompose,如何应用进来。这个被添加的View如何使用Compose编写视图呢?二、探究问题......
  • CentOS 适合 Debian Package 还是 RPM Package
    CentOS使用的是RPM(RedHatPackageManager)包管理系统,而Debian系统使用的是dpkg(DebianPackage)包管理系统。因此,CentOS适合使用RPMPackage。如果您在CentOS上安装软件,通常会使用yum命令(或者在较新的版本中可能使用dnf命令),而这些命令会处理RPM包的安装和管理。相......
  • 20、布局(QStackedWidget)
    QStackedWidget是Qt框架中的一个容器类,它可以用来管理多个窗口或页面,只显示其中一个窗口或页面。在QStackedWidget中,只有当前激活的窗口或页面可见,其他窗口或页面被隐藏。使用QStackedWidget可以方便地实现页面切换效果,比如制作一个具有多个页面的向导,或者实现一个选项卡......
  • 使用WebStack和Laravel打造个人网址导航安装过程问题和详解记录
    前言最近测试了国内推出的多个AI大模型,为了方便记录同时方便推荐给朋友想做个AI工具网址导航。网上开源的项目有很多,最后选中了WebStack和Laravel,但是不知道是否作者长时间不更新了遇到不少问题,解决完记录一下。准备工作,购买云服务器,安装宝塔,解析域名解析等等正文1.登录宝塔创建站......
  • CLR/C++回调函数callback和C# delegate的互相转换
    在进行CLR/C++进行开发的时候会经常遇到C++回调函数和C#的delegate之间的相互转换,例如在C++非托管类型的代码中的回调函数需要使用C#类的函数,或者是在C#代码中需要使用非托管C++的函数,这时候就需要在回调函数和delegate代理之间进行转换。C++:回调函数:typedefvoid(*pfunc)(in......
  • Flutter中 关于package:flutter/cupertino.dart和package:flutter/material.dart的区
    import'package:flutter/cupertino.dart';和import'package:flutter/material.dart';这两个语句分别用于导入Flutter框架中的不同部分,而且它们通常用于创建不同风格的用户界面。1.import'package:flutter/material.dart';:这是导入Material部分的语句,Material是一种设计......