最近,IBM發(fā)布了Open Liberty—WebSphere Liberty的開源實現(xiàn)—進一步體現(xiàn)了IBM為開源社區(qū)所做出的貢獻。這一版本支持基于Eclipse MicroProfile和Java EE API構(gòu)建微服務(wù)和云原生應(yīng)用。
WebSphere Liberty于2012年問世,是一個輕量級的小型應(yīng)用服務(wù)器,用于在Docker、Kunernetes或Cloud Foundry上部署符合Java EE 7規(guī)范的應(yīng)用程序。IBM網(wǎng)站上對其進行了描述:
眺望未來,我們相信Java、開放標(biāo)準(zhǔn)和開源的組合是構(gòu)建卓越應(yīng)用程序的最佳方式。因此,我們在去年聯(lián)合了Red Hat、Payara、Tomitribe和其他一些公司一起致力于推動使用Java來開發(fā)微服務(wù),我們還為我們的MicroProfile和Java EE運行時創(chuàng)建了開源版本。
這并非這些公司之間唯一的一次合作。除了OpenLiberty,IBM還發(fā)布了他們的開源JVM Eclipse Open J9。在今年早些時候,IBM還與Google及Lyft一起開發(fā)了開源項目Istio—一個用于監(jiān)控微服務(wù)的服務(wù)網(wǎng)格。
Open Liberty與Open J9及Istio組合而成的技術(shù)棧可以用于開發(fā)Java微服務(wù)和云原生應(yīng)用。開發(fā)人員還可以使用Open Liberty Tools—一系列輕量級的工具,用于開發(fā)、組裝和部署應(yīng)用程序到Open Liberty。Open Liberty的代碼庫可以在GitHub上找到。
InfoQ采訪了IBM WebSpere和Liberty運行時架構(gòu)師Alasdair Nottingham,談?wù)摿薕pen Liberty相關(guān)話題。
InfoQ:Eclipse Open J9和Istio服務(wù)網(wǎng)格是怎樣被集成到Open Liberty中的?
Alasdair Nottingham:Open Liberty與符合TCK標(biāo)準(zhǔn)的任何一種JVM兼容。不過目前Liberty還不能完全兼容Java SE 9,而Eclipse Open J9只能運行Java SE 9的字節(jié)碼。這是我們需要去解決的一個問題。因為Eclipse Open J9是基于IBM JVM開發(fā)的,所以如果它與Open Liberty能夠支持相同版本的Java SE,那么它們的結(jié)合就是天衣無縫的。從我們的經(jīng)驗來看,相比在Hotspot上運行Open Liberty,J9在內(nèi)存占用和啟動速度方面更具優(yōu)勢。
Istio意欲在Docker或Kubernetes環(huán)境中支持多種語言運行時,它通過在運行時與外部環(huán)境中間扮演協(xié)調(diào)者角色來實現(xiàn)這一目的。這也意味著,用戶可以在不修改應(yīng)用程序代碼的情況下,在發(fā)生故障時使用服務(wù)選擇、服務(wù)超時、重試和回路斷路器功能。
在這種架構(gòu)下,Open Liberty可以很容易地與Istio運行在一起。Open Liberty也支持Eclipse MicroProfile Fault Tolerance規(guī)范,為應(yīng)用程序提供了類似的容錯API,開發(fā)人員可以選擇使用Istio或自己編寫Java代碼來處理這些問題。如果Istio已經(jīng)配置了這些容錯模式,那么就可以停用Open Liberty中的這些功能,因為沒有必要讓應(yīng)用程序和Istio做相同的事情。
InfoQ:MicroProfile和Java EE 8之間的相互影響程度是怎樣的?
Nottingham:Java EE 8是一個非常重要但也很有限的更新版本,而Eclipse MicroProfile正在探索新的API,用于增強Java EE的實際應(yīng)用。
Eclipse MicroProfile對Java EE的未來已經(jīng)產(chǎn)生了重大影響,Eclipse軟件基金在這方面的進展速度驚人。最新的EE4J章程顯示,隨著Java EE移交給Eclipse,MicroProfile將會對Java EE的發(fā)展產(chǎn)生主要影響。
InfoQ:在過去的一年中,為了加快Java在微服務(wù)方面的應(yīng)用,你都與Red Hat、Payara和Tomitribe做了哪些工作?會繼續(xù)和他們合作下去嗎?
Nottingham:這是一次非常有成效的合作。雖然過渡到Eclipse對每一個人來說都是一個巨大挑戰(zhàn),但我們在MicroProfile 1.2上所取得的進展很讓人感到欣慰。每個人都使出渾身解數(shù),希望在JavaOne上有所斬獲。不管是觀眾還是參與者,都能從中體會到樂趣。
我們的合作當(dāng)然會繼續(xù)下去。這對于Eclipse MicroProfile的成功和Eclipse Enterprise for Java(EE4J)的成功來說都是至關(guān)重要的。
InfoQ:Java每六個月的發(fā)布周期對Open Liberty的開發(fā)和后續(xù)的發(fā)布有什么影響嗎?
Nottingham:是否對Open Liberty的發(fā)布周期產(chǎn)生影響要看JVM發(fā)生了哪些變更。從我們的經(jīng)驗來看,更新到新版本字節(jié)碼會占用比較多的時間。
Java EE重度使用了字節(jié)碼操作,所以更新到新版本字節(jié)碼需要做大量的工作。如果每次發(fā)布新版的Java時都伴隨字節(jié)碼的更新,那么我們就很難跟上步伐。從過去的經(jīng)驗看,我們使用了差不多六個月時間更新到新版的Java,但效果并不理想。所以,我希望字節(jié)碼的變更不會太頻繁。