vivo AI 计算平台的 ACK 混合云实践

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
注册配置 MSE Nacos/ZooKeeper,118元/月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 本文是vivo AI 计算平台实战系列文章之一,主要分享了平台在混合云建设方面的实践。

者|刘东阳、吴梓洋


2018 年底,vivo AI 研究院为了解决统一高性能训练环境、大规模分布式训练、计算资源的高效利用调度等痛点,着手建设 AI 计算平台。经过两年多的持续迭代,平台建设和落地取得了很大进展,成为 vivo AI 领域的核心基础平台。平台从当初服务深度学习训练为主,到现在演进成包含 VTraining、VServing、VContainer 三大模块,对外提供模型训练、模型推理和容器化能力。平台的容器集群有数千个节点,拥有超过数百 PFLOPS 的 GPU 算力。集群里同时运行着数千个训练任务和数百个在线服务。本文是vivo AI 计算平台实战系列文章之一,主要分享了平台在混合云建设方面的实践。


背景


混合云是近年来云原生领域关注的新方向之一,它是指将私有云和公有云服务结合起来使用的解决方案。目前几大公有云厂商都提供了各自的混合云方案,如 AWS 的AWS Outpost、谷歌的 GEC Anthos 和阿里的 ACK 混合云。大部分厂商都是通过使用 Kubernetes 和容器来屏蔽底层基础设施的差异,对上提供统一的服务。AI 计算平台选择建设混合云,主要是基于以下两点原因。


公有云的弹性资源


平台的集群使用公司自建机房内的裸金属服务器,新增资源的采购流程复杂、周期长,无法及时响应业务临时的大量的算力需求,如大规模参数模型的训练和在线服务的节假日活动扩容。同时由于今年服务器供应链形势严峻,网卡、硬盘、GPU 卡等硬件设备都缺货,服务器采购交付存在较大风险。公有云的资源可以按需申请和释放,通过混合云使用公有云资源,能够满足业务的临时算力需求,又能有效降低成本。


公有云的高级特性


公有云有一些高级的特性,比如 AI 高性能存储 CPFS、高性能网络 RDMA、深度学习加速引擎 AIACC,这些方案或特性目前公司私有云尚不具备,而私有化落地的时间和金钱成本都很高,通过混合云可以快速和低成本的使用这些特性。


方案


方案选型


通过前期调研,以下三种方案可以实现混合云的需求:


1.png

image.gif

方案一的实现成本低、不改变当前资源申请流程,可快速落地。业务可以接受小时级的扩容。因此我们选择了方案一。


整体架构


混合云的整体架构如下图所示。K8s 集群的管理平面部署在公司自建机房,工作平面包含了机房的物理机和阿里云的云主机。机房和阿里云间通过专线打通了网络,物理机和云主机可以相互访问。方案对上层平台透明,比如 VTraining 训练平台不需要改动即可使用云主机的算力。


2.png


落地实践


注册集群


首先需要将自建的集群注册到阿里云。注意使用的 VPC 的网段不能和集群的 Service CIDR 冲突,否则无法注册。VPC 的虚拟交换机和 Pod 虚拟交换机的 CIDR 也不能和机房内使用的网段重合,否则会有路由冲突。注册成功后,需要部署 ACK Agent。它的作用是主动建立从机房到阿里云的长链接,接收控制台的请求并转发给 apiserver。对于没有专线的环境,此机制可以避免将 apiserver 暴露在公网。控制台到 apiserver 的链路如下:


阿里云 ACK 控制台 <<-->> ACK Stub(部署在阿里云) <<-->> ACK Agent(部署在 K8s) <<-->> K8s apiserver


控制台到集群的请求是安全可控的。Agent 连接 Stub 时,会带上配置的 token 和证书;链接采用了 TLS 1.2 协议,保证数据加密;可以通过 ClusterRole 来配置控制台对 K8s 的访问权限。


容器网络配置


