目前軟件容器技術(shù)革命尚處于早期發(fā)展階段,而微軟公司正積極著手運用Docker容器機制及精簡化操作系統(tǒng)幫助自家Windows Server堆棧同其它平臺展開競爭。Linux早在起步階段就作為現(xiàn)代分布式應(yīng)用程序的根據(jù)地存在,而包括Docker、CoreOS rkt以及LXC Linux容器在內(nèi)的各類相關(guān)方案皆立足于此。另外,紅帽公司亦在主動將自家精簡型Linux(名為Atomic Host)推向商業(yè)化市場,谷歌也拿出了開源Kubernetes容器控制系統(tǒng)。
面對服務(wù)器虛擬化老對手VMware,微軟方面自然不甘示弱,雙方正爭相為Docker提供支持,同時推出用于承載容器化應(yīng)用程序的精簡操作系統(tǒng)。VMware公司目前已經(jīng)有計劃創(chuàng)建自家精簡型Linux——名為Photon項目,并有意以開源方式幫助其進(jìn)一步擴(kuò)展普及度。另外虛擬巨頭還為其ESXi虛擬機管理程序設(shè)計出新的虛擬機實現(xiàn)方式,命名為Bonneville項目,旨在對ESXi虛擬機加以簡化、使其呈現(xiàn)出與Docker容器相仿的外觀與運作方式。
Photon與Bonneville相結(jié)合將并發(fā)出巨大的能量,微軟公司當(dāng)然很清楚這一點。Photon的內(nèi)存占用量大約為25 MB,相比之下完整安裝的Linux操作系統(tǒng)則擁有高達(dá)3 GB的臃腫體積。微軟目前尚未正式公布其Nano Server規(guī)范,也就是其即將推出的Windows Server精簡版,但已經(jīng)展示出一臺擁有160個計算核心以及1 TB內(nèi)存的主機樣品。這臺主機能夠在Hyper-V虛擬機管理程序之上承載多達(dá)1000個Nano Server實例,如此出色的容納能力意味著Nano Server確實是一款具備極端輕量化屬性的系統(tǒng)。(如果大家親自計算,就會發(fā)現(xiàn)每個實例的內(nèi)存占用量約為1 GB,這完全無法與25 MB的Photon相提并論。)
VMware公司在x86硬件平臺之上憑借著強大的服務(wù)器虛擬化技術(shù)將微軟穩(wěn)穩(wěn)壓倒,其目前年營收高達(dá)60億美元,并在全球范圍內(nèi)擁有超過50萬家客戶以及運行在數(shù)百萬臺服務(wù)器之上的5000萬套虛擬機系統(tǒng)。為了保持住如此強勢的業(yè)務(wù)表現(xiàn),虛擬巨頭自然需要以積極態(tài)度與微軟在這場軟件容器發(fā)展浪潮當(dāng)中展開競爭。VMware公司目前正著眼于開源社區(qū)戰(zhàn)術(shù)及戰(zhàn)略,當(dāng)然也包括Docker及OpenStack等技術(shù)方案,為了幫助企業(yè)客戶群體在無需更換現(xiàn)有核心VMware技術(shù)產(chǎn)品的前提下享受容器新技術(shù)的種種優(yōu)勢。微軟方面的思路也是同樣,其早在二十多年前就曾嘗試?yán)肳indows NT Server入住數(shù)據(jù)中心市場,且目前仍在繼續(xù)在Docker窗口與精簡系統(tǒng)領(lǐng)域遵循同樣的發(fā)展戰(zhàn)略。
微軟與VMware雙方都付出了大量精力,希望能夠在已經(jīng)快速成為容器化系統(tǒng)首選方案的Docker當(dāng)中占據(jù)先發(fā)優(yōu)勢。值得強調(diào)的是,Docker如今幾乎處于無可匹敵的狀態(tài),其發(fā)展速度非常驚人,同時也代表著容器技術(shù)的實際執(zhí)行標(biāo)準(zhǔn)。
需要注意的是,微軟公司在以超大規(guī)模方式運行分布式應(yīng)用程序方面極具實踐經(jīng)驗,這主要歸功于微軟旗下的Azure云以及Office 365乃至Xbox Live等作為軟件帝國組成部分存在的各類服務(wù)。精簡化Nano Server屬于Windows Server 2016的高壓縮版本,這套公布于今年4月的微軟Docker發(fā)展實施方案正是整體戰(zhàn)略當(dāng)中的核心元素所在。在Nano Server的支持下,微軟公司只提取了服務(wù)器操作系統(tǒng)中的Server Core,同時舍棄了大量可有可無的組件與功能——其中包括32位應(yīng)用支持、Minimal Server Interface與整套圖形化用戶界面堆棧、Windows Installer Service以及本地與遠(yuǎn)程桌面協(xié)議登錄功能。為了強調(diào)其小巧體積,微軟曾在今年春季提到Nano Server只相當(dāng)于Windows Server VHD虛擬磁盤鏡像體積的7%,其受攻擊面與重啟數(shù)量則分別較后者低92%與80%。
Nano Server的技術(shù)預(yù)覽版已經(jīng)公布了一段時間,但在于本周發(fā)布的Windows Server 2016第三套技術(shù)預(yù)覽版中,微軟公司第一次展示了如何利用Windows Server Containers實現(xiàn)Docker。微軟方面在Windows Server 2016當(dāng)中嵌入了與Linux平臺相同的Docker引擎守護(hù)進(jìn)程,并在Windows內(nèi)核中添加了多項功能作為支持。為了防止混淆,我們需要強調(diào)一點:這并不代表Windows能夠運行基于Linux的Docker鏡像。其實際含義在于,Windows用戶能夠像在Linux平臺上一樣使用完全相同的Docker容器創(chuàng)建及運行流程。再說得直白一點,Docker并不會意識到或者在乎自身到底是運行在Windows還是Linux系統(tǒng)平臺上,但其代碼仍然能夠正常實現(xiàn)。
微軟公司需要修復(fù)約18萬行Windows Server代碼才能完成這一浩大的系統(tǒng)瘦身工程,而這僅僅是整套系統(tǒng)代碼庫中的一小部分。微軟方面還在Windows Server內(nèi)核當(dāng)中添加了低級資源隔離抽象機制,相當(dāng)與谷歌用于幫助Linux社區(qū)開發(fā)所提供的namespaces與cgroups,為了保證Docker容器能夠運行在Windows平臺之上。軟件巨頭也調(diào)整了多款自家Visual Studio工具(包括內(nèi)部與在線版本),這樣它們就能夠創(chuàng)建出ASP.NET應(yīng)用程序并將其運行在立足于Azure公有云的Windows Server Containers(微軟版本的Docker容器方案)當(dāng)中。這些窗口可以通過Docker客戶端加以管理,并由Docker或者微軟Windows平臺上的腳本創(chuàng)建方案PowerShell進(jìn)行創(chuàng)建。
微軟公司作出承諾,表示W(wǎng)indows Server 2016的未來技術(shù)預(yù)覽版本將利用Hyper-V Containers機制實現(xiàn)Docker支持能力,其能夠在精簡化Hyper-V虛擬機當(dāng)中運行Docker容器。
根據(jù)Azure首席技術(shù)官Mark Russinovich在一篇博文中所解釋,Hyper-V容器將擁有自己的Windows內(nèi)核副本以及專屬系統(tǒng)內(nèi)存配額,這意味著其容器化環(huán)境的隔離性要高于Windows Software Containers方案。Windows Software Containers與Hyper-V容器能夠利用同樣的Docker API與Docker客戶端實現(xiàn)可部署性與可控制性。同樣的,二者在容器化軟件層面的功能性完全相同,但在資源隔離、安全性、啟動速度、內(nèi)存占用量以及其它資源需求方面則有所區(qū)別。
Docker扮演著容器技術(shù)之舟上的舵手角色
根據(jù)推測,微軟公司已經(jīng)在以Azure云為平臺運用這兩類容器方案方面積累到了豐富的經(jīng)驗。而這也是我們最希望與軟件巨頭進(jìn)行探討的議題方向。我們希望了解微軟方面如何利用這些技術(shù),又如何對其進(jìn)行內(nèi)部管理。對于Azure客戶來說,微軟公司允許他們使用Mesos、Kubernetes以及Deis工具來管理Docker窗口,而Azure則可以配合Docker Compose與Swarm容器部署及管理工具。目前DockerHub庫擁有18萬套容器方案,其中大部分面向Linux實例。我們期待著觀察在Windows Server 2016全面推出之后,Windows容器庫將迎來怎樣的發(fā)展速度。目前全球范圍內(nèi)的Windows服務(wù)器部署數(shù)量已經(jīng)達(dá)到數(shù)千萬臺,而新版本的出現(xiàn)加上容器機制的介入相信將讓這一數(shù)字得到進(jìn)一步提升。
Docker支持能力很可能成為微軟推出的,最具市場號召力與客戶吸引力的Windows Server 2016升級理由。誠然,總會有一部分客戶需要更高內(nèi)存容量或者更多計算核心數(shù)量、承載能力更強的虛擬機管理程序或者其它什么新型方案。但對于目前的大部分工作負(fù)載實例來看,Windows Server 2012的可擴(kuò)展能力已經(jīng)足以應(yīng)對。因此,如果大家想了解微軟在Docker容器的支持方面會帶來怎樣的表現(xiàn),那么這就是最好的Windows Server 2016升級理由。Docker不僅能夠幫助Windows Server在DevOps微服務(wù)領(lǐng)域保持強大的競爭能力,同時也讓客戶有了遷移至新版本甚至進(jìn)一步擴(kuò)大自身Windows Server部署規(guī)模的理由。或者,至少能夠讓客戶不至于選擇將新型應(yīng)用程序交由Linux系統(tǒng)打理。
VMware公司積極擁抱Docker的理由也是一樣。其ESXi 6.0虛擬機管理程序的可擴(kuò)展能力已經(jīng)足夠讓絕大多數(shù)客戶滿意,運行在其之上的虛擬機系統(tǒng)亦是同理。而且盡管VMware方面可以用一天時間來大談所謂軟件定義數(shù)據(jù)中心概念,但大部分企業(yè)還沒有準(zhǔn)備好全面接受其NSX網(wǎng)絡(luò)虛擬化以及vRealize云工具。這部分業(yè)務(wù)在VMware現(xiàn)有客戶群體中的占比還非常有限,而且短期內(nèi)這一比例恐怕很難快速增長。
盡管在VMware看來,讓現(xiàn)有50萬家客戶接受NSX網(wǎng)絡(luò)虛擬化方案可能對業(yè)務(wù)更具推動作用,但同樣不可忽視的是,企業(yè)客戶切實需要以規(guī)模化方式將現(xiàn)有軟件開發(fā)及部署機制推向Docker。我們認(rèn)為微軟與VMware雙方將致力于交付Docker支持能力,從而維持住現(xiàn)有客戶群體。而且如果他們無法成功實現(xiàn)這一目標(biāo),那么Linux社區(qū)將替其代勞,進(jìn)而蠶食二者的市場份額與營收空間。