一切使之容器 — Container with Application (1)

容器從哪裡來,容器又要去哪裡。
docker

說到容器大家都會想到 Docker, 但容器就只有 Docker 嗎,顯然不是。
當年隨著 Docker 項目開源,dotCloud(後來改名直接叫 docker 公司)公司一係成名,靠著 Docker 三件套 Docker Compose、Swarm 和 Machine,佔領了 PaaS 界的整個光彩。

但隨著開源項目的大放異彩,docker 公司也不得不在商業化中跌跌撞撞尋找方向。

docker 公司始終對 Docker 項目保持最高發言權與權威,實際的許多行動都威脅到各大公司的利益,對於一個開源項目來說公司戰略的色彩並不適合納入其中。

容器大戰當時,Google 也開源了一個多年驗證用於生產環境的項目 lmctfy,但顯然對於用戶沒這麼有好的 lmctfy 項目肯定打不過 Docker(後來改名叫 moby, 但大家還是習慣稱他 Docker)。

然而 Google 公司也釋出善意想與 docker 公司進行合作,解決容器紛紛爭爭的各種問題。建議與 docker 公司共同推出一個 container runtime libray 作為 Docker 項目的核心,但 docker 公司並沒有接受 Google 的提議,反而一意孤行的推出 Libcontainer,一個被大家詬病可讀性差,戰略目的強的項目。

而 Docker 在 2015 年的高速迭代與版本更新更令許多使用者苦不堪言,由此,幾個容器界的大佬就出來成立中立的基金會,以切割與 docker 公司的權威。

這個項目就是著名的 RunC,是由 docker 公司領頭將項目 Libcontainer 提供給一個中立的基金會,然後大家以 RunC 為基礎,建立一套屬於容器和鏡像的標準和規範。

而這個規範標準就是 Open Containers Initiative(OCI),規範標準的提出,使得容器鏡像與容器 runtime,得以與 Docker 項目分離,也造就了現在可以不依賴 Docker 項目也能做出容器平台的成果。

然而 OCI 卻沒有得到預期的發展,一方面領頭的 docker 公司缺乏動力制定新的標準,一方面 Docker 項目依然一家獨大,沒有改變的可能。

如果僅僅是在容器的層面競爭,那 docker 公司肯定能夠以社群支持與廣大的使用者保持天下。

最終 Google 和 RedHat 下定決心要改變 Docker 一家獨佔商業容器市場的情況,聯合了基礎設施開源項目成立了基金會 Cloud Native Computing Foundation(CNCF),基金會的目標很簡單,就是以 Kubernetes 項目為基礎,建立一個由開源基礎設施領域的廠商所主導,獨立基金會方式運營,沒有公司戰略色彩的平台級社區,用來以對抗 docker 公司為核心的容器生態圈。

要達到這個目的有幾個關鍵:

  1. 確保 Kubernetes 能實現流暢的容器編排(Docker Swarm 場景常常單一受限)
  2. Kubernetes 必須達到多複雜場景下的容器編排首選
  3. 能夠使用實現協議標準的容器,而不僅僅是 Docker 容器

Kubernetes 項目一出來簡直直接對 docker 公司實施了降維打擊,將原本容器項目之爭,提升到了容器編排之爭的層級,Kubernetes 項目的操作實在是令人佩服。

Kubernetes 的一些特性來自於 Google 內部的容器化基礎設施,Borg 和 Omega 系统,這兩個系統是 Google 公司多年來對於容器的理解所沈澱的基礎設施項目,這也就是為什麼 Kubernetes 項目一出來就佔領了容器編排的一席之地,並且避免與 Docker Swarm 在同一個維度競爭的結果。

在 2016 年,見如此況的 docker 公司決定更進一步決定。放棄現有的 Swarm 項目,將容器編排和集群管理功能全部內置到 Docker 中。

顯然,此舉並未為 docker 公司帶來反擊的機會。

而,Kubernetes 項目都為開發者製作可以擴展的外掛機制,鼓勵用戶一起參與進來 Kubernetes 之中。這個讓 Kubernetes 項目的二次創新開發更加增添了色彩,整個 Kubernetes 社群百花爭鳴,大放異彩。

2017年,docker 公司全面放棄與 Kubernetes 競爭的機會,並將 Docker 項目改名為 Moby,交由社群自行維護,當然 Docker 拿回 Docker 這個商標權(誰都捨不得放棄可愛的鯨魚的)。

此後 docker 公司,更是在自己企業版的 Docker 中加入 Kubernetes 項目(後來社群版也加入了),整個容器大戰可以說是告一段落。

Google,RedHat,Docker 各自佔領自己產業中的角色。

Kubernetes
yasuoyuhao 2018/12/28
如果喜歡我的文章,可以按下喜歡或追隨讓我知道呦,更歡迎許多大神指點討論。感謝您的閱讀。
部落格:
yasuoyuhao’s Area