阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

Kubernetes 在上汽集团云平台及 AI 方面的应用

  • 2020-04-22
  • 本文字数:3815 字

    阅读完需:约 13 分钟

Kubernetes在上汽集团云平台及AI方面的应用

帆一尚行成立于 2015 年,是上汽集团的全资子公司,建设有上海、南京、郑州(在建)三个数据中心,拥有超过 4000 台物理服务器,10PB 的数据存储,总面积将近 9000 平米。

帆一尚行主要为用户提供弹性计算、存储网络、大数据、人工智能、安全等云产品及服务,并提供车联网、物联网、整车等行业解决方案。截至目前,已服务了上汽集团集团本部、上汽乘用车、上汽大通、吉安物流、赛客出行等 40 余家汽车企业。

2018 年 11 月 13 日,由 Rancher Labs、华为、CNCF 联合主办的KubeCon + CloudNativeCon 的同场活动——云原生服务网格(Istio)企业峰会在上海隆重举行,上汽集团帆一尚行业务发展部总经理龚瀚申在峰会上进行了主题演讲,分享了上汽集团如何在利用 Kubernetes 的强大能力的同时,降低系统的使用门槛,使得 Kubernetes 技术能够多样化的满足不同技术水平用户的使用需求,并且利用 Kubernetes 的强大能力支撑人工智能等新兴业务。

发展背景


上汽集团帆一尚行业务发展部总经理 龚瀚申


在上汽集团帆一尚行业务发展部总经理龚瀚申看来,汽车行业对互联网转型的需求主要集中在两个方面,一方面是 汽车行业对于互联网云原生的需求 ,如车联网共享出行等,这些互联网业务带动了整个汽车行业的转型,而这一类的生态大多源于云的系统架构,属于云原生的系统。另一方面则是 来源于公司内部的运营需求 ,运营方式无法实现对互联网快速变革需求的及时响应,重复的基础建设、复杂的系统架构以及封闭的业务系统,将会造成巨大的资源浪费和高昂的企业运营成本。


当企业将业务部署到云端之后,这样的情况便会得到相应的改善,除了降低整体的 IT 投资成本之外,基于云计算互联互通的优势,也能增加业务之间的数据交互。“从上汽集团的战略规划层面出发,我们需要开发大量的具有行业特性的产品。”龚瀚申分析道:“在上云的过程当中,云平台不单是资源提供方的角色,最重要的是它将通用技术与通用业务功能产品化。这是上汽云平台长期的一个发展方向。”



帆一尚行云平台的总体框架


在明确上汽云平台未来的发展方向之后,他们制定了一个总体的云平台框架,将主要的任务集中放在两大平台进行处理。其一是基础服务平台,以虚拟化和数据中心作为技术核心,将标准化的硬件以虚拟资源的方式提供给用户,用户在资源池内按需计算。其二则是推出了平台服务,容器加上调度系统将构成平台服务的运行基础,当平台服务往业务层靠拢,将抽象出业务中台,当平台服务往技术层靠拢,将抽象出技术中台。不管是技术中台还是业务中台,运行基础都是由虚拟化和容器来提供的。所以在云数据中心,容器已经显然成为上汽集团帆一尚行的一个核心技术,它不仅是一个轻量级的 PaaS,也是 IaaS 平台更小颗粒的虚拟化,为整个平台提供运行基础。

实践历程

从时间线上来看,上汽集团在容器技术的探索和实践与容器技术的整体发展息息相关。



帆一尚行容器技术使用历程


2015 年,上汽集团帆一尚行的开发团队使用 Docker 跑了一些简单的网站应用,开发人员在笔记本上运行一些简单的代码,通过容器打包推送到帆一尚行的虚拟环境里面,在秒级的响应时间内便可以启动打包的应用。“我们将 Docker 和 OpenStack 进行了对比,也在内部进行了容器是否会取代 OpenStack 的议题讨论。”龚瀚申回忆:“由于容器成熟度以及用户成熟度的问题,我们认为短期内容器还无法取代 OpenStack,但基于这次尝试,我们感受到了容器在资源利用率和环境一致性上的优势。”


2016 年,上汽集团帆一尚行在 Docker 以及编排系统上投入了更多的精力,开发团队调研了市面上 Rancher、Mesos+Marathon、Kubernetes 以及 Docker+Swarm 等系统,不同的系统在系统成熟度以及部署难易程度上存在一定的差别,最终选择了 Docker+Swarm 去搭建企业的集群,并开始了利用小规模集群支撑整体营销活动的实践及推广。


到了 2017 年,随着 Kubernetes 的呼声和热度越来越高,产品也日趋成熟。上汽集团帆一尚行开发团队在内部小范围构建了 Kubernetes 的小型集群,将其应用于整个 GPU 资源平台的调度。经过这一两年的尝试及探索,上汽集团帆一尚行正式将 Kubernetes 列为产品线的重要产品,用以支撑整个容器平台的运行。


