龍井「上市」,阿里巴巴持續開源回饋社區
3 月 21 日在阿里雲峰會·北京上,阿里巴巴旗下的阿里雲當天即發布多款重磅產品,涵蓋了超級計算、雲原生資料庫,以及SaaS 加速器,包括神龍異構超算集群、新版本 Polardb 可兼容 Oracle 資料庫、輕量級 GPU 異構計算產品——VGN5i 實例等。阿里雲總裁兼阿里巴巴 CTO 張建峰稱,阿里雲已經成為阿里巴巴經濟體的技術基石,將繼續加大投入,擴大核心技術的代際領先優勢。
在本次峰會上,阿里巴巴還宣布開源 OpenJDK 長期支持版本 Alibaba Dragonwell,為全球 Java 界開發者提供了一個新的選擇。該版本廣泛應用於阿里巴巴旗下業務,在大規模 Java 應用部署下的穩定性、效率以及性能優化有突出的優勢。
Java 是全球應用最廣泛的語言技術棧。據統計,全球 Java 開發工程師超過 1000 萬名。而 JDK 作為 Java 語言的軟體開發工具包,是整個 Java 應用的核心。當前,在 JDK 全球市場份額中,Oracle JDK 占 70%、OpenJDK 約佔 21%。但 2019 年 1 月之後,Oracle 不再提供 Oracle JDK 8 免費商業版本更新。
阿里巴巴一直不遺餘力地推動全球 Java 技術進步。自 2010 年起,阿里就開始基於 OpenJDK 開源軟體進行開發與定製。作為全集團 Java 應用的基石,Alibaba Dragonwell 支撐了阿里經濟體內所有的 Java 業務,保證了多年來「雙 11」的平穩運行,積累了大量業務場景下的實踐經驗。在大規模 Java 應用部署情況下,Alibaba Dragonwell 可以大幅度提高穩定性、效率及性能。
2018 年,阿里巴巴還作為首家且唯一的中國企業,獲邀加入 Java 全球管理組織 Java Community Process(JCP)的最高執行委員會,為 Java 語言規範作出貢獻。
「Dragonwell 中文譯為龍井,象徵著中國的茶文化,又恰好是杭州特色。well 一詞通常被描述為水源匯聚在一起供大家分享,這也是我們開源的初衷,希望可以集合開發者的力量,不斷完善該項目並最終貢獻給所有用戶。」阿里雲智能資深技術專家李三紅在採訪中表示,阿里本身就是 Alibaba Dragonwell 的最大用戶之一,未來一定會持續維護,這是毫無疑問的。同時也希望有更多的開發者參與貢獻,讓 Java 變得更好。
作為世界頂尖技術舞台上最活躍的力量之一,阿里巴巴始終積極擁抱開源,回饋社區。截止目前,阿里巴巴已經參與了 9 家全球開源基金會及組織,包括 Linux Foundation、Cloud Native Computing Foundation、Apache Software Foundation、Continuous Delivery Foundation 等,是 Linux、MySQL、JVM、Kubernetes、etcd、containerd、Flink、Envoy 等知名開源項目的核心貢獻者和維護者,並主導開源 400 多個項目,涉及中間件、框架、組件、資料庫、存儲、工具領域等。
就此次 Dragonwell 開源的一些情況,記者採訪了阿里巴巴相關負責人。
Dragonwell,龍井?是寓意像龍井一樣的品質嗎?背後的想法是什麼呢?
Java 本身就是一種咖啡的名字,AWS 開源的 Corretto 也是一種咖啡名。
在取名字的時候,我們也考慮了很多。中國的 Java 開發者將是 Alibaba Dragonwell 重要的用戶群體,所以想從一些有中國特色的飲品名中尋找靈感,既能代表中國的文化,同時也希望這個名字中能有非常宏大的意願,能夠詮釋她包容一切。所以我們想到了杭州的綠茶——龍井。而它的英文名字 Dragonwell 也正好符合我們想要表達的意思。其中的 well 這個單詞,就有著將很多水源匯聚在一起,一同享用的寓意,正好貼合開源的協作分享的精神理念,這也是阿里開源 JDK 的初衷,希望將許多開發者的貢獻匯聚在一起,讓大家能夠一起免費使用 Java,一起推動 Java 的進步。
為什麼要去做 Dragonwell?是否可以分享一下相關背景?
大家都知道 Java 一直是由 Oracle 主導的,早從 2017 年開始,Oracle 開始陸陸續續轉變了一些 Java 的策略。去年也宣布了將從今年開始不再提供 OracleJDK 的免費更新。
阿里可以說是全球最大的 Java 用戶之一,而 JDK 又是 Java 的一個基礎設施。我們其實早從 2010 年開始,就已經基於 OpenJDK 開源軟體進行開發與定製,9 年來,支撐了阿里經濟體內所有的 Java 業務,歷經多年的「雙 11」考驗,積累了大量業務場景下的實踐經驗。
阿里作為一家這麼大體量的 Java 用戶,我們有一份責任,就是把我們的 JDK 開放出去,給所有的 Java 用戶一個新的選擇。同時,對於阿里自身來說,Alibaba Dragonwell 會針對 LTS 的兩個版本 Java8 和 Java11 隨阿里雲 VM 鏡像發布,免費提供給阿里雲客戶使用。
Alibaba Dragonwell 是基於哪個版本的 JDK?什麼時候 GA,目前有沒有各個階段具體的發布時間表?
此次發布的 Alibaba Dragonwell 8 預覽版本對應於上游的 OpenJDK 8 的版本。Alibaba Dragonwell 作為 OpenJDK 下游,是一款免費的 JDK 發行版。它提供長期支持,包括關鍵修復和安全更新。
Alibaba Dragonwell 支持 x86-64/Linux 平台。Alibaba Dragonwell 的特點,或者說她所注重和強化的是:在數據中心大規模 Java 應用部署情況下,穩定性、效率以及性能的優化與提高。
目前發布的版本是預覽版。 Alibaba Dragonwell 將每季度發布一個更新。目前計劃是預覽版的三個月後發布 GA。Alibaba Dragonwell 11 預計年底發布。
以後會更注重 Java 新特性的跟進還是保證提供支持呢?對它今後的發展有什麼設想或者目標?
Alibaba Dragonwell 的前身是阿里巴巴內部使用的 AJDK。作為 AJDK 的開源版本, Alibaba Dragonwell 將沿襲 AJDK 的技術優勢以及實踐場景下的技術經驗。AJDK 有眾多的技術創新, 包括多租戶、Wisp 協程技術、ZenGC 等。 我們希望逐步把阿里巴巴內部積累的技術創新開源出來貢獻給 OpenJDK 社區, 並在 Dragonwell 沉澱下來。
最近出現了一些開源軟體變更開源協議問題,那目前/將來 Dragonwell 會不會加入一些支持限制條款呢?
不會。Alibaba Dragonwell 是 OpenJDK 下游,我們會嚴格遵循 OpenJDK 社區相關原則及協議。
前陣子 AWS 也推出了自己的 OpenJDK 發行版 Corretto,背後甚至有 Java 之父「站台」;再往前,其實 Azul、Red Hat 等廠商也有提供 OpenJDK 版本。那麼阿里的 Dragonwell 有什麼優勢、特點呢?
具體來說:
- 緊密與 OpenJDK 社區保持合作,保持對社區工作的跟蹤,及時同步上游更。
- Alibaba Dragonwell 發行版與 Java SE 標準兼容。
- AJDK 上孵化的創新技術,會逐步貢獻 OpenJDK,並在 Dragonwell 沉澱。比如這次版本包含的 JWarmUp 功能。 具體技術細節可以參考我們的用戶手冊。
- 基於阿里工程實踐,Alibaba Dragonwell 會選擇移植高版本Java的重要功能,這些移植功能已經在阿里內部被大規模部署,用戶都可以免費使用,而不用等下一個 LTS 版本。比如這次版本移植了上游 Java 11 的 Java Flight Recorder (JFR)功能,Java 開發人員可以通過 JFR 收集 JVM 運行過程中的詳細的 profiling 信息,配合 Java Mission Control(JMC),大幅提高 Java 應用的問題診斷及性能優化效率。這對於仍然停留在 Java8 的客戶來說,還是非常有意義的。
很多開發者使用的都是 Oracle 官方的 OracleJDK,大家什麼情況下會去使用 OpenJDK 發行版,具體到 Dragonwell 是怎樣呢?
在 2018 年 CodeOne(原 JavaOne)大會上,來自 Java Platform Group 的首席架構師 Mark Reinhold 做了「The Future of Java is Today」的主題演講,重點闡述了 Java 發布模式的變化,重點是:從 Java11 (包含)以及以後的版本,Oracle 將不再提供免費的長期支持。如果你需要長期支持,可以通過向 Oracle 付費的方式獲得。而 Java8 的更新也將會在 2019 年 1 月份停止。
所以除非你是 Oracle 的付費客戶,否則唯一的選擇就是社區維護的 OpenJDK 版本。可以預見 Java 開發者從 Oracle JDK 切換到開源 OpenJDK 會越來越多。
阿里作為世界頂尖技術舞台上最活躍的力量之一,始終積極擁抱開源,回饋社區。我們本身就是世界上最大 Java 用戶之一,未來會持續與 OpenJDK 社區的緊密合作,做好 Alibaba Dragonwell 的維護與開發工作。對於廣大的 Java 開發者而言,Alibaba Dragonwell 是一個免費的新選擇。同時我們也希望有更多的開發者能參與到社區里來、讓 Java 變得更好!
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive