大約每隔10年左右,整個(gè)數(shù)據(jù)中心業(yè)界就會(huì)開(kāi)始關(guān)注下一個(gè)大的抽象化概念,這一新的抽象化概念將激發(fā)出令人振奮的新服務(wù)器操作系統(tǒng)的形式因素。正如Redmonk公司的分析師Stephen O'Grady在他的一篇題為《抽象之路( The Road to Abstraction)》的博文中所說(shuō)的那樣:“計(jì)算機(jī)是很難的,這就是為什么說(shuō)整個(gè)技術(shù)行業(yè)歷史上的長(zhǎng)期趨勢(shì)之一便是抽象化并不奇怪的原因所在了。”
有了容器集裝箱技術(shù),數(shù)據(jù)中心業(yè)界的一個(gè)普遍的共識(shí)就是:最新的抽象單位正式到來(lái),并將要開(kāi)始取代虛擬機(jī)了。企業(yè)開(kāi)發(fā)人員們現(xiàn)在更喜歡采用容器來(lái)打包應(yīng)用程序(根據(jù)市場(chǎng)調(diào)研機(jī)構(gòu)451 Research公司的報(bào)告顯示,到2020年,這一市場(chǎng)規(guī)模將達(dá)到27億美元)。而這對(duì)于數(shù)據(jù)中心運(yùn)營(yíng)商們需要如何支持這些應(yīng)用程序及開(kāi)發(fā)人員的創(chuàng)建工作將具有深遠(yuǎn)的影響。但是,與虛擬化技術(shù)的最后一個(gè)主要抽象轉(zhuǎn)換相比,今天整個(gè)業(yè)界對(duì)于容器集裝箱技術(shù)的采用曲線其實(shí)存在著很大的差異。
下面,讓我們大家一起來(lái)看看當(dāng)下廣泛采用的容器集裝箱技術(shù)對(duì)數(shù)據(jù)中心運(yùn)營(yíng)商們所帶來(lái)的影響吧,同時(shí),我們還將探討我們當(dāng)前在該技術(shù)方面處于怎樣的水平,以及我們從以前的朝著虛擬化技術(shù)轉(zhuǎn)向的趨勢(shì)中所學(xué)到的經(jīng)驗(yàn)教訓(xùn)。
為什么開(kāi)發(fā)人員們開(kāi)始青睞容器集裝箱技術(shù)?
容器集裝箱技術(shù)的普及采用可以說(shuō)是開(kāi)發(fā)人員們朝著數(shù)據(jù)中心運(yùn)營(yíng)商們發(fā)起的“反叛起義”。而影子IT則是這次“反叛起義”的第一次迭代,由于此前需要花費(fèi)幾周的時(shí)間才能在企業(yè)內(nèi)部配置好虛擬機(jī),迫使開(kāi)發(fā)人員們直接轉(zhuǎn)向采用亞馬遜網(wǎng)絡(luò)服務(wù)(AWS),并直接使用信用卡支付來(lái)獲取服務(wù)器資源。
現(xiàn)在,容器集裝箱技術(shù)允許開(kāi)發(fā)人員們實(shí)現(xiàn)更快地遷移。因?yàn)榧词乖贏WS上,采用一臺(tái)虛擬機(jī)也需要幾分鐘的時(shí)間,而容器集裝箱則僅僅只需要幾毫秒的時(shí)間。隨著企業(yè)組織越來(lái)越傾向于優(yōu)先考慮更快地發(fā)布新產(chǎn)品和功能,以便能夠跟上當(dāng)下這個(gè)軟件消費(fèi)的世界的大趨勢(shì),開(kāi)發(fā)人員傾向于采用那些允許他們能夠比公共云和私有云服務(wù)可支持的傳統(tǒng)虛擬機(jī)更快地?cái)U(kuò)展應(yīng)用程序和部署資源的技術(shù)。而諸如Twitter和Netflix以及其他規(guī)?;W(wǎng)絡(luò)公司(其應(yīng)用程序和平臺(tái)團(tuán)隊(duì)具有基礎(chǔ)設(shè)施自主權(quán))的開(kāi)發(fā)人員模式,已經(jīng)開(kāi)始將容器集裝箱技術(shù)作為提升靈活敏捷方法的最佳實(shí)踐方案(將能夠幫助任何開(kāi)發(fā)團(tuán)隊(duì)真正實(shí)現(xiàn)“快速的遷移”),并將其納入主流了。
更進(jìn)一步分析,我們可以看到:較之虛擬機(jī),容器集裝箱技術(shù)具有各種成本和性能優(yōu)勢(shì),這有助于解釋該技術(shù)在當(dāng)下流行的原因所在了。其第一個(gè)主要的益處便是:能夠在同一臺(tái)服務(wù)器上運(yùn)行多款應(yīng)用程序或操作系統(tǒng),無(wú)需虛擬機(jī)管理程序,進(jìn)而消除了系統(tǒng)資源管理程序的阻力,所以您企業(yè)的工作負(fù)載可以有一個(gè)較輕的足跡——容器足跡為零,因?yàn)槠湓贚inux系統(tǒng)中只是一個(gè)邊界的權(quán)限和資源。
與虛擬機(jī)相比,容器集裝箱的啟動(dòng)和關(guān)閉非??焖?mdash;—完美契合企業(yè)組織當(dāng)下短暫的工作負(fù)載的短暫性質(zhì),因?yàn)檫@些工作往往是現(xiàn)實(shí)世界中的事件,并和“突發(fā)性”相關(guān)聯(lián)。最后但并非最不重要的是,鑒于具備更多的靈活性,可以在不同的云服務(wù)供應(yīng)商和操作系統(tǒng)上部署應(yīng)用程序,使得容器集裝箱對(duì)于操作系統(tǒng)的依賴關(guān)系越來(lái)越少,進(jìn)而起到了使得這些應(yīng)用程序避免被企業(yè)組織的目標(biāo)鎖定的的作用。當(dāng)然,還沒(méi)有VMware軟件許可證費(fèi)用。畢竟,這一軟件許可證費(fèi)用對(duì)于任何主要數(shù)據(jù)中心而言,都會(huì)大大增加其運(yùn)營(yíng)費(fèi)用成本。
但是,這一優(yōu)勢(shì)并未像虛擬機(jī)那樣發(fā)揮出來(lái)
容器集裝箱規(guī)則的特征之一是沒(méi)有規(guī)則。一大現(xiàn)實(shí)案例便是Docker容器模式已經(jīng)在市場(chǎng)上贏了。但隨之而來(lái)的技術(shù)選擇和豐富的快速開(kāi)源平臺(tái)比比皆是。您企業(yè)可以使用任何您所希望的Linux模式。您可以選擇快速發(fā)展的容器orchestration業(yè)務(wù)流程平臺(tái),如Kubernetes、Mesosphere DC / OS和Docker Swarm.
即使是在當(dāng)下的容器集裝箱模式級(jí)別(假定Docker已經(jīng)贏得了市場(chǎng)),現(xiàn)在也面臨一種更開(kāi)放的標(biāo)準(zhǔn)容器模式的挑戰(zhàn)。因此,數(shù)據(jù)中心運(yùn)營(yíng)商們會(huì)很快發(fā)現(xiàn)自己陷入了更深層次的問(wèn)題,這些問(wèn)題很多是尚未標(biāo)準(zhǔn)化的問(wèn)題:包括配置容器存儲(chǔ)和網(wǎng)絡(luò)化,以及對(duì)運(yùn)行中的容器的洞察,這些問(wèn)題與運(yùn)營(yíng)商們?cè)M柚摂M機(jī)技術(shù)的采用所達(dá)到的成熟度相當(dāng)。
其真正的原因可以歸結(jié)為企業(yè)現(xiàn)在實(shí)施容器集裝箱的能力還相當(dāng)不均勻,包括系統(tǒng)成熟度方面的,也有用戶意識(shí)方面的原因。
容器集裝箱的世界沒(méi)有VMware.基本上,Docker是最接近通用品牌的容器集裝箱了,但Docker遠(yuǎn)不及VMware在虛擬機(jī)發(fā)展的早期所具備的技術(shù)鎖定。一方面,容器集裝箱技術(shù)的早期采用者們有很多的選擇和靈活性,但也意味著它們必須是自己的系統(tǒng)集成商,并將許多這些工具集成在一起。
從1997年至2002年期間,VMware大概花費(fèi)了五年的時(shí)間圍繞著虛擬機(jī)技術(shù)創(chuàng)造了一個(gè)市場(chǎng)。在這五年的時(shí)間里,他們可以說(shuō)是這一市場(chǎng)唯一的玩家,并有一段時(shí)間,通過(guò)打造像VMotion技術(shù),VRS資源平衡等等方式來(lái)建立起了企業(yè)級(jí)的護(hù)欄,來(lái)進(jìn)一步封閉了該技術(shù)。
而在另一方面,Docker幾乎立即開(kāi)源了其圍繞著容器集裝箱的核心技術(shù)。紅帽、Canonical、Mirantis以及幾乎每家主要的開(kāi)源供應(yīng)商都在商業(yè)上得到支持。所以盡管Docker是第一個(gè)推動(dòng)者,但是他們失去了控制權(quán)。許多人會(huì)認(rèn)為,他們花了太長(zhǎng)時(shí)間來(lái)強(qiáng)調(diào)orchestration業(yè)務(wù)流程,這就是為什么他們?cè)赟warm采用大潮流中遠(yuǎn)遠(yuǎn)落在了Kubernetes和Mesosphere DC / OS之后的原因所在了,盡管他們?cè)驹谌萜髂J椒矫鎿碛芯薮蟮南劝l(fā)優(yōu)勢(shì)。
今天的容器集裝箱產(chǎn)品生態(tài)系統(tǒng)是數(shù)十年來(lái)我們?cè)跀?shù)據(jù)中心領(lǐng)域所看到的最大的地雷之一,無(wú)數(shù)供應(yīng)廠商爭(zhēng)相擁有現(xiàn)代應(yīng)用程序“堆棧”的各個(gè)部分。但隨著可選擇的開(kāi)放源代碼平臺(tái)的大量開(kāi)發(fā),數(shù)據(jù)中心運(yùn)營(yíng)商也面臨著挑戰(zhàn),需要選擇合適的技術(shù),并實(shí)現(xiàn)高度定制化的整合。如果您企業(yè)是像Netflix,Ebay或PayPal這樣的網(wǎng)絡(luò)規(guī)?;揞^,并且具備足夠的工程師,那么采用容器的經(jīng)濟(jì)性是有道理的。但對(duì)于需要可預(yù)測(cè)結(jié)果的市場(chǎng)上的其余企業(yè)而言,這可能相當(dāng)危險(xiǎn)。
今天,我們?cè)谌萜骷b箱技術(shù)的采用確切的處于什么水平?
沒(méi)有人會(huì)對(duì)容器集裝箱的重要性提出異議。在過(guò)去三年中,Docker本身登上頭條新聞的次數(shù)已經(jīng)呈直線上升趨勢(shì),而Kubernetes也正在開(kāi)始引發(fā)業(yè)界的廣泛興趣逐漸達(dá)到臨界,由上圖中的Google Trends即可看出。
但企業(yè)在實(shí)際生產(chǎn)過(guò)程中對(duì)于容器集裝箱的采用究竟在何處呢?雖然我相信容器集裝箱所帶來(lái)的正面積極效應(yīng)是如此令人興奮,企業(yè)將持續(xù)推動(dòng),直到該技術(shù)的采用變得無(wú)所不在,但我聽(tīng)到和看到的是,集裝箱技術(shù)通常仍然停留在第一檔,其受歡迎程度仍更多地局限于開(kāi)發(fā)人員的筆記本電腦,而幾乎沒(méi)有用于主流企業(yè)生產(chǎn)部署的用例。
今天的容器集裝箱技術(shù):好的方面
從我的觀點(diǎn)看來(lái),今天的容器集裝箱對(duì)于企業(yè)的吸引力主要包括:
面向消費(fèi)者的服務(wù)轉(zhuǎn)移到容器集裝箱化的DevOps工作流程(更廣泛的生產(chǎn)實(shí)例包括Viacom、Bloomberg和Ticketmaster等大品牌)。
借助狀態(tài)應(yīng)用程序和數(shù)據(jù)庫(kù)進(jìn)行實(shí)時(shí)分析(Verizon、Google、Apple和Uber便是其中記錄其案例研究中的大品牌企業(yè))。
容器集裝箱可實(shí)現(xiàn)從微服務(wù)到數(shù)據(jù)庫(kù)的端到端自動(dòng)化DevOps.
今天的容器集裝箱技術(shù):壞的方面
在這一技術(shù)朝著主流方向推動(dòng)的過(guò)程中,我認(rèn)為也有兩大主要障礙繼續(xù)存在:
容器集裝箱自身不穩(wěn)定的技術(shù)基礎(chǔ):太多的業(yè)務(wù)流程、網(wǎng)絡(luò)、存儲(chǔ)、安全選項(xiàng)。無(wú)限排列。對(duì)于大多數(shù)典型的企業(yè)(并非所有企業(yè)全都是Google或Facebook這樣的網(wǎng)絡(luò)規(guī)模化的企業(yè))都不能支持。今天的容器集裝箱技術(shù),將需要在這個(gè)問(wèn)題上消耗大量的人力物力,需要更多的工具和支持才能取得成功。
數(shù)據(jù)庫(kù)和分析引擎:容器集裝箱系統(tǒng)一直在努力滿足持久存儲(chǔ)的需求,自動(dòng)擴(kuò)展以跟上微服務(wù),性能和延遲,以滿足業(yè)務(wù)的預(yù)期。在這個(gè)方面上大量的投錢(qián)是典型的答案,這導(dǎo)致了過(guò)度配置的問(wèn)題。
雖然您可以使用容器集裝箱技術(shù),并在虛擬機(jī)上運(yùn)行,以利用現(xiàn)有的基礎(chǔ)設(shè)施,但我們所看到的是,今天的終端用戶(在沒(méi)有成熟的容器特定生產(chǎn)工具的情況下)正在經(jīng)歷這兩個(gè)世界的最差體驗(yàn)——容器技術(shù)工具的復(fù)雜性和虛擬機(jī)的大開(kāi)銷。嘗試這樣做的企業(yè)通常會(huì)以如下兩種方式之一:
簡(jiǎn)單模型:每臺(tái)虛擬機(jī)一個(gè)容器
易于開(kāi)始。每個(gè)容器都安裝單一的網(wǎng)絡(luò)和存儲(chǔ)(VM!)?,F(xiàn)有的工具在某一點(diǎn)上起作用。
但是,在經(jīng)歷了短暫的時(shí)間后,卻會(huì)變得非常痛苦和昂貴。虛擬機(jī)蔓延。高度浪費(fèi)/間接費(fèi)用開(kāi)銷龐大。存儲(chǔ)和網(wǎng)絡(luò)管理是依賴于管理程序的舊的/慢的/昂貴的模型。這種方法在開(kāi)發(fā)環(huán)境與操作環(huán)境之間造成了重大的脫節(jié)。
高級(jí)模型:每臺(tái)虛擬機(jī)多個(gè)容器
創(chuàng)建了直接暴露于容器的不同的網(wǎng)絡(luò)/存儲(chǔ)模型。虛擬機(jī)的抽象無(wú)法解決這些問(wèn)題。
最有可能的是,您企業(yè)將傳統(tǒng)IT模型的新容器堆棧分層,而這正是開(kāi)發(fā)人員將其遷往公共云服務(wù)的重點(diǎn)原因。
數(shù)據(jù)中心運(yùn)營(yíng)商的結(jié)論
在本周的CoreOS Fest上,Ticketmaster平臺(tái)的高級(jí)副總裁分享了他們?cè)缙谥饕娜萜骷b箱生產(chǎn)用戶常見(jiàn)的問(wèn)題,當(dāng)時(shí)他說(shuō):“我們實(shí)際上并不想再建立更多的軟件,那些是我們不需要維護(hù)的東西,我們寫(xiě)的每一塊軟件都應(yīng)該是商品,這是我們永遠(yuǎn)擁有的技術(shù)債務(wù)。”
容器的早期路徑是DIY,極端定制和技術(shù)債務(wù)之一。對(duì)于太多看到容器上升態(tài)勢(shì)太快,而不能再觀望的企業(yè)組織而言,我想提供一些關(guān)鍵性的建議來(lái)降低風(fēng)險(xiǎn):
1、為您的客戶(開(kāi)發(fā)人員)提供他們所需要的:容器本機(jī),整個(gè)應(yīng)用程序的自動(dòng)化體驗(yàn),可輕松擴(kuò)展和管理。
2、選擇開(kāi)源方法,減少鎖定并提供多種支持選項(xiàng)。目前,開(kāi)放性最好的“堆棧”組件包括Kubernetes,用于Linux的開(kāi)放API(網(wǎng)絡(luò)、存儲(chǔ),以便您企業(yè)可以在不同的云基礎(chǔ)設(shè)施上部署應(yīng)用程序)、CNI和Flex Volume.
不要等待解決方案成熟,屆時(shí)就太遲了。Dev開(kāi)發(fā)將在公共云端,而ops運(yùn)維將成為新的大型機(jī),逐漸萎縮。使用開(kāi)放API構(gòu)建適度的容器集群并不需要大量投資,這對(duì)大多數(shù)企業(yè)組織來(lái)說(shuō)都是正確的起點(diǎn)。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。