“在建设 Kubernetes 平台的初期,我们从多个维度设定了容器平台的目标。”龚瀚申分享道:“从部署的维度出发,它必须支持多跨数据中心的部署,必须支持主流公有云和私有云平台的部署;从资源调度编排的角度出发,它必须支持主流的 CPU 调度,必须以开放标准的形式提供存储与网络的对接;从租户管理的角度出发,它必须可以提供多租户的资源配额,让租户在自己的配额里面可以调度资源以及镜像仓库;从整体运营管理的角度出发,它必须提供一个统一对接 Kubernetes 集群管理的平台,必须能对 Kubernetes 集群进行灵活增减,以及能实现简单的监控功能。”



帆一尚行技术方案选型


通过一系列的探索与实践,上汽集团最终落地了最符合自身需求的容器技术选型:基于物理服务器构建基础设施,利用自研基于 Ansible 的 Kubernetes 进行整个集群的自动化部署; 通过 Rancher 来实现平台的统一管控 ,对接统一认证系统,实现应用部署管理、多租户、配额管理等高级功能;在网络的层面上,选择利用 Calico BGP 网络+外部 L4L/7 的负载均衡来实现多种应用的发布形式;存储则是沿用了 Swarm 里面的 Nexenta 以及 PortWorx 来打造分布式存储方案;最后,上汽集团还基于 Prometheus 进行平台监控和外部统一监控告警。



Kubernetes 平台逻辑框架


Kubernetes 集群与上汽集团帆一尚行的用户界面是集成的,用户可以通过登录 Saicmotor 的门户网站直接使用上汽集团帆一尚行的 Kubernetes 集群,或者是通过上汽集团帆一尚行周边的云平台产品如应用开发日志、日志管理等来进行对 Kubernetes 集群进行管控。而上汽集团帆一尚行的运维人员则是 通过 Rancher 的管理界面来管理底层的 Kubernetes 集群。


“关于 Kubernetes 应该怎样以产品的方式提供给用户,我们也进行了一些场景化的思考。有人会将 Kubernetes 当作是数据中心的管控系统,有人会将它作为是任务调度的管理系统,还会有人将 Kubernetes 当作是微服务的一个治理框架,在不同的而场景下,大家对 Kubernetes 的定义是不一样的。”龚瀚申分析:“这一切就是源于 Kubernetes 它开放的多维度框架设计理念以及简单易用的产品特性,所以我们将它理解为一个可扩展、可组合的调度系统框架。”


针对 Kubernetes 的产品特性和用户对 Kubernetes 的熟悉程度,上汽集团帆一尚行设计了两类产品形态。一类产品形态针对初级用户,将 Kubernetes 封装起来,以另外一种形式为用户提供服务,用户更多体验到的是以容器技术为主的应用部署和发布能力。另一类则针对高级用户开放,用户可以独享一个 Kubernetes 集群,并且通过一键部署来快速实现,可以充分体验 Kubernetes 的特性。

AI 应用

在内部的项目落地之后,上汽集团为了实现对 L4 自动驾驶产业化软件的开发以及复杂场景下自动驾驶功能的建设需求,他们对容器平台提出了更高的要求。


“平台必须提供完整的 AI 软件开发流程管理体系,包括数据管理、模型管理、仿真测试、模型压缩等系统功能,和车端行程从训练到推理的 AI 软件开发闭环。”龚瀚申将这一目标归结为两大需求,一是 AI 训练服务,将专注于数据标注、数据存储、CPU 训练以及分布式训练;二是 AI 模型,包含训练服务、托管发布和模型的版本管理。


同时,这一平台将定义为集团层面的公共训练服务平台,不仅服务于上汽集团智能驾驶的部门,还将为集团下属的整车物流零部件等企业提供 AI 训练服务。那么,对于这一平台来说,任务调度功能以及租户隔离功能都是不可或缺的。


上汽集团帆一尚行开发团队在进行技术选型的时候,发现 Kubernetes 能完美地实现资源层的调度和服务层的任务调度功能,也能对租户的 GPU 资源和网络存储资源进行很好的隔离。最终在 AI 平台应用的层面,上汽集团也选择了 Kubernetes 进行应用于落地。



AI 平台业务架构


那么,整个 AI 平台是怎么进行业务实现的呢?从横向的角度来看,上汽集团的 AI 平台客户分为三个层面,一是人力层面,二是算力层面,三是数据层面。数据层面将产生大量的数据,如行车交通标志、雨天产生的大量视频和图像,以及一些信号数据,这些数据将被收集起来,送到算力平台上,最终由上汽集团帆一尚行的人力分工对这些数据进行处理和训练,最终产出一个算法。从纵向的角度来看,平台的人力团队被划分为三类,一是标注团队,主要负责模型服务;二是算法团队,三是运营团队,起到协调的作用。



AI 训练平台逻辑框架


