1. 程式人生 > >不得不知的容器生態圈發展趨勢_Kubernetes中文社群

不得不知的容器生態圈發展趨勢_Kubernetes中文社群

Docker於 2013年推出以來,給軟體開發帶來了極具傳染性的振奮和創新,並獲得了來自各個行業、各個領域的巨大的支援——從大企業到初創公司,從研發到各類IT人員,還有開源社群、ISV、最大的公共雲供應商、軟體堆疊上的每個工具等。自Docker推出以來,許多重大的里程碑事件都推動了容器革命。讓我們就其中一些作個簡要回顧。

容器編排工具的選擇

容器入門非常簡單。所需要的僅是膝上型電腦和Docker客戶端。然而,執行微服務應用程式則要另當別論。其中最困難的是建立、管理和自動化臨時容器叢集。

解決這一挑戰的第一個主要工具是Mesos及它的編排工具Marathon。即使在Docker之前就已經提供了分散式基礎設施,Marathon也可以在Twitter和其他大型Web應用程式中的生產工作負載中使用。

下一個得到廣泛認同的編排工具是Kubernetes。事實上,如今Kubernetes因為它的可擴充套件性已經領先於Docker編排工具。它支援廣泛的程式語言、基礎設施選項,並獲得容器生態系統的巨大支援。它將應用層與基礎設施層隔離開來,從而能夠跨多個雲供應商和基礎設施設定,實現真正的可移植性。

Docker Swarm隨後也加入了容器編排領域,並且其覆蓋率已經迎頭趕上。Swarm很容易上手,並且能與Docker平臺的其他部分很好地整合。初步跡象表明,這一競爭已經改變了Kubernetes。

對企業而言,編排工具是容器應用成功的關鍵。儘管這三個選擇都不差,但您應該根據您的需求做出最合適的選擇。

容器安全快速發展

在初期,容器預設的隔離性較弱。隨著時間的推移,這一情況正在發生變化。與容器安全相關的一個關鍵進展,是出現了多個能力強大的容器 registry。registry通過儲存和掃描容器映象和儲存庫來發現漏洞。這是Docker安全性的重要組成部分,因為未經驗證的釋出商提供的公開儲存庫,極容易帶來安全威脅。這也是開放的生態系統的缺點之一,因為在開放的生態系統中,映象很容易共享。但使用 registry進行安全檢查可以減少這種風險。

Docker Hub是大多數Docker使用者開始使用的預設registry,也是目前最流行的。主要的IaaS提供商都有自己的registry。這很有必要,尤其是如果您大量投資AWS、Azure或Google Cloud。它們具有預設的儲存庫掃描功能、更成熟的訪問控制,以及一系列用於聯網、儲存和監視的其他工具。除此之外,像Quay和GitLab容器 registry這樣的第三方 registry也越來越受歡迎。registry的選擇比編排工具多得多,市場也很開放。

除了 registry之外,TwistLock和Aqua security等第三方容器安全服務商也提供了超出預設值的安全性。

適用於Windows和Mac的原生Docker客戶端

Docker最初是一種基於Linux的技術,它依賴於Linux核心中內建的特殊功能(這些功能只能在Linux上可用,而非其他類似Unix的核心)。如果要在Windows或Mac上執行Docker,則必須使用虛擬機器引擎(如VirtualBox)和基於Linux的虛擬機器來託管Docker環境。對於那些想在Windows或Mac機器上測試Docker應用程式的開發人員來說,這個設定非常方便,但作為Docker伺服器部署解決方案卻不實用。

2016年初,隨著原生Docker對Windows的支援,情況發生了變化。這是一項重大進展,因為許多企業工作負載在Windows Server上執行。在這些環境中使用Docker的需求很強勁。

目前, Docker在Windows上本機執行時,仍存在一定侷限性。網路尚未完全實現,僅支援Windows Server 2016和Windows 10。但是,Docker已經支援原生Windows,這一進展已經為Windows生態系統中的Docker提供了大量的新機遇。

內建VS開源Docker元件

Docker公司已經建立了企業版(包括Docker Datacenter,它現在已經整合到Docker的新企業版平臺中),它們由Docker本身的元件組成,其中包括Swarm管理器,而Docker Engine並未內建這些元件。Docker對使用自己的工具來建造容器堆疊更感興趣,而不是與容器生態系統中的其他組織合作,最初引起了一些人的擔憂,即Docker將忽略社群標準。去年八月份,出於這方面的擔憂,他們甚至還談到了forking Docker。(不過至今並沒有誰真的fork了Docker。)

最近,隨著Docker採取措施向客戶保證它不會壟斷行業,這種緊張局勢已經平息。它對CNCF的積極貢獻,包括最近將底層的容器技術開源,都是朝這個方向發展的。在上個月的DockerCon大會上,該公司通過將程式碼轉移到Moby專案,並引入LinuxKit,從而使它的主要專案更模組化,更便於社群訪問。(此文分析了這些變更對Rancher Labs、Rancher產品以及各種各樣使用者的影響)

當然,Docker仍然有批評者。但相比一年前,Docker技術棧明顯更加開放,並能與其他生態系統更好地整合。

結論

容器生態系統仍然在不斷髮展與改變。也許當我們剛弄清楚Docker對於跨所有型別組織的應用程式意味著什麼時,新的標準又出現了。本文所強調的趨勢是一個快速成熟的生態系統的指標。最值得關注的,是在這一領域中,Docker和各個供應商是如何進步,以推動容器生態系統的發展的。