Kubernetes在上汽集團云平臺及AI方面的應用

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

帆一尚行成立于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集群與上汽集團帆一尚行的用戶界面是集成的,用戶可以通過登錄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平臺的系統邏輯框架,第一層為基礎層面,由Kubernetes和存儲構成;第二層為Service層面,包括需要調度的算法和需要進行的數據處理;還有一個層面就是前臺的服務層,包括數據管控的流程、任務發布等。當Kubernetes接到調度之后,將去Service的層面去調度Service模塊,然后Kubernetes再把GPU資源、存儲資源分配給Service模塊,Service模塊進行統一的訓練和計算,最終把結果返回到前臺的用戶。

“所有這些調度的服務層的任務全部都是以鏡像的形式存儲在Kubernetes的鏡像倉庫里面,Kubernetes在整套系統里面起到的是多任務控制的調度以及資源調度的作用。所以這個核心實際上是有底層的Kubernetes實現的。”龔瀚申補充道:“我們團隊會根據算法團隊打包他們的算力,把它存儲在鏡像倉庫里面,由他們自主地通過前端的前臺來自主地發起任務訓練。這就是Kubernetes在上汽集團AI平臺的應用。”

轉載于:https://my.oschina.net/u/3330830/blog/2961925

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537412.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

我的Java培訓經歷

