開源一週年
JuiceFS 開始於 2017 年,是一款雲原生分散式檔案系統,旨在幫助企業解決多雲、跨雲、混合雲環境下所面臨的諸多挑戰:資料安全和保護、大資料架構升級、海量小檔案訪問、Kubernetes 標準儲存等。 JuiceFS 完全相容 POSIX、HDFS、S3 訪問協議,並提供 Kubernetes CSI 驅動,在全球公有云上均有全託管服務。為了更好的打造讓開發者愛不釋手的軟體,我們於 2021 年 1 月 11 日在 GitHub 上開源了 JuiceFS。
今天, JuiceFS 已經開源一週年了!
一年前的今天,我們將 JuiceFS 在 GitHub 上開源,初心其實很簡單:希望通過開源讓 JuiceFS 被更多的開發者知道、瞭解、並使用。畢竟軟體最大的價值還是被使用。開源後的 JuiceFS 讓使用者不再擔心黑盒的雲服務,使用者可以自行下載程式碼,探索 JuiceFS 的無限可能;開發者可以查閱 JuiceFS 的程式碼,從最底層瞭解、熟悉、信任他,甚至可以參與到 JuiceFS 的打造中。我們希望營造一個互相尊重的社群文化,身處其中不僅可以使用 JuiceFS,也可以在這交流新場景、新玩法,還可以討論 JuiceFS 的工程設計理念和參與未來方向的制定。
開發者們對 JuiceFS 開源的反饋也超出我們的預期,開源第一週就登上了 GitHub Trending、Hacker News、InfoQ 等以開發者為主要受眾的的媒體平臺。
經過一年的時間,JuiceFS 在社群和產品都取得了長足的進步,但行百里者半九十,我們深知堅持的難度,也將繼續懷著開放和連線的心態砥礪前行。
產品全面升級,更加開放
JuiceFS 剛開源時,後設資料引擎的選擇只有 Redis。儲存介質為記憶體的 Redis 在資料可靠性和擴充套件性上存在諸多挑戰。我們將後設資料引擎的相關程式碼進行了可插拔改造,引入了對關係型資料庫和像 TiKV 這樣的事務型 KV 儲存的支援,解決了可靠性和可擴充套件性問題,給了使用者更多的選擇。
作為 JuiceFS 資料持久層的物件儲存,我們也支援了近 40 種,基本涵蓋了公有云、邊緣雲、私有云等環境中部署使用的常見種類。當然,如果有遺漏歡迎 GitHub 上發起 issue,我們將盡快支援。拓寬 JuiceFS 的生態和提升 JuiceFS 開放性是我們矢志不渝的追求。
最開始的 JuiceFS 只支援應用最廣泛的 POSIX API,此後陸續支援了 HDFS、S3 API,和 Kubernetes CSI 和 Windows 作業系統,未來我們還將支援更多更靈活的訪問方式。 這些協議點綴成線,將散落在企業內部的資料孤島,編織成網,更好的幫助企業打通多型業務系統的資料,整合不同的技術體系,連線多雲,幫助客戶搭建更加開放的資料儲存平臺。
JuiceFS 還提供了後設資料的備份和匯入功能,讓使用者在「意外」面前更多一份保障和可靠。 這一功能給予了使用者按照 JSON 格式進行備份的能力,提高資料可讀性的同時,也保證了資料在不同後設資料引擎間的可交換性。最後,可靠的 JuiceFS 還提供了「回收站」的功能,在這裡可以找到那些被誤刪除的資料。
除了在產品開放性上的持續投入,我們還將目光放到了文件的開放性和易用性上。我們深刻理解,文件是使用者與產品之間重要的紐帶!自 JuiceFS 開源以來,我們始終堅持高品質的技術與高品質的文件並行輸出的原則。
2021 年,我們對文件進行了三次完整迭代,實現了文件從「專業性」到「普適性」,再到「體驗性」的持續蛻變。優化文件的工作仍在繼續,努力確保 JuiceFS 的文件能夠「讓新使用者馬上用」,「讓老使用者放心用」。除了文件的工作以外,在快速的版本迭代中,JuiceFS 也一直保持資料格式、通訊協議的相容性,保證版本的向前相容,讓使用者可以平滑升級。
JuiceFS 開源的一年裡,產品也有了巨大的變化,也讓我們更加堅定走開源路線是無比正確的,因為只有開放的生態是最具生命力的。
豐富場景落地,生態共建
在短短的一年時間裡,有超過 4400 多位的開發者給 JuiceFS 點了個贊。這些開發者不僅僅來自於中國,也有來自於歐洲、美洲大陸、非洲,甚至中東的地區的開發者。新冠疫情雖然隔斷了我們物理上的聯絡,但開源社群讓我們齊聚一堂,一起在過去的 2021年,為 JuiceFS 的社群添磚加瓦。
過去的一年裡有超過 40 位貢獻者完成了超過 800 次 Pull Requests,這是我們通過 GitHub 和開發者群體完成的 800 次連線。在這 800 次連線的加持下,JuiceFS 釋出了 16 次新版本,這些背後默默關注 JuiceFS 的社群使用者,壓力倍增的同時也給我們滿滿的動力。
基於微信和 Slack 的社群,搭建了超過 1500 人的使用者交流群組,參與了 9 場活動,大家從使用出發,滿載而歸的是 33 篇關於 JuiceFS 的技術內容和場景實踐。在這裡,我們連線了場景和使用者。
檔案系統是各種應用開發的基石,如何與其他應用結合,提供傑出的表現和良好的體驗,形成生態,是 JuiceFS 社群的重要工作。在過去的一年中,JuiceFS 已經在一些領域受到了大家的認可,取得了不錯的進展。
大資料生態
JuiceFS 可以完全相容 HDFS,與 Hadoop 生態無縫整合,一些客戶已經替換了 HDFS實現存算分離的架構升級。
- Apache Kylin 4.0 釋出了使用 JuiceFS 構建叢集的解決方案。
- 利用 ClickHouse 和 Elasticsearch 的資料生命週期特性,JuiceFS 可以輕鬆實現資料分層儲存,為使用者增效降本。
AI 生態
JuiceFS 多訪問協議的支援可以大量省去業務流程中資料遷移排程工作,與主流機器學習、深度學習訓練框架全部相容。
- 曠視技術團隊還貢獻了 JuiceFS Python SDK,方便在 Serverless 環境中訪問 JuiceFS 資料。
- JuiceFS 快取加速是 AI 訓練場景最受歡迎的特性,PaddlePaddle 已經將 JuiceFS 整合到 Paddle Operator 中為訓練加速。
- 雲知聲團隊的夥伴為 Fluid 社群貢獻了 JuiceFSRuntime。
- 向量搜尋引擎 Milvus 也釋出了基於 JuiceFS 構建分散式叢集的解決方案。
- Byzer 社群也將 JuiceFS 作為雲原生檔案系統整合到自己的解決方案中。
Kubernetes 生態
JuiceFS 非常適合作為 PV(PersistentVolume)使用,是容器原生儲存(Container Native Storage)。社群提供了 CSI 驅動和全面的文件指南,而且已經入駐了 KubeSphere 應用商店,在 Rancher 和雲託管的 Kubernetes 服務中使用也同樣簡單。
在使用 JuiceFS 的朋友,也希望把你的經驗和問題反饋到 JuiceFS 社群,不僅能得到支援和幫助,還能讓你的經驗幫到很多人,這正是開源社群的價值和魅力。
多行業生產環境驗證,JuiceFS 1.0 來了
對於儲存系統而言,可靠性永遠排在第一位。JuiceFS 創新性地將後設資料和資料分別儲存到成熟的資料庫和物件儲存中,一開始就有了可靠性保證,這也是眾多科技公司在能夠在 JuiceFS 釋出半年內就投入生產環境並保證穩定執行的關鍵所在。依託於標準訪問協議,JuiceFS 採用了開源社群已有的測試集來保證相容性和可靠性,還有各種單元測試、壓力測試、混沌測試和效能測試保障,在產品快速迭代的同時保證每次版本釋出的高品質。
JuiceFS 開源的一年裡,已經有小米、Shopee、理想汽車、知乎、航天巨集圖、堯信等多家廠商在生產環境中部署了 JuiceFS,穩定執行半年以上。
- 小米用 JuiceFS 做 AI 平臺的儲存底座。
- Shopee 將 JuiceFS 作為雲平臺的檔案儲存服務提供給各業務線,支援了多樣的業務場景。
- 理想汽車用 JuiceFS 實現了數倉的存算分離。
- 知乎用 JuiceFS 把 Flink 流計算的啟動載入提速 4 倍。
- ....
JuiceFS 已經穩定持續的執行多家網際網路和 AI 企業的生產環境中,不僅僅為客戶降本,更為客戶提升資料使用的效率和縮短新業務上線的週期,當然內建的資料保護和加密也讓客戶大大寬心。在過去的一年裡,每天線上的 JuiceFS 叢集數量也穩步上升,從最初的幾個,到現在的超過 500,保持了較高的增長速率。值得一提的是,這僅僅是我們有記錄的資料,相信還有很多我們沒聯絡到的使用者。
在國內外網際網路、自動駕駛、基因測序、金融科技、智慧製造等多個行業,以及廣大社群開發者的支援、驗證和持續反饋之下,經過全面的評估和各類場景下的驗證,JuiceFS 社群將於本週釋出 JuiceFS v1.0-beta,歡迎社群使用者測試並給我們反饋,根據反饋改進後釋出 v1.0-GA。
重新思考開源許可
回到 2021 年釋出之初,JuiceFS 只支援在掛載後通過 POSIX 方式訪問資料,應用是通過核心來訪問資料,並不需要直接跟 JuiceFS 打交道,應用並不會被 GPL 系列的許可影響,所以當時採用了檔案儲存界使用最廣泛的 GPL 許可(AGPL v3)。
隨著 JuiceFS 的不斷迭代,引入了更多的訪問協議和 SDK(S3 相容的 HTTP 協議以及跟 HDFS 相容的 Java SDK),影響使用者基於它們去開發商業產品。同時,也有一些開源社群和開發者希望將 JuiceFS 作為儲存底座,整合到自己的專案中,但 AGPL v3 與其他開源協議(比如 Apache 協議)的相容性不太好,阻礙了更多人去享受 JuiceFS 提供的多協議互通和高效快取系統等諸多便利。
所以,為了我們的初心——打造開發者最喜歡的儲存產品,Juicedata 團隊決定自 JuiceFS v1.0 起將許可更改為 Apache 2.0。
重新定義檔案儲存,未來可期
JuiceFS v1.0 是一個重要的里程碑,代表它可以被放心的使用於各種場景的生產環境,開始接受更多更嚴苛的挑戰。之後社群仍將持續加大投入,持續為大家帶來更多有價值的特性,比如呼聲最高的配額管理,Snapshot,支援更多後設資料引擎等。
隨著資料規模的快速增長,分散式檔案系統愈發重要。傳統分散式檔案系統都採用自底向上的一整套系統,複雜度非常高,難以掌握。JuiceFS 創新性地分離後設資料和資料儲存,並儘量複用已有的成熟資料庫和物件儲存等基礎設施,訪問協議也是同時相容所有主流的介面,將分散式檔案系統的系統複雜度和使用門檻大幅降低,重新定義了分散式檔案系統的構建方式,通過一套體系和不同元件的搭配,可以滿足不同規模和場景的非結構化儲存需求。同時,JuiceFS 是完全雲原生的設計,可以跟雲上的生態很好地銜接,符合雲端儲存發展的大趨勢,有非常廣泛的應用前景。
儘管 JuiceFS 已經做了非常多的減法,儘量避免重複造輪子,打造成熟可靠的儲存產品仍然需要巨大的工程投入。我們在過去一年裡也進一步壯大了工程師團隊,很多都是從 JuiceFS 社群的參與到加入 Juicedata 團隊,也歡迎更多志同道合的同學們加入,一起開創分散式檔案儲存的新時代。
開源產品的研發,需要持續的資金投入,我們花了 4 年驗證過的商業化服務也在快速增長,為 JuiceFS 的發展提供持續可靠的資金保障。開源是我們的星辰大海,商業化為它保障護航。
道阻且長,但行則將至!
歡迎關注我們專案 Juicedata/JuiceFS 喲! (0ᴗ0✿)