阿里開源OpenJDK 發行版Dragonwell
近日有消息顯示,阿里將於21 日重磅發布其OpenJDK 發行版Alibaba Dragonwell。我們知道OpenJDK 是基於GPL v2/Classpath Exception 的JDK 開源版本,有許多公司都在OpenJDK 的基礎上提供了自己的發行版,比如Oracle、AdoptOpenJDK、Azul、IBM 與Red Hat,一般這些供應商會將自行衍生的OpenJDK 版本加入一些商業/非商業支持選項。
去年AWS 也推出了自己的OpenJDK 發行版Corretto,背後甚至有Java 之父James Gosling “站台”,一時間引起不小反響。
常規理解,AWS 搞Corretto 也算是一種“造輪子”,但是它提供的長期支持包括安全修復、常用功能增強、GC 調度、防止內存溢出,以及改進的監控、報表和線程管理等,這樣的能力再加上AWS 強大的客戶和社區生態依賴,有理由讓人相信Corretto 這輪子是具有較高實際意義的。
阿里此次將發布的Alibaba Dragonwell 也聲稱LTS,並且阿里的客戶與開發社區體量自然也無庸贅述,那麼同為“造輪子”,Alibaba Dragonwell 這個OpenJDK 發行版會帶來些什麼呢?
阿里雲智能資深技術專家李三紅向開源中國提前透露了Alibaba Dragonwell的一些信息。
第一印像是Dragonwell 這個名字,龍井茶?是寓意像龍井一樣的品質嗎?分享一下背後的想法吧。
Java 本身就是一種咖啡的名字,AWS 開源的Corretto 也是一種咖啡名。
在取名字的時候,我們也考慮了很多。中國的Java 開發者將是Alibaba Dragonwell 重要的用戶群體,所以我們想從一些有中國特色的飲品名中尋找靈感,既能代表中國的文化,同時也希望這個名字中能有非常宏大的意願,能夠詮釋她包容一切。最終想到了杭州的綠茶——龍井。
另一方面,龍井的英文名字Dragonwell也正好符合我們想要表達的意思。其中的“well”這個單詞,就有著將很多水源匯聚在一起,一同享用的寓意,正好貼合開源協作分享的精神理念。這也是阿里開源JDK的初衷,希望將許多開發者的貢獻匯聚在一起,讓大家能夠一起免費使用Java,一起推動Java的進步。
為什麼要去做這個東西?請介紹一下相關背景。
大家都知道Java 一直是由Oracle 主導的,從2017 年開始,Oracle 開始陸陸續續轉變了一些Java 的策略。在2018 年CodeOne(原JavaOne)大會上,來自Java Platform Group 的首席架構師Mark Reinhold 作了“The Future of Java is Today”的主題演講,重點闡述了Java 發布模式的變化。
他指出,從Java 11(包含)以及以後的版本開始,Oracle 將不再提供免費的長期支持,如果你需要長期支持,可以通過向Oracle 付費的方式獲得。而Java 8 的免費更新也將會在2019 年一月份停止(目前已經停止)。
所以除非你是Oracle 或者其它提供商業JDK 廠商的付費客戶,否則唯一的選擇就是社區維護的OpenJDK 版本,可以預見Java 開發者從Oracle JDK 切換到開源OpenJDK 的現象會越來越多。
阿里可以說是全球最大的Java 用戶之一,而JDK 又是Java 的一個基礎設施。我們其實早從2010 年開始,就已經基於OpenJDK 開源軟件進行開發與定制。9 年來,支撐了阿里經濟體內所有的Java 業務,歷經多年的“雙11”考驗,積累了大量業務場景下的實踐經驗。
阿里作為一家這麼大體量的Java 用戶,我們有一份責任,就是把我們的JDK 開放出去,給所有Java 用戶一個新的選擇。同時,對於阿里自身來說,Alibaba Dragonwell 會針對LTS 的兩個版本Java 8 和Java 11 隨阿里雲VM 鏡像發布,免費提供給阿里雲客戶使用。
也就是說Alibaba Dragonwell 會基於OpenJDK 8 和11?那麼以後會更注重Java 新特性的跟進還是保證提供支持呢?對它今後的發展有什麼設想或者目標?
此次發布的Alibaba Dragonwell 8 預覽版本對應於上游的OpenJDK 8 的版本。Alibaba Dragonwell 作為OpenJDK 下游,是一款免費的JDK 發行版,它將提供長期支持,包括關鍵修復和安全更新。
Alibaba Dragonwell 支持x86-64/Linux 平台,它的特點,或者說所注重的是:在數據中心Java 應用大規模部署的情況下,穩定性、效率以及性能的優化與提高。
Alibaba Dragonwell的前身是阿里巴巴內部使用的AJDK,或者換個角度來看,Alibaba Dragonwell是AJDK優勢的繼承者。作為AJDK的開源版本,Alibaba Dragonwell將沿襲AJDK的技術優勢以及實踐場景累積下來的技術經驗。
AJDK 有眾多的技術創新,包括多租戶、Wisp 協程技術與ZenGC 等,我們希望逐步把阿里巴巴內部積累的技術創新開源出來貢獻給OpenJDK 社區,並在Alibaba Dragonwell 中沉澱下來。
什麼時候GA,目前有沒有各個階段具體的發佈時間表?
目前發布的版本是Alibaba Dragonwell 8 Preview 預覽版,Alibaba Dragonwell 將每季度發布一個更新,目前計劃是Preview 的三個月後發布GA。Alibaba Dragonwell 11 預計年底發布。
Alibaba Dragonwell 8 是一個LTS 版本,它的生命週期具體是怎樣的?最近大家對開源協議相關的問題都怕了(也就是開源協議其實可以根據廠商需要作變更),那目前/將來Dragonwell 會不會加入一些支持限制條款呢?
不會。Alibaba Dragonwell 是OpenJDK 下游,我們會嚴格遵循OpenJDK 社區相關原則及協議。
前陣子AWS 也推出了自己的OpenJDK 發行版Corretto;再往前,其實Azul 與Red Hat 等廠商也有提供OpenJDK 版本。那麼阿里的Dragonwell 有什麼優勢、特點呢?
前面也提到了,Alibaba Dragonwell 注重的是在數據中心Java 應用大規模部署的情況下,穩定性、效率以及性能的優化與提高。
具體來說:
- 緊密與OpenJDK 社區保持合作,保持對社區工作的跟踪,及時同步上游更新。
- Alibaba Dragonwell 發行版與Java SE 標準兼容。
- AJDK 上孵化的創新技術,會逐步貢獻OpenJDK,並在Alibaba Dragonwell 沉澱。比如這次發布的版本中包含了JWarmUp 功能,它優化了JVM 重啟後的預熱過程,具體技術細節可以參考用戶手冊。
- 基於阿里工程實踐,Alibaba Dragonwell會選擇移植高版本Java的重要功能,這些移植功能已經在阿里內部被大規模部署,用戶都可以免費使用,而不用等下一個LTS版本。比如這次版本移植了上游Java 11的Java Flight Recorder(JFR)功能,Java開發人員可以通過JFR收集JVM運行過程中的詳細的profiling信息,配合Java Mission Control(JMC),大幅提高Java應用的問題診斷及性能優化效率。這對於仍然停留在Java 8的用戶來說,還是非常有意義的。