像云這樣重大的IT趨勢已經用了一些年頭來普及——盡管其中有過一些消長,但是它們向前的腳步不可阻擋。其他一些則似乎是出人意料地完全征服了企業世界。過去12個月,像Docker那樣為快速可伸縮性提供了大量制造微型容器能力的容器環境和分布式應用平臺就是這樣。這證明了影響深遠的變革可以來自于小小的文件包。
傳統的晚期采用者這次早早加入
ZeroTurnaround的開發大使Simon Maple對大企業也樂于接受容器化感到驚奇。“Docker這個東西在2014年已經獲得了強勁的發展勢頭。對于我來說其中一件大事是,這個東西通常一般是初創企業和SMB會先嘗試的。但是現在我們已經看到IBM以及RedHat也進入了容器風格的基礎設施。可以看到它已經與企業發生了碰撞。對于一個只有1年多時間的東西來說這是令人驚奇的。”
虛擬化是不是已經過時了?
ZeroTurnaround CEO Jevgeni Kabanov對這一新趨勢能在多大程度上改變IT現狀有著大膽的預測。“我認為從長期來看容器化將會干掉虛擬化。”的確是非常大膽的話,但是Kabanov有這個想法已經不是一天兩天了:“我從來就沒理解過虛擬化的要點是什么。過去10年都是這樣的觀點。我認為虛擬化將一直擁有一席之地。但是大多數并不希望將整個操作系統虛擬化。他們只是希望在容器里面運行應用。他們希望以一種可預測的方式運行自己的應用。虛擬化增加了大量的性能過載。如果一切都同等的情況下,為什么你還會想用虛擬化呢?”
對容器化有贊有彈
由于容器化允許組織在托管操作系統上運行應用,所以在完全虛擬化的環境下有若干潛在好處。不需要專門分配資源給第二套OS、調度程序或者分頁系統。I/O、CPI以及內存效能可以提升。甚至盡管虛擬化原來是開發來幫助組織發揮物理基礎設施潛能的,但是也還是要有代價的。
那容器化有沒有弊端呢?移除了抽象層也許可以提高效能,但是并不能像虛擬化那樣確保資源可用。而且其隔離程度也要低一些——這個會存在潛在的安全風險。如果繞開管理程序(hypervisor)的話,安全問題有可能很快就會升級。對于安全意識很強的公司來說,虛擬化額外的負載帶來的成本也許是值得的。或者,容器化也可以通過在托管O/S上增加安全措施來彌補缺少隔離的問題。
對于Java企業社區來說容器化意味著什么
Maple對于容器化會如何影響虛擬化也有一個有趣的觀點。“JVM的一大價值之一是你可以寫好代碼然后部署到不同的鏡像和環境上。有了容器之后,其價值就略為減少了一些。你不再需要具備一次編寫隨地運行的能力。你可以把所有的開發工作都集中在這個LINUX鏡像上,然后不斷生成新的。把它放到任何地方都可以,基于LINUX的分布仍不變。”
過時術語會不會復活?
盡管虛擬可能面臨容器化的重大挑戰,SOA卻有可能卷土重來—至少是從概念上來說。Liferay的資深軟件開發者Ray Auge解釋說:“我知道,SOA屬于一種過時的術語,但是從技術上來說,云就是把一切當作服務來交付。所以說服務才是至關重要的。你把一組服務展示給一大批最終用戶客戶端。但同時你也把那些服務以混搭的方式組合起來創建出應用。無論是Docker趨勢、容器化、App服務器之死,還是微服務,我們都可以看到其中服務的概念。這一切都受到了對服務進行獨立伸縮、監控、定義、組合、重用、維護并在無需重新部署的情況下進行變更的推動。”
舊愛還會不會徘徊?
容器化的簡潔也許會令人對JVM不那么渴望,但是Simon指出JVM在其他領域還有很多價值。可能它的狀況還不算危險。然而,像WebSphere以及WebLogic這樣的JEE主流玩家會為了錢而繼續運轉。現在預測事情會如何進展還為時尚早。但是我們會一直關注好讓讀者了解容器化與虛擬化之爭的最新情況。