"韋恩·格雷茨基曾說過:“我總是溜向冰球?qū)⑦_(dá)到的點(diǎn),而不是追逐它曾在的地方。”
關(guān)于Docker是否應(yīng)該擴(kuò)大產(chǎn)品的邊界以擴(kuò)張CoreOS的集群管理范圍的爭(zhēng)論由來已久,這也直接導(dǎo)致了CoreOS開發(fā)了自己的容器Rocket來與Docker爭(zhēng)雄。這種現(xiàn)象可以被Clayton Christensen教授的 Law of Conservation of Modularity 一書中的觀點(diǎn)合理地解釋:
“根據(jù)我們的研究,存在這樣一種現(xiàn)象,當(dāng)價(jià)值鏈上的一種產(chǎn)品在商品化的同時(shí),與此同時(shí)在價(jià)值鏈上肯定會(huì)有一種當(dāng)前產(chǎn)品非商品化的趨勢(shì),這種相互作用的進(jìn)程就意味著,當(dāng)新的破壞性浪潮沖刷一個(gè)行業(yè)時(shí),差異化能力仍然在價(jià)值鏈上不斷的轉(zhuǎn)移著。當(dāng)發(fā)生這種情況時(shí),那些將自身定位再不夠完善的價(jià)值鏈區(qū)間的企業(yè)就能夠盈利” -Clayton Christensen, 第六章:創(chuàng)新者的方法。
關(guān)于Docker和CoreOS之間的這點(diǎn)事在科技界并不新鮮,在計(jì)算機(jī)產(chǎn)業(yè)發(fā)展的初期就曾經(jīng)發(fā)生過。當(dāng)差異化能力在價(jià)值鏈上不斷的轉(zhuǎn)移時(shí),力圖擁有這種能力的人之間就會(huì)產(chǎn)生各種對(duì)抗。就像在冰球比賽中一樣,總有人滑向價(jià)值將要產(chǎn)生的地方。
歷史不會(huì)重演,但總是驚人地相似。起初,大型機(jī)的發(fā)展總是差強(qiáng)人意,所以被整體設(shè)計(jì)、制造和出售是一個(gè)大的趨勢(shì)。IBM在這一整合的歷史趨勢(shì)中獲得了大部分利潤(rùn),由于它的供給能夠填補(bǔ)當(dāng)時(shí)這種趨勢(shì)中的不足。幾年后,小型機(jī)和大型機(jī)已經(jīng)發(fā)展得足夠完善了。這時(shí)候利潤(rùn)從組裝整個(gè)機(jī)器的整合資源者(如IBM和康柏)轉(zhuǎn)移到各個(gè)部件的生產(chǎn)商了:操作系統(tǒng)(微軟),處理器(Intel),存儲(chǔ)器和驅(qū)動(dòng)器?,F(xiàn)在又到了整合資源的商家通過填補(bǔ)整合資源的空白來獲取利潤(rùn)的時(shí)代了。
在臺(tái)式機(jī)的領(lǐng)域里,處理器和操作系統(tǒng)一開始不那么令人滿意,因此價(jià)值轉(zhuǎn)移至此并不斷被持續(xù)改善。但存儲(chǔ)器和驅(qū)動(dòng)器就不那么幸運(yùn)。當(dāng)他們發(fā)展得足夠好并且能夠進(jìn)行模塊化操作的時(shí)候,利潤(rùn)早已經(jīng)被生產(chǎn)DRAM的廠家瓜分大半。
在云服務(wù)領(lǐng)域,截至2013年云服務(wù)商提供的虛擬機(jī)服務(wù)已經(jīng)足夠完善而且成功商品化。發(fā)展得并不盡如人的方面是應(yīng)用的重構(gòu)、部署和多服務(wù)器的管理。這時(shí)涌現(xiàn)了一大批工具如puppet,chef 和ansible,但是所有工具的表現(xiàn)不分伯仲。直到王者Docker在Github上的出現(xiàn)才打破了現(xiàn)有的格局。
從模塊化和整合化的方面來說,我們可以認(rèn)為Docker被設(shè)計(jì)的初衷是在獨(dú)立封裝和在任何平臺(tái)都可以同步運(yùn)行。Docker將操作系統(tǒng)、虛擬機(jī)、物理機(jī)和基于上面的操作整合起來進(jìn)行商品化。同時(shí)提供了一系列的API,使得其他人能夠基于這些API進(jìn)行操作。Docker不能商品化的部分是數(shù)據(jù)中心,我們稍后會(huì)解釋為什么特別強(qiáng)調(diào)這一點(diǎn)。
從一個(gè)開發(fā)者的角度,把應(yīng)用封裝在Docker的意義在于你可以你整個(gè)云服務(wù)作為一個(gè)模塊進(jìn)行操作,這其中的模塊只是一個(gè)可以被替代的商品。Docker的偉大之處在于你可以任意地把你的應(yīng)用進(jìn)行遷移而無(wú)需做出其他改動(dòng)。這對(duì)于谷歌這樣的云服務(wù)的提供者可不是一個(gè)好消息,因?yàn)橛脩舻倪w移成本變得非常低。這時(shí)代,價(jià)值就從提供虛擬環(huán)境VM的云服務(wù)商流向Docker。
Docker對(duì)于開發(fā)者的意義在于,封裝應(yīng)用只需要Docker就夠了??梢灶A(yù)見的是將會(huì)很快出現(xiàn)一大批公司提供基于Docker的無(wú)差異的整合服務(wù)。最著名的無(wú)疑是CoreOS。CoreOS提供了分離式的linux版本服務(wù)和基于容器Docker的集群機(jī)服務(wù)。CoreOS剝離了虛擬機(jī)和容器Docker,并以單一集群和商品化的數(shù)據(jù)中心進(jìn)行代替。價(jià)值再次進(jìn)行轉(zhuǎn)移,從Docker轉(zhuǎn)向整合Docker之后提供的服務(wù)。無(wú)論他們承認(rèn)與否,CoreOS與其友商都是其他云服務(wù)商的潛在威脅:他們要將云服務(wù)及其建立在之上的整合平臺(tái)進(jìn)行商品化。
感受到這樣的威脅,如果采取調(diào)整自己的服務(wù)以適應(yīng)Docker的發(fā)展這樣的策略對(duì)于谷歌這樣的云服務(wù)提供商來說并不奇怪。他們的服務(wù)可以基于自己的硬件平臺(tái)并將Docker整合在自己的服務(wù)里進(jìn)行管理,這可以使價(jià)值重新分布。但令人大跌眼鏡的是,谷歌又推出了自己的容器集群管理工具 Kubernetes。直到現(xiàn)在我還是理解不能。
那最后留給Docker的是什么呢?從一開始他提供了一個(gè)模塊化的組件供其他應(yīng)用使用。這對(duì)于其他組件是有很大價(jià)值的,但對(duì)Docker卻沒有什么價(jià)值,因?yàn)檫@個(gè)過程并不能獲得極大的利潤(rùn)。完全商品化并不是一條好的出路,對(duì)于Docker的投資人來說肯定也不會(huì)帶來極高的回報(bào)率。
所以CoreOS肯定會(huì)把Docker當(dāng)作一個(gè)商品的構(gòu)成的要素,當(dāng)Docker意識(shí)到自己的價(jià)值不過是被像CoreOS這樣的企業(yè)作為一個(gè)工具來創(chuàng)造價(jià)值的時(shí)候,Docker肯定不能只是繼續(xù)停留在OS層面提供價(jià)值。對(duì)于Docker來說,惟一的出路是向上一層發(fā)展。基于Docker進(jìn)行構(gòu)建和運(yùn)行并且進(jìn)行管理的整合式集群服務(wù)對(duì)Docker來說才有意義。
CoreOS對(duì)這種變化是非常在意的,因?yàn)镈ocker對(duì)于他們來說 ,在開發(fā)者中間,是一個(gè)極大的潛在競(jìng)爭(zhēng)者。最自然的反應(yīng)就是構(gòu)建一個(gè)新的容器作為和Docker進(jìn)行博弈的工具從而支持他們本來自己的服務(wù)。Rocket從出生開始相對(duì)于Docker就有技術(shù)方面的優(yōu)勢(shì),這是因?yàn)樗旧砭褪荂oreOS制造用來抵擋來自Docker的威脅。
在不久的將來,集群管理也將會(huì)被完全商品化,價(jià)值將會(huì)流到別的地方,這種循環(huán)又會(huì)重新上演。這種把戲,跟打冰球沒什么兩樣。