K8s 的容器网络要求 Pod 和 Pod、Pod 和宿主机之间通讯正常,平台采用了 Calico + Terway 的网络方案。机房内的工作节点采用 Calico BGP,Route Reflector 会将 Pod 的路由信息同步给交换机,物理机和云主机都能正常访问 Pod IP。阿里云上的工作节点会采用 Terway 共享网卡模式,Pod 会从 Pod 虚拟交换机配置的网段中分配到 IP,该 IP 在机房内可以访问。平台给云主机打上标签,配置 calico-node 组件的 nodeAffinity,不调度到云主机上;同时配置 Terway 组件的 nodeAffinity,让其只运行在云主机上。这样实现了物理机和云主机使用不同的网络组件。在部署和使用 Terway 中,我们遇到并解决了以下三个问题:


1、terway 容器创建失败,报/opt/cni/bin 目录不存在。  


通过修改 terway daemonset 中该路径的 hostPath 的 type,从 Directory 改为 DirectoryOrCreate 可以解决上述问题。


2、业务容器创建失败,报找不到 loopback 插件。


terway 没有像 calico-node 一样在/opt/cni/bin/目录下部署 loopback 插件(创建回环网络接口)。我们给 terway daemonset 添加了 InitContainer 来部署 loopback 插件,解决了问题。


3、业务容器分配的 IP 是属于主机交换机网段。


这是因为在使用中,我们新增了一个可用区,但是没有把可用区的 Pod 虚拟交互机的信息配置给 terway。通过在 terway 配置的 vswitches 字段新增可用区的 Pod 虚拟交换机信息,可以解决问题。


云主机加入集群


将云主机加入集群的流程和物理机基本一致。首先通过公司云平台申请云主机,然后通过 VContainer 的自动化平台将云主机初始化并加到集群中。最后给云主机打上云主机专有的标签。关于自动化平台的介绍,可以参见vivo AI 计算平台云原生自动化实践


降低专线压力


机房到阿里云的专线是公司所有业务共用的,如果平台占用过多专线带宽,会影响到其他业务的稳定性。在落地时我们发现深度学习训练任务从机房的存储集群拉取数据,确实对专线造成压力,为此平台采取了以下措施:


1、监控云主机的网络使用情况,由网络组协助监控对专线的影响。

2、使用 tc 工具对云主机 eth0 网卡的下行带宽进行限流。

3、支持业务使用云主机的数据盘,将训练数据进行预加载,避免反复从机房拉取数据。


落地效果


数个业务方临时需要大量的算力用于深度学习模型的训练。通过混合云的能力,平台将数十台 GPU 云主机加入到集群,提供给用户在 VTraining 训练平台上使用,及时满足了业务的算力需求。用户的使用体验和之前完全一致。这批资源根据不同业务的情况,使用周期在一个月到数个月。经过估算,使用费用大大低于自行采购物理机的费用,有效降低了成本。


未来展望


混合云的建设和落地取得了阶段性的成果,在未来我们会持续完善功能机制和探索新特性:


  • 支持 AI 在线服务通过混合云能力部署到云主机,满足在线业务临时算力需求。
  • 建立一套简单有效的资源申请、释放、续期的流程机制,提升跨团队的沟通协作效率。
  • 针对云主机的成本、利用率进行度量和考核,促使业务方使用好资源。
  • 将云主机申请、加入集群整个流程自动化,减少人工操作,提高效率。
  • 探索云上的高级特性,提升大规模分布式训练的性能。


致谢


感谢阿里云容器团队的华相、建明、流生等和公司基础平台一部的杨鑫、黄海廷、王伟等对混合云方案的设计和落地过程中提供的大力支持。 


作者介绍:


刘东阳,vivo AI 研究院计算平台组的资深工程师,曾就职于金蝶、蚂蚁金服等公司;关注 k8s、容器等云原生技术。


吴梓洋,vivo AI 研究院计算平台组的资深工程师,曾就职于 Oracle、Rancher 等公司;kube-batch, tf-operator 等项目的 contributor;关注云原生、机器学习系统等领域。


文内相关链接:

1)vivo AI 计算平台实战:

https://www.infoq.cn/theme/93

2)AWS Outpost:

https://aws.amazon.com/cn/outposts/

3)GEC Anthos:

https://cloud.google.com/anthos

4)ACK 混合云:

https://help.aliyun.com/document_detail/121609.html?spm=a2c4g.11186623.6.1038.6bfe3fd39IEFEt

