天天看點

Fluid: 讓大資料和 AI 擁抱雲原生的一塊重要拼圖Fluid 是什麼?為什麼雲原生需要 Fluid?示範快速體驗 Fluid歡迎加入與回報

Fluid: 讓大資料和 AI 擁抱雲原生的一塊重要拼圖Fluid 是什麼?為什麼雲原生需要 Fluid?示範快速體驗 Fluid歡迎加入與回報

作者 | 顧榮、車漾、範斌

得益于容器化帶來的高效部署、靈活疊代,以及雲計算在資源成本和彈性擴充方面的天然優勢,以 Kubernetes 為代表的雲原生編排架構吸引着越來越多的 AI 與大資料應用在其上部署和運作。然而,雲原生計算基金會(CNCF)

全景圖

中一直缺失一款原生元件,以幫助這些資料密集型應用在雲原生場景下高效、安全、便捷地通路資料。

如何驅動大資料、AI 應用在雲原生場景下高效運作是一個既有理論意義又具應用價值的重要挑戰性問題:

  • 一方面,解決該問題需考慮複雜場景下應用協同編排、排程優化、資料緩存等一系列理論與技術難題;
  • 另一方面,該問題的解決能夠有力地推動廣闊雲服務場景下的大資料、AI 落地應用。

為系統化解決相關問題,學術界和工業界密切合作,南京大學 PASALab 副研究員顧榮博士、阿裡雲容器服務進階技術專家車漾、Alluxio 項目創始成員範斌博士聯合推動發起了

Fluid開源合作項目

Fluid 是什麼?

Fluid 是一款開源的雲原生基礎架構項目。在計算和存儲分離的大背景驅動下,Fluid 的目标是為 AI 與大資料雲原生應用提供一層高效便捷的資料抽象,将資料從存儲抽象出來,以便達到:

  • 通過資料親和性排程和分布式緩存引擎加速,實作資料和計算之間的融合,進而加速計算對資料的通路;
  • 将資料獨立于存儲進行管理,并且通過Kubernetes的命名空間進行資源隔離,實作資料的安全隔離;
  • 将來自不同存儲的資料聯合起來進行運算,進而有機會打破不同存儲的差異性帶來的資料孤島效應。

通過 Kubernetes 服務提供的資料層抽象,可以讓資料像流體一樣在諸如 HDFS、OSS、Ceph 等存儲源和 Kubernetes 上層雲原生應用計算之間靈活高效地移動、複制、驅逐、轉換和管理。而具體資料操作對使用者透明,使用者不必再擔心通路遠端資料的效率、管理資料源的便捷性,以及如何幫助 Kuberntes 做出運維排程決策等問題。使用者隻需以最自然的 Kubernetes 原生資料卷方式直接通路抽象出來的資料,剩餘任務和底層細節全部交給 Fluid 處理。

Fluid 項目目前主要關注資料集編排和應用編排這兩個重要場景。資料集編排可以将指定資料集的資料緩存到指定特性的 Kubernetes 節點;而應用編排将指定該應用排程到可以或已經存儲了指定資料集的節點上。這兩者還可以組合形成協同編排場景,即協同考慮資料集和應用需求進行節點資源排程。

為什麼雲原生需要 Fluid?

雲原生環境與更早出現的大資料處理架構在設計理念和機制上存在天然分歧。深受 Google 三篇論文 GFS、MapReduce、BigTable 影響的 Hadoop 大資料生态,從誕生之初即信奉和實踐“移動計算而不是資料”的理念。是以以 Spark,Hive,MapReduce 為代表的資料密集型計算架構及其應用為減少資料傳輸,其設計更多地考慮資料本地化架構。但随着時代的變遷,為兼顧資源擴充的靈活性與使用成本,計算和存儲分離的架構在更新興的雲原生環境中大行其道。是以雲原生環境裡需要類似 Fluid 這樣的一款元件來補充大資料架構擁抱雲原生帶來的資料本地性缺失。

此外,在雲原生環境中,應用通常以無狀态(Stateless)微服務化方式部署,并不以資料處理為中心;而資料密集型架構和應用通常以資料抽象為中心,開展相關計算作業和任務的配置設定執行。當資料密集型架構融入雲原生環境後,也需要像 Fluid 這樣以資料抽象為中心的排程和配置設定架構來協同工作。

針對 Kubernetes 缺乏對應用資料的智能感覺和排程優化的問題,及以 Alluxio 為例的資料編排引擎存在難以直接管控雲原生基礎架構層的局限,Fluid 提出資料應用協同編排、智能感覺、聯合優化等一系列創新方法,并且形成一套雲原生場景下資料密集型應用的高效支撐平台。

具體的架構參見下圖:

Fluid: 讓大資料和 AI 擁抱雲原生的一塊重要拼圖Fluid 是什麼?為什麼雲原生需要 Fluid?示範快速體驗 Fluid歡迎加入與回報

示範

我們提供了視訊的 Demo,為您展示如何通過 Fluid 提升雲上 AI 模型訓練的速度。在這個 Demo 中,使用同樣的 ResNet50 測試代碼,Fluid 加速和原生的 ossfs 直接通路相比,不論在每秒鐘的訓練速度,和訓練總時長相比都有明顯的優勢,訓練耗時縮短了 69%。

Fluid: 讓大資料和 AI 擁抱雲原生的一塊重要拼圖Fluid 是什麼?為什麼雲原生需要 Fluid?示範快速體驗 Fluid歡迎加入與回報

點選連結,即可檢視視訊 Demo:

https://v.qq.com/x/page/t31488r2p2q.html

快速體驗 Fluid

Fluid 需要運作在 Kubernetes v1.14 及以上版本,并且需要支援 CSI 存儲。Fluid Operator 的部署和管理是通過 Kubernetes 平台上的包管理工具 Helm v3 實作的。運作 Fluid 前請確定 Helm 已經正确安裝在 Kubernetes 叢集裡。你可以參照

文檔

,安裝和使用 Fluid。

歡迎加入與回報

Fluid 讓 Kubernetes 真正具有分布式資料緩存的基礎能力,開源隻是一個起點,需要大家的共同參與。大家在使用過程發現 bug 或需要的 feature,都可以直接在

GitHub

上面提 issue 或 PR,一起參與讨論。

另外我們有一個

釘釘群

,手機端釘釘點選超鍊即可加入,歡迎您的參與和讨論!

作者簡介

顧榮  南京大學計算機系副研究員,研究方向大資料處理系統,已在 TPDS、ICDE、Parallel Computing、JPDC、IPDPS、ICPP 等領域前沿期刊會議發表論文20餘篇,成果落地應用于中國石化、百度、位元組跳動等公司和開源項目Apache Spark,獲 2018 年度江蘇省科學技術一等獎、2019 年度江蘇省計算機學會青年科技獎,當選中國計算機學會系統軟體專委會委員/大資料專委會通訊委員、江蘇省計算機學會大資料專委會秘書長;

車漾  阿裡雲進階技術專家,從事 Kubernetes 和容器相關産品的開發。尤其關注利用雲原生技術建構機器學習平台系統,是

GPU 共享排程

的主要作者和維護者;

範斌

Alluxio

開源項目的管理委員會成員(PMC Member)和源碼維護者(Maintianer)。加入 Alluxio 項目之前, 範斌就職于谷歌, 從事下一代大規模分布式存儲系統的研究與開發。他于 2013 年獲得卡内基梅隆大學(Carnegie Mellon University)計算機系博士學位,博士期間從事分布式系統的設計與實作,是

Cuckoo Filter

的作者。

“阿裡巴巴雲原生:關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公衆号。”

繼續閱讀