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