5)AI 高性能存储CPFS:

https://www.alibabacloud.com/help/zh/doc-detail/111755.htm

6)深度学习加速引擎AIACC:

https://market.aliyun.com/products/57742013/cmjj032323.html

7)vivo AI 计算平台云原生自动化实践:

https://www.infoq.cn/article/9vB93vFIa9qHVMYOj6lD


点击下方链接,深入了解阿里 ACK 混合云!

https://help.aliyun.com/document_detail/121609.html?spm=a2c4g.11186623.6.1038.6bfe3fd39IEFEt

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
19天前
|
消息中间件 人工智能 运维
12月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
1367 78
|
11天前
|
人工智能 数据可视化 JavaScript
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
NodeTool 是一个开源的 AI 工作流可视化构建器,通过拖放节点的方式设计复杂的工作流,无需编码即可快速原型设计和测试。它支持本地 GPU 运行 AI 模型,并与 Hugging Face、OpenAI 等平台集成,提供模型访问能力。
78 14
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
|
8天前
|
人工智能 自然语言处理 算法
主动式智能导购 AI 助手解决方案实践与测评
主动式智能导购 AI 助手解决方案实践与测评
|
9天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
50 12
|
9天前
|
存储 人工智能 开发工具
AI场景下的对象存储OSS数据管理实践
本文介绍了对象存储(OSS)在AI业务中的应用与实践。内容涵盖四个方面:1) 对象存储作为AI数据基石,因其低成本和高弹性成为云上数据存储首选;2) AI场景下的对象存储实践方案,包括数据获取、预处理、训练及推理阶段的具体使用方法;3) 国内主要区域的默认吞吐量提升至100Gbps,优化了大数据量下的带宽需求;4) 常用工具介绍,如OSSutil、ossfs、Python SDK等,帮助用户高效管理数据。重点讲解了OSS在AI训练和推理中的性能优化措施,以及不同工具的特点和应用场景。
59 10
|
9天前
|
弹性计算 人工智能 数据管理
AI场景下的对象存储OSS数据管理实践
本文介绍了ECS和OSS的操作流程,分为两大部分。第一部分详细讲解了ECS的登录、密码重置、安全组设置及OSSUTIL工具的安装与配置,通过实验创建并管理存储桶,上传下载文件,确保资源及时释放。第二部分则聚焦于OSSFS工具的应用,演示如何将对象存储挂载为磁盘,进行大文件加载与模型训练,强调环境搭建(如Conda环境)及依赖安装步骤,确保实验结束后正确清理AccessKey和相关资源。整个过程注重操作细节与安全性,帮助用户高效利用云资源完成实验任务。
58 10
|
6天前
|
人工智能 Serverless 视频直播
活动实践 | AI智能体实时语音互动
AI智能体实时语音互动方案提供端到端的实时音频交互,用户通过终端SDK与云端AI智能体进行音频通话。AI智能体接收音频输入,依据预定义工作流处理并生成响应,通过ARTC网络推送结果。该方案支持灵活编排AI组件如语音转文字、大语言模型等,确保高可用、低延迟的通信体验。用户可轻松创建和管理智能体及实时工作流,实现高效对话,并可通过示例网站体验功能。
|
16天前
|
机器学习/深度学习 人工智能 监控
AI视频监控技术的核心优势与实践
AI视频监控技术结合了计算机视觉、深度学习和大数据分析,能够实时分析监控画面,识别异常行为和场景变化。其核心在于从“被动记录”转型为“主动识别”,提升监控效率并减少安全隐患。主要应用场景包括泳池管理、健身器械区域、人员密度预警和异常事件检测。系统架构支持多种摄像头设备,采用边缘计算和Docker部署,具备实时性、高准确率和扩展性等优势。未来将优化复杂场景适应性和实时计算负载,进一步提高系统性能。
|
18天前
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
|
23天前
|
人工智能
带上团队一起来做 AI 编程实践丨通义灵码联合TGO鲲鹏会开启 AI 大课
带上团队一起来做 AI 编程实践丨通义灵码联合TGO鲲鹏会开启 AI 大课

相关产品

  • 容器服务Kubernetes版