当帆一尚行的开发团队和业务进行沟通之后,抽象出了 AI 平台的系统逻辑框架,第一层为基础层面,由 Kubernetes 和存储构成;第二层为 Service 层面,包括需要调度的算法和需要进行的数据处理;还有一个层面就是前台的服务层,包括数据管控的流程、任务发布等。当 Kubernetes 接到调度之后,将去 Service 的层面去调度 Service 模块,然后 Kubernetes 再把 GPU 资源、存储资源分配给 Service 模块,Service 模块进行统一的训练和计算,最终把结果返回到前台的用户。


“所有这些调度的服务层的任务全部都是以镜像的形式存储在 Kubernetes 的镜像仓库里面,Kubernetes 在整套系统里面起到的是多任务控制的调度以及资源调度的作用。所以这个核心实际上是有底层的 Kubernetes 实现的。”龚瀚申补充道:“我们团队会根据算法团队打包他们的算力,把它存储在镜像仓库里面,由他们自主地通过前端的前台来自主地发起任务训练。这就是 Kubernetes


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-04-22 18:32761

评论

发布
暂无评论
发现更多内容

深入理解Kubernetes Pod调试

俞凡

最佳实践 云原生

花2个月面过阿里Java岗,拿个25K不过分吧?

程序知音

Java java面试 后端技术 秋招 Java面试八股文

开源3天获得业界一致好评!阿里最新产Spring全家桶速成笔记真香

程序员小毕

spring 后端 Java 面试 spring-cloud spring-boot

推荐一个人工智能应用落地的应用

felix

深度思考:为什么需要泛型?

海风极客

10月月更

贡献者任务第五期,炫酷登场!

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

【Meetup 明天见】OpenMLDB+37手游:一键查收特征计算场景案例及进阶使用攻略

第四范式开发者社区

人工智能 数据库 开源 时序数据库

阿里最新产物:亿级流量高并发系统设计(全彩版小册开源)

Java全栈架构师

程序员 程序人生 系统架构 中间件 java面试

毕业季,说一说自己从学生初入职场的感受

海风极客

10月月更

GitHub下载量从19暴涨到5W,这份架构师学习路线只用了一晚

Geek_0c76c3

Java 数据库 开源 程序员 开发

当下的网络安全行业前景到底怎么样?还能否入行?

网络安全学海

程序员 黑客 网络安全 信息安全 渗透测试

高并发系统简单玩!Alibaba全新出品亿级并发设计速成笔记真香

Geek_0c76c3

Java 数据库 开源 程序员 开发

初识Java,一个简单的自我介绍

Aion

Java 后端 10月月更

GitHub无抗手!MySQL DBA攻坚指南一出,阿里数据库专家都解脱了

Geek_0c76c3

Java 数据库 开源 程序员 开发

阿里最新分享 SpringCloudAlibaba 实战小抄(第五版),一代更比一代强

Geek_0c76c3

Java 开源 程序员 数据 开发

史上最全Spring Cloud Alibaba全套笔记,嘎嘎顶

程序知音

Java 程序员 微服务 SpringCloud 后端技术

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

Geek_0c76c3

Java 数据库 开源 程序员 架构

SQL优化思路+经典案例分析

程序知音

OpenMLDB Meetup No.6 回顾 | OpenMLDB+37手游:一键查收特征计算场景案例及进阶使用攻略

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

阿里打工4年被裁,国庆七天系统查漏补缺期间我总结出了一条对标阿里P5~P7Java程序员体系学习路线

Java永远的神

程序员 程序人生 后端 Java 面试 学习路线

还是 “月饼” 后续,玩转炫彩 “月饼” 之 问题说明

矜辰所致

开发板 ESP32-C3 10月月更

清华毕业大牛带你深入解析JVM,附五大实战技术文档,总计1024M

Geek_0c76c3

Java 数据库 开源 程序员 开发

“我学数学,是为了拯救公主!”

图灵社区

小说 数学 奇幻

GitHub上惊现阿里大佬手记,这是真把微服务、容器和K8S讲清楚了

Geek_0c76c3

Java 开源 程序员 数据 开发

面试突击88:加入事务和嵌套事务有什么区别?

王磊

Java 面试

阿里微服务架构到底多牛逼:深入解析Apache Dubbo与实战

Geek_0c76c3

Java 数据库 开源 程序员 架构

AICon 2022 | 来杭州和 OpenMLDB 见面吧

第四范式开发者社区

人工智能 机器学习 数据库 时序数据库 特征

OpenMLDB 进阶使用攻略和高级特性介绍

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

不愧是阿里新产SpringSecurity+OAuth2实战笔记,(用户+案例+认证+框架)打造企业级认证与授权

程序员小毕

程序员 程序人生 springsecurity java面试 安全框架

性能测试知识科普(三):压测工具

老张

性能测试

“我学数学,是为了拯救公主!”

图灵教育

小说 数学 奇幻

Kubernetes在上汽集团云平台及AI方面的应用_文化 & 方法_Rancher_InfoQ精选文章