此文講述我的Java開發培訓經歷,來解答關心的培訓費、培訓節奏、就業等問題。 我在2010年參加達內Java培訓,如今再回首那段時光,雖然辛苦,但很值得!(后悔參加培訓班,大部分原因是沖動&#xff0…

python跨函數調用變量_對python中不同模塊(函數、類、變量)的調用詳解

首先,先介紹兩種引入模塊的方法。 法一:將整個文件引入 import 文件名 文件名.函數名( ) / 文件名.類名 通過這個方法可以運行另外一個文件里的函數 法二:只引入某個文件中一個類/函數/變量 需要從某個文件中引入多個函數或變量時&#xff0c…

軟件培訓技術選哪個?

要培訓了,培訓技術怎么選? 技術需慎重選 女怕嫁錯郎,男怕入錯行。后悔參加培訓班,因為技術沒選好的占比很高。 技術沒選好會有什么影響? 近的影響是就業!遠的影響是發展! 對于程序員來說,技術就是立身之本,需要慎重選擇! 我在《要不要參加培訓班?》文章中介紹…

django安裝_技術大牛詳解:Django框架之環境安裝

黑馬程序員視頻庫播妞微信號:boniu236傳智播客旗下互聯網資訊、學習資源免費分享平臺虛擬環境安裝:開發中問題:如何在同一臺主機中,要開發多個不同的項目,而且需要用到同一個包的不同版本?嘗試分析:在開發過…

安裝 Alibaba Cloud Toolkit

IntelliJ IDEA版 JetBrains 插件市場下載 Eclipse 版 Eclipse 插件市場倉庫下載 (推薦)URL 地址在線安裝Maven 版 在 POM 文件中依賴 PyCharm、PhpStorm、RubyMine 和 WebStorm 版 公測中官網https://toolkit.aliyun.com 交流群(釘釘) 交流群&#xff08…

軟件Java前端大數據培訓機構怎么選?

先看這篇文章《要不要參加培訓班》。 選技術就像選另一半,那選培訓機構就是選另一半的家庭。另一半家庭好與不好,與婚后幸福生活息息相關。 選培訓機構的幾個維度: 1.成立時間 2.專業性 3.市場普及率 成立時間 成立久的不一定好,比如北大某鳥 成立不足3年的,不要選…

高效管理論壇廣告貼的小竅門

歡迎訪問網易云社區,了解更多網易技術產品運營經驗。這里提供一個關于如何管理論壇廣告貼的深度視角。一般的論壇在發展初期,用戶自發產生的內容不多,每一條數據都彌足珍貴,因此幾乎不會考慮到反垃圾需求。隨著產品規模的擴大&…

Chrome瀏覽器多開,親測有效

原理 指定不同的用戶目錄,就可以實現多開。即:"--user-data-dir" 指定不同的目錄。 操作 新建用戶目錄文件夾 要開幾個,就新建幾個,文件夾名隨意。 復制chrome快捷方式 修改目標路徑 每個快捷方式,修改…

計算機技術與軟件專業技術資格(水平)考試 全國各省市成績查詢

大家好,我是51CTO學院的文慧,目前收到很多參加軟考考試的學生針對考試成績查詢的問題,無法一一幫助到大家,故開此博客,希望可以幫助到大家。 2018年下半年軟考合格標準是多少?根據近幾年軟考合格標準來看&a…

培訓時常犯的學習誤區與應對方法

和在學校里上課一樣,同一位老師教,同班同學成績不同。同學之間的資質都是差不多的,因學習方法不同,學習心態不同,課后努力程度不同導致的成績差異。 本文介紹下培訓時容易犯的學習誤區和誤區的應對方法。 誤區1 不懂不明白的地方,非要打破鐵鍋問到底。 應對方法 培訓…

julia有沒有希望超越python_未來5-10年,Julia會替代Python成為量化投資熱門語言嗎?...

今年上過一個quantative programming的課程,去年教學用的語言還是python,加速的方法用的是jit即時編譯來提高編程效率,今年課程的設計就改成Julia了。 因為自己從2016年起數據研究用的都是python,所以最開始使用Julia的時候并不習…

常見的三種撞庫方法

歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 在安全領域向來是先知道如何攻,其次才是防。在介紹如何防范網站被黑客掃描撞庫之前,先簡單介紹一下什么是撞庫:撞庫是黑客通過收集互聯網已泄露的用戶和密碼信息,生…

超越培訓班同學的獨門絕技

???????本文講3個獨門絕技,十多年苦練多得,只傳有緣人。 ??????? 不訂閱,就是不給看 絕技1 -----權益保護線----- -----權益保護線----- -----權益保護線----- -----權益保護線----- -----權益保護線----- 寫CSDN博文 CSDN上有不少參加培訓班的…

python逐個讀取字符_玩轉python之字符串逐個字符或逐詞反轉

眾所周知,python中的字符串是無法改變的,反轉一個字符串自然要創建一個拷貝;最簡單的方法,當然是步長為“-1”的切片: result astring[::-1] 如果要是按單詞來反轉,需要三步完成:字符串--->…

WPF TextBox 正則驗證 大于等于0 小于等于1 的兩位小數

原文:WPF TextBox 正則驗證 大于等于0 小于等于1 的兩位小數正則&#xff1a;^(0\.\d|[1-9][0-9]|1)$ TextBox綁定正則驗證 <TextBox x:Name"txb" MaxLength"6" Margin"1 0 0 0" Width"40" > <TextBox.Text> …

DataQ數據對象為空的解決方法

問題 在dataq上面創建周期任務的時候發現了這么一個問題&#xff0c;配置好目標源之后&#xff0c;數據對象的下拉選項中是空的&#xff0c;如下圖。 原因 是因為目前無法使用自動創建目標表功能&#xff0c;需要自己去dataworks上面先自己創建好。 措施 1.創建目標表 2.創…

pythonifnotnone_使用 if x is not None 還是if not x is None

使用 if x is not None 還是if not x is None呢&#xff1f; 谷歌的風格指南和PEP-8都使用if x is not None&#xff0c;那么它們之間是否存在某種輕微的性能差異呢&#xff1f;通過測試發現沒有性能差異&#xff0c;因為它們編譯為相同的字節碼&#xff1a;Python 2.6.2 (r262…

布局 —— 左側固定,右側自適應

實現布局&#xff1a;左側固定&#xff0c;右側自適應 一. flex布局 html&#xff1a; <div class"content"><div class"left"></div><div class"right"></div> </div> css&#xff1a; .content {width: 1…

堅果投影儀如何?電腦無線投影要收費!

618買了臺堅果J10投影儀&#xff0c;看了投影機參數就買了。今天要用電腦端無線投影&#xff0c;居然沒有自帶的&#xff0c;要用第三方軟件&#xff0c;還要收費才能電腦端投影。 與客戶交流后&#xff0c;確認投影儀系統沒有自帶電腦端無線投影功能。購買時很難發現&#xf…

python類的編寫模板_python開發筆記-類

類的基本概念&#xff1a; 問題空間&#xff1a;問題空間是問題解決者對一個問題所達到的全部認識狀態&#xff0c;它是由問題解決者利用問題所包含的信息和已貯存的信息主動的地構成的。 初始狀態&#xff1a;一開始時的不完全的信息或令人不滿意的狀況&#xff1b; 目標狀態&…