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