Fluid: 让大数据和 AI 拥抱云原生的一块重要拼图
作者 | 顧榮、車(chē)漾、范斌
得益于容器化帶來(lái)的高效部署、敏捷迭代,以及云計(jì)算在資源成本和彈性擴(kuò)展方面的天然優(yōu)勢(shì),以 Kubernetes 為代表的云原生編排框架吸引著越來(lái)越多的 AI 與大數(shù)據(jù)應(yīng)用在其上部署和運(yùn)行。然而,云原生計(jì)算基金會(huì)(CNCF)全景圖中一直缺失一款原生組件,以幫助這些數(shù)據(jù)密集型應(yīng)用在云原生場(chǎng)景下高效、安全、便捷地訪問(wèn)數(shù)據(jù)。
如何驅(qū)動(dòng)大數(shù)據(jù)、AI 應(yīng)用在云原生場(chǎng)景下高效運(yùn)行是一個(gè)既有理論意義又具應(yīng)用價(jià)值的重要挑戰(zhàn)性問(wèn)題:
-
一方面,解決該問(wèn)題需考慮復(fù)雜場(chǎng)景下應(yīng)用協(xié)同編排、調(diào)度優(yōu)化、數(shù)據(jù)緩存等一系列理論與技術(shù)難題;
-
另一方面,該問(wèn)題的解決能夠有力地推動(dòng)廣闊云服務(wù)場(chǎng)景下的大數(shù)據(jù)、AI 落地應(yīng)用。
為系統(tǒng)化解決相關(guān)問(wèn)題,學(xué)術(shù)界和工業(yè)界密切合作,南京大學(xué) PASALab 副研究員顧榮博士、阿里云容器服務(wù)高級(jí)技術(shù)專(zhuān)家車(chē)漾、Alluxio 項(xiàng)目創(chuàng)始成員范斌博士聯(lián)合推動(dòng)發(fā)起了 Fluid開(kāi)源合作項(xiàng)目。
Fluid 是什么?
Fluid 是一款開(kāi)源的云原生基礎(chǔ)架構(gòu)項(xiàng)目。在計(jì)算和存儲(chǔ)分離的大背景驅(qū)動(dòng)下,Fluid 的目標(biāo)是為 AI 與大數(shù)據(jù)云原生應(yīng)用提供一層高效便捷的數(shù)據(jù)抽象,將數(shù)據(jù)從存儲(chǔ)抽象出來(lái),以便達(dá)到:
-
通過(guò)數(shù)據(jù)親和性調(diào)度和分布式緩存引擎加速,實(shí)現(xiàn)數(shù)據(jù)和計(jì)算之間的融合,從而加速計(jì)算對(duì)數(shù)據(jù)的訪問(wèn);
-
將數(shù)據(jù)獨(dú)立于存儲(chǔ)進(jìn)行管理,并且通過(guò)Kubernetes的命名空間進(jìn)行資源隔離,實(shí)現(xiàn)數(shù)據(jù)的安全隔離;
-
將來(lái)自不同存儲(chǔ)的數(shù)據(jù)聯(lián)合起來(lái)進(jìn)行運(yùn)算,從而有機(jī)會(huì)打破不同存儲(chǔ)的差異性帶來(lái)的數(shù)據(jù)孤島效應(yīng)。
通過(guò) Kubernetes 服務(wù)提供的數(shù)據(jù)層抽象,可以讓數(shù)據(jù)像流體一樣在諸如 HDFS、OSS、Ceph 等存儲(chǔ)源和 Kubernetes 上層云原生應(yīng)用計(jì)算之間靈活高效地移動(dòng)、復(fù)制、驅(qū)逐、轉(zhuǎn)換和管理。而具體數(shù)據(jù)操作對(duì)用戶(hù)透明,用戶(hù)不必再擔(dān)心訪問(wèn)遠(yuǎn)端數(shù)據(jù)的效率、管理數(shù)據(jù)源的便捷性,以及如何幫助 Kuberntes 做出運(yùn)維調(diào)度決策等問(wèn)題。用戶(hù)只需以最自然的 Kubernetes 原生數(shù)據(jù)卷方式直接訪問(wèn)抽象出來(lái)的數(shù)據(jù),剩余任務(wù)和底層細(xì)節(jié)全部交給 Fluid 處理。
Fluid 項(xiàng)目當(dāng)前主要關(guān)注數(shù)據(jù)集編排和應(yīng)用編排這兩個(gè)重要場(chǎng)景。數(shù)據(jù)集編排可以將指定數(shù)據(jù)集的數(shù)據(jù)緩存到指定特性的 Kubernetes 節(jié)點(diǎn);而應(yīng)用編排將指定該應(yīng)用調(diào)度到可以或已經(jīng)存儲(chǔ)了指定數(shù)據(jù)集的節(jié)點(diǎn)上。這兩者還可以組合形成協(xié)同編排場(chǎng)景,即協(xié)同考慮數(shù)據(jù)集和應(yīng)用需求進(jìn)行節(jié)點(diǎn)資源調(diào)度。
為什么云原生需要 Fluid?
云原生環(huán)境與更早出現(xiàn)的大數(shù)據(jù)處理框架在設(shè)計(jì)理念和機(jī)制上存在天然分歧。深受 Google 三篇論文 GFS、MapReduce、BigTable 影響的 Hadoop 大數(shù)據(jù)生態(tài),從誕生之初即信奉和實(shí)踐“移動(dòng)計(jì)算而不是數(shù)據(jù)”的理念。因此以 Spark,Hive,MapReduce 為代表的數(shù)據(jù)密集型計(jì)算框架及其應(yīng)用為減少數(shù)據(jù)傳輸,其設(shè)計(jì)更多地考慮數(shù)據(jù)本地化架構(gòu)。但隨著時(shí)代的變遷,為兼顧資源擴(kuò)展的靈活性與使用成本,計(jì)算和存儲(chǔ)分離的架構(gòu)在更新興的云原生環(huán)境中大行其道。因此云原生環(huán)境里需要類(lèi)似 Fluid 這樣的一款組件來(lái)補(bǔ)充大數(shù)據(jù)框架擁抱云原生帶來(lái)的數(shù)據(jù)本地性缺失。
此外,在云原生環(huán)境中,應(yīng)用通常以無(wú)狀態(tài)(Stateless)微服務(wù)化方式部署,并不以數(shù)據(jù)處理為中心;而數(shù)據(jù)密集型框架和應(yīng)用通常以數(shù)據(jù)抽象為中心,開(kāi)展相關(guān)計(jì)算作業(yè)和任務(wù)的分配執(zhí)行。當(dāng)數(shù)據(jù)密集型框架融入云原生環(huán)境后,也需要像 Fluid 這樣以數(shù)據(jù)抽象為中心的調(diào)度和分配框架來(lái)協(xié)同工作。
針對(duì) Kubernetes 缺乏對(duì)應(yīng)用數(shù)據(jù)的智能感知和調(diào)度優(yōu)化的問(wèn)題,及以 Alluxio 為例的數(shù)據(jù)編排引擎存在難以直接管控云原生基礎(chǔ)架構(gòu)層的局限,Fluid 提出數(shù)據(jù)應(yīng)用協(xié)同編排、智能感知、聯(lián)合優(yōu)化等一系列創(chuàng)新方法,并且形成一套云原生場(chǎng)景下數(shù)據(jù)密集型應(yīng)用的高效支撐平臺(tái)。
具體的架構(gòu)參見(jiàn)下圖:
演示
我們提供了視頻的 Demo,為您展示如何通過(guò) Fluid 提升云上 AI 模型訓(xùn)練的速度。在這個(gè) Demo 中,使用同樣的 ResNet50 測(cè)試代碼,Fluid 加速和原生的 ossfs 直接訪問(wèn)相比,不論在每秒鐘的訓(xùn)練速度,和訓(xùn)練總時(shí)長(zhǎng)相比都有明顯的優(yōu)勢(shì),訓(xùn)練耗時(shí)縮短了 69%。
點(diǎn)擊鏈接,即可查看視頻 Demo:https://v.qq.com/x/page/t31488r2p2q.html
快速體驗(yàn) Fluid
Fluid 需要運(yùn)行在 Kubernetes v1.14 及以上版本,并且需要支持 CSI 存儲(chǔ)。Fluid Operator 的部署和管理是通過(guò) Kubernetes 平臺(tái)上的包管理工具 Helm v3 實(shí)現(xiàn)的。運(yùn)行 Fluid 前請(qǐng)確保 Helm 已經(jīng)正確安裝在 Kubernetes 集群里。你可以參照文檔,安裝和使用 Fluid。
歡迎加入與反饋
Fluid 讓 Kubernetes 真正具有分布式數(shù)據(jù)緩存的基礎(chǔ)能力,開(kāi)源只是一個(gè)起點(diǎn),需要大家的共同參與。大家在使用過(guò)程發(fā)現(xiàn) bug 或需要的 feature,都可以直接在 GitHub 上面提 issue 或 PR,一起參與討論。
另外我們有一個(gè)釘釘群,手機(jī)端釘釘點(diǎn)擊超鏈即可加入,歡迎您的參與和討論!
作者簡(jiǎn)介
顧榮 ?南京大學(xué)計(jì)算機(jī)系副研究員,研究方向大數(shù)據(jù)處理系統(tǒng),已在 TPDS、ICDE、Parallel Computing、JPDC、IPDPS、ICPP 等領(lǐng)域前沿期刊會(huì)議發(fā)表論文20余篇,成果落地應(yīng)用于中國(guó)石化、百度、字節(jié)跳動(dòng)等公司和開(kāi)源項(xiàng)目Apache Spark,獲 2018 年度江蘇省科學(xué)技術(shù)一等獎(jiǎng)、2019 年度江蘇省計(jì)算機(jī)學(xué)會(huì)青年科技獎(jiǎng),當(dāng)選中國(guó)計(jì)算機(jī)學(xué)會(huì)系統(tǒng)軟件專(zhuān)委會(huì)委員/大數(shù)據(jù)專(zhuān)委會(huì)通訊委員、江蘇省計(jì)算機(jī)學(xué)會(huì)大數(shù)據(jù)專(zhuān)委會(huì)秘書(shū)長(zhǎng);
車(chē)漾 ?阿里云高級(jí)技術(shù)專(zhuān)家,從事 Kubernetes 和容器相關(guān)產(chǎn)品的開(kāi)發(fā)。尤其關(guān)注利用云原生技術(shù)構(gòu)建機(jī)器學(xué)習(xí)平臺(tái)系統(tǒng),是 GPU 共享調(diào)度的主要作者和維護(hù)者;
范斌 Alluxio 開(kāi)源項(xiàng)目的管理委員會(huì)成員(PMC Member)和源碼維護(hù)者(Maintianer)。加入 Alluxio 項(xiàng)目之前, 范斌就職于谷歌, 從事下一代大規(guī)模分布式存儲(chǔ)系統(tǒng)的研究與開(kāi)發(fā)。他于 2013 年獲得卡內(nèi)基梅隆大學(xué)(Carnegie Mellon University)計(jì)算機(jī)系博士學(xué)位,博士期間從事分布式系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),是 Cuckoo Filter 的作者。
“阿里巴巴云原生:關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢(shì)、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開(kāi)發(fā)者的公眾號(hào)。”
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Fluid: 让大数据和 AI 拥抱云原生的一块重要拼图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringCloud 应用在 Kube
- 下一篇: AI 事件驱动场景 Serverless