由于Docker容器風(fēng)靡一時已不是什么秘密,Docker容器基于Linux,這正是其有趣之處。就這一問題,Modern Infrastructure對微軟老兵Azure核心團(tuán)隊的架構(gòu)師John Gossman進(jìn)行了采訪。
IT新架構(gòu):容器已經(jīng)推出很長時間了。在Docker以前,你看到過對容器技術(shù)存在眾多需求嗎?
John Gossman:沒有。Windows在很久以前就已經(jīng)具備了容器所具備的某些基本特征。例如,Job對象和linux cgroups類似,允許你控制資源消耗。在過去也有第三方嘗試制造Windows容器,但無法訪問內(nèi)核,要做好Windows容器是不可能的。Docker創(chuàng)造者Solomon Hykes做的是將很多容器技術(shù)整合為面向開發(fā)人員的一個很棒的功能集。這的確是很棒的創(chuàng)新,而且我認(rèn)為Docker讓所有人都大吃一驚—即使是Solomon Hykes自己。
MI(IT新架構(gòu)):請簡單概括一下微軟的容器戰(zhàn)略是什么?
John Gossman:你可以認(rèn)為是兩個吻合得很好的單獨(dú)戰(zhàn)略,但也可以彼此獨(dú)立對待。
首先,我們希望容器能夠在Windows下很好地運(yùn)行,這可以看作是Windows Server 2016技術(shù)預(yù)覽版3 中Windows Server容器特性當(dāng)中的一部分。Windows Server 2016技術(shù)預(yù)覽版3還包括一個Docker代理,與Docker 引擎使用了同樣的數(shù)據(jù)庫。這并非意味著你可以在Windows上運(yùn)行Linux Docker容器,或者是在Linux上運(yùn)行Windows容器,但是你可以獲得同樣的管理體驗(yàn)。例如,你可以使用Docker工具比如Swarm以及Compose管理Windows Server容器。還可以配置一些很有趣的混合架構(gòu):例如后端運(yùn)行微軟SQL Server數(shù)據(jù)庫,前端運(yùn)行Apache Linux。我們還支持其他的接口集,例如Canonical LXD以及我們自己的內(nèi)置API—用于管理容器,但我們希望大多數(shù)生態(tài)系統(tǒng)使用Docker。
就Azure而言,如果顧客想使用容器,我們希望確保他們能夠與Azure很好的合作,F(xiàn)在我們關(guān)注Azure平臺上用于Linux環(huán)境的Docker,例如能夠很輕松地部署Docker鏡像。我們有一個Docker擴(kuò)展,創(chuàng)建實(shí)例時只需要點(diǎn)擊鼠標(biāo)就能夠確保創(chuàng)建Docker引擎。我們也正在構(gòu)建我們自己的Docker管理與監(jiān)控功能。
MI:顧客對什么感興趣?
Gossman:我們看到顧客對Azure以及預(yù)置的Windows服務(wù)器感興趣。這兩者之間存在很多重疊。部分原因是很少有企業(yè)是完全相同的;旌霞軜(gòu)對他們具有吸引力。Azure也正在增加多樣化。我在幾個星期之前做了一次檢查,發(fā)現(xiàn)運(yùn)行在Azure平臺上的25%的虛擬機(jī)正在運(yùn)行Linux,年初時,這一數(shù)字是20%。
MI:容器的安全性如何?
Gossman:首先,我不會講容器是不安全的。如果你正在自己的數(shù)據(jù)中心內(nèi)運(yùn)行,那么你會相信自己人,運(yùn)行容器應(yīng)該不會有任何擔(dān)心。當(dāng)處于充滿敵意的多租戶環(huán)境(比如公有云)中,我們建議——正如所有其他公有云服務(wù)商做的那樣——要對虛擬機(jī)進(jìn)行硬件隔離。
實(shí)際上,我們認(rèn)為容器以及虛擬化是完全互補(bǔ)的兩種技術(shù)。這兩種技術(shù)各有優(yōu)缺點(diǎn),但我不認(rèn)為做出妥協(xié)存在技術(shù)上的原因。一切還沒有結(jié)束。在某種情況下,容器以及虛擬機(jī)將會走向融合。我們公開討論了Hyper-V容器,Windows服務(wù)器即將提供該功能,將相同的公共API作為一個容器,并封裝了輕量級Hyper-V。提供了與虛擬環(huán)境相同等級的安全性,而且還允許運(yùn)行不兼容的內(nèi)核。還付出了很多其他的努力,例如位于北京的一個創(chuàng)業(yè)項(xiàng)目HyperHQ[更不必說VMware的Photon平臺]。