微軟最近的發(fā)展使得大多數(shù)傳統(tǒng)的Windows系統(tǒng)管理員好奇他們究竟能在歷史版本的操作系統(tǒng)上進(jìn)行多大程度上的異構(gòu)操作,并且所需的IT人員也超出了原有的規(guī)模限制。Windows Docker正在襲來,在Azure云平臺(tái)上運(yùn)行的Linux虛擬機(jī),即將到來的Nano Server沒有用戶圖形界面且需要熟悉PowerShell,傳統(tǒng)的客戶端-服務(wù)器架構(gòu)正在漸行漸遠(yuǎn)。
Linux和開源軟件曾被認(rèn)為是公司的克星,微軟已經(jīng)應(yīng)用一些新的技術(shù),幫助應(yīng)用程序開發(fā)以及云計(jì)算能夠更加吸引客戶。對(duì)更高效率的追求已經(jīng)促使微軟在Windows Server 2016中加入了對(duì)容器的支持,預(yù)計(jì)將在2016年下半年實(shí)現(xiàn)。容器可提供更高的資源利用率以及更快的應(yīng)用程序開發(fā),然而這對(duì)于大多數(shù)Windows系統(tǒng)管理員意味著什么?容器的管理功能是否已經(jīng)開發(fā)了相關(guān)必要的工具來支撐當(dāng)前的工作量?
我們就Windows Docker容器對(duì)于應(yīng)用虛擬化應(yīng)用程序的IT管理員的意義的議題咨詢了SearchWindowsServer的咨詢委員會(huì)成員。
Brien Posey
容器代表著一種新的,更具效率的應(yīng)用程序運(yùn)行方式。因?yàn)樵趩我环?wù)器上允許運(yùn)行多個(gè)任務(wù),虛擬服務(wù)器已變得更加主流,然而它們也有相當(dāng)?shù)托实囊幻妫驗(yàn)槊總€(gè)虛擬機(jī)都使用自己專用的操作系統(tǒng)。容器通過允許OS組件來提升效率,在某些案例中,可以被多個(gè)容器化的應(yīng)用程序組件共享使用。要進(jìn)行這些共享無需在不同的容器獨(dú)立邊界間進(jìn)行折衷。
起初,對(duì)于Windows管理員最大的挑戰(zhàn)在于學(xué)習(xí)曲線(學(xué)習(xí)投入的時(shí)間與成效的關(guān)系曲線,譯者注)。容器需要管理員從全新的角度去思考應(yīng)用程序、操作系統(tǒng)以及虛擬機(jī)。如果不熟悉容器相關(guān)的技術(shù),在進(jìn)行轉(zhuǎn)換時(shí)幾乎會(huì)面臨各種挑戰(zhàn)。例如,管理員需要重新思考備份的辦法,尋找并解決問題的方法甚至是工作負(fù)載的可擴(kuò)展性。
一旦Windows商店通過了學(xué)習(xí)曲線最初的階段,容器化所面臨的最大挑戰(zhàn)即是管理問題。即便已經(jīng)存在為Windows容器準(zhǔn)備的工具,在他們變得好用之前還需要一些時(shí)間。
一些人預(yù)測(cè)容器最終將徹底取代服務(wù)器虛擬化。我并不認(rèn)為虛擬機(jī)管理程序會(huì)很快消失,但其所承擔(dān)的角色可能會(huì)發(fā)生變化。相比于當(dāng)前的虛擬機(jī)主機(jī),虛擬機(jī)管理程序最終很可能被更多地運(yùn)用于容器的主機(jī)。
Trevor Pott
容器對(duì)于普通Windows管理員很可能意義非凡,這要取決于微軟如何為組件辦法和設(shè)定許可證。
操作正確的話,容器可以成為Windows已安裝應(yīng)用提供新的安裝方式。相對(duì)于操作系統(tǒng)中散亂的庫和數(shù)據(jù),應(yīng)用程序所需的每一個(gè)單獨(dú)的文件和注冊(cè)表項(xiàng),所有內(nèi)容都會(huì)被限制在其自身的容器內(nèi)部。安裝應(yīng)用程可以簡單到將容器復(fù)制過來并注冊(cè)就可以完成,卸載過程則是簡單到反注冊(cè)容器并刪除其自身就可以。傳統(tǒng)的應(yīng)用程序安裝往往造成其與OS之間產(chǎn)生千絲萬縷的關(guān)系,因此容器這一特性非常重要。開發(fā)人員不遵守微軟的操作規(guī)程,而微軟的操作規(guī)程經(jīng)常發(fā)生變化。容器化應(yīng)用程序間的通信也是依靠傳統(tǒng)網(wǎng)絡(luò)而非操作系統(tǒng)的內(nèi)部消息進(jìn)行。這意味著其通信在應(yīng)用程序?qū)用娴膫鬟f可能被防火墻拒絕、被調(diào)查,以確定是否存在安全性問題。
許多人認(rèn)為使用PowerShell就足夠了,但絕大多數(shù)Windows管理員為小公司工作更喜歡圖形化的用戶界面。除非出現(xiàn)比過去幾年微軟所使用的更好的用戶界面,否則喜歡使用命令行和腳本的管理員們還是不會(huì)買賬。
當(dāng)前,對(duì)擁有自己的室內(nèi)開發(fā)團(tuán)隊(duì),開發(fā)室內(nèi)應(yīng)用程序的公司來說,容器是一種很方便的封裝應(yīng)用程序的方式。該方式對(duì)于需要大規(guī)模操作的運(yùn)營團(tuán)隊(duì)也許很有幫助,但我尚未發(fā)現(xiàn)此類團(tuán)隊(duì)有使用微軟.產(chǎn)品的先例,因?yàn)閺慕?jīng)濟(jì)意義上說不可行。
管理員們要重點(diǎn)關(guān)注的是容器并不是虛擬化的替代方案,不理解容器本質(zhì)的人才會(huì)認(rèn)為它是虛擬化的替代。容器是應(yīng)用程序封裝的方式,虛擬機(jī)管理程序則是操作系統(tǒng)封裝的方式。他們之間是有很大差別的。
當(dāng)我封裝操作系統(tǒng)時(shí),我會(huì)把整個(gè)環(huán)境都進(jìn)行打包,包括所有的庫、內(nèi)核版本、配置、監(jiān)控、網(wǎng)絡(luò)配置等等。操作系統(tǒng)有很多靈活部件,調(diào)整它們中的一個(gè)就可能影響到應(yīng)用程序的運(yùn)作方式。
容器自身擁有一部分,并不是很多的網(wǎng)絡(luò)元素。它們能將部分而非全部的與庫關(guān)聯(lián)的文件封裝到應(yīng)用程序中。它們不能封裝操作系統(tǒng)的內(nèi)核以及其他許多操作系統(tǒng)層面的環(huán)境變量。
如果你有10000個(gè)應(yīng)用程序都需要相同配置的運(yùn)行環(huán)境,就意味著你需要在相同的操作系統(tǒng)上運(yùn)行10000個(gè)容器。然而,如果你的10000個(gè)應(yīng)用程序需要運(yùn)行在8種不同的環(huán)境之上,在8種不同的虛擬機(jī)上運(yùn)行它們,并將你的應(yīng)用程序在對(duì)應(yīng)的操作系統(tǒng)上按類型劃分到不同的容器中即可。
盡管微軟做出了很多努力,但沒有數(shù)據(jù)中心是完全相同的。即使不同的公司運(yùn)行相同的版本的內(nèi)置操作系統(tǒng),其配置文件的內(nèi)容也是多種多樣,并且?guī)缀跛械墓径歼\(yùn)行著多種版本的操作系統(tǒng)。這說明數(shù)據(jù)中的不同環(huán)境是司空見慣并且是可預(yù)見到的。因此虛擬機(jī)管理程序并非隨處可見。
然而容器允許更加容易地封裝應(yīng)用程序,因此站在運(yùn)營團(tuán)隊(duì)的立場上說,理性的選擇是將所有內(nèi)容打包,至少是將在相關(guān)虛擬機(jī)的操作系統(tǒng)運(yùn)行的應(yīng)用程序部署到容器中。在容器中部署的應(yīng)用程序可共享操作系統(tǒng)的配置參數(shù)。最終建成的數(shù)據(jù)中心也許未必是最具有效率的,但卻是在理論上的完美效率和現(xiàn)實(shí)世界的易于管理中間實(shí)現(xiàn)平衡折衷。