6 Prometheus
項目之後

CNCF社群迅速在成員項目中添加了
- Fluentd
jagerTracing
CNI
等一系列容器生态的知名工具和項目。
而在看到了CNCF社群對使用者表現出來的巨大吸引力之後,大量的公司和創業團隊也開始專門針對CNCF社群而非Docker公司制定推廣政策。
面對這樣的競争态勢,Docker公司決定更進一步
在2016年,Docker公司宣布了一個震驚所有人的計劃:放棄現有的Swarm項目,将容器編排和叢集管理功能全部内置到Docker項目中
顯然,Docker公司意識到了Swarm項目目前唯一的競争優勢,就是跟Docker項目的無縫內建。那麼,如何讓這種優勢最大化呢?那就是把Swarm内置到Docker項目當中。
實際上,從工程角度來看,這種做法的風險很大。
内置容器編排、叢集管理和負載均衡能力,固然可以使得Docker項目的邊界直接擴大到一個完整的PaaS項目的範疇,但這種變更帶來的技術複雜度和維護難度,長遠來看對Docker項目是不利的。
不過,在當時的大環境下,Docker公司的選擇恐怕也帶有一絲孤注一擲的意味。
而Kubernetes的應對政策則是反其道而行之,開始在整個社群推進“民主化”架構
從API到容器運作時的每一層,Kubernetes項目都為開發者暴露出了可以擴充的插件機制
鼓勵使用者通過代碼的方式介入到Kubernetes項目的每一個階段。
Kubernetes項目的這個變革的效果立竿見影,很快在整個容器社群中催生出了大量的、基于Kubernetes API和擴充接口的二次創新工作,比如:
熱度極高的微服務治理項目Istio
廣泛采用的有狀态應用部署架構Operator
開源創業項目 — Rook,通過Kubernetes的可擴充接口,把Ceph這樣的重量級産品封裝成簡單易用的容器存儲插件
就這樣,在這種鼓勵二次創新的整體氛圍當中,Kubernetes社群在2016年之後得到了空前的發展
不同于之前局限于“打包、釋出”這樣的PaaS化路線,這一次容器社群的繁榮,是一次完全以Kubernetes項目為核心的“百花争鳴”。
面對Kubernetes社群的崛起和壯大,Docker公司也不得不面對自己豪賭失敗的現實
但在早前拒絕了微軟的天價收購之後,Docker公司實際上已經沒有什麼回旋餘地,隻能選擇逐漸放棄開源社群而專注于自己的商業化轉型。
是以,從2017年開始,Docker公司先是将Docker項目的容器運作時部分
Containerd
捐贈給CNCF社群,标志着Docker項目已經全面更新成為一個PaaS平台
緊接着,Docker公司宣布将Docker項目改名為
- Moby
然後交給社群自行維護,而Docker公司的商業産品将占有Docker這個注冊商标。
Docker公司這些舉措背後的含義非常明确:它将全面放棄在開源社群同Kubernetes生态的競争,轉而專注于自己的商業業務
并且通過将Docker項目改名為Moby的舉動,将原本屬于Docker社群的使用者轉化成了自己的客戶。
2017年10月,Docker公司出人意料地宣布,将在自己的主打産品Docker企業版中内置Kubernetes項目
持續了近兩年之久的“編排之争”落下帷幕!
2018年1月30日,RedHat斥資2.5億美元收購CoreOS
2018年3月28日,一切紛争的始作俑者,Docker公司的CTO Solomon Hykes宣布辭職,紛紛擾擾的容器技術圈子,至此塵埃落定。
7 總結
容器技術圈子在短短幾年裡發生了很多變數,但很多事情其實也都在情理之中。就像Docker這樣一家創業公司,在通過開源社群的運作取得了巨大的成功之後,就不得不面對來自整個雲計算産業的競争和圍剿。而這個産業的壟斷特性,對于Docker這樣的技術型創業公司其實天生就不友好。
在這種局勢下,接受微軟的天價收購,在大多數人看來都是一個非常明智和實際的選擇。可是Solomon Hykes卻多少帶有一些理想主義的影子,既然不甘于“寄人籬下”,那他就必須帶領Docker公司去對抗來自整個雲計算産業的壓力。
隻不過,Docker公司最後選擇的對抗方式,是将開源項目與商業産品緊密綁定,打造了一個極端封閉的技術生态。而這,其實違背了Docker項目與開發者保持親密關系的初衷。
相比之下,Kubernetes社群,正是以一種更加溫和的方式,承接了Docker項目的未盡事業,即:以開發者為核心,建構一個相對民主和開放的容器生态。
這也是為何,Kubernetes項目的成功其實是必然的。
Docker公司在過去五年裡的風雲變幻,以及Solomon Hykes本人的傳奇經曆,都已經在雲計算的長河中留下了濃墨重彩的一筆。