關於不斷變化的容器生態圈的8個事實

容器在改變公司構建和運行其應用程序和基礎架構的方式。隨著容器變得越來越普遍,它們引入了更動態的基礎架構,並帶來了各種各樣的支持技術。我們在本報告中分析了成千上萬Datadog客戶運行的逾15億個容器,揭示哪些技術、編程語言和編排實踐在實際容器環境中受到追捧。

【51CTO.com快譯】容器在改變公司構建和運行其應用程序和基礎架構的方式。隨著容器變得越來越普遍,它們引入了更動態的基礎架構,並帶來了各種各樣的支持技術。我們在本報告中分析了成千上萬Datadog客戶運行的逾15億個容器,揭示哪些技術、編程語言和編排實踐在實際容器環境中受到追捧。

隨著更多的公司將生產工作負載遷移到容器,Kubernetes和亞馬遜彈性容器(ECS)之類的編排平臺已成為容器生態系統不可或缺的一部分。如果目前的趨勢繼續下去,很快大多數運行容器的公司會在某種程度上使用Kubernetes。但是Kubernetes並非唯一的玩家。對於AWS客戶而言,得益於ECS的Fargate計算引擎迅速得到採用,ECS仍是同樣大受歡迎的選擇。

不妨從最新的實際使用情況數據瞭解更多的見解和趨勢。

趨勢1:Kubernetes繼續穩步上升

編排已成為使用容器的企業組織的標準實踐。這在Kubernetes的使用穩步增長中體現得最為明顯,絲毫沒有下降的跡象。截至2019年10月,運行容器的Datadog客戶中約45%使用Kubernetes,無論在自我管理的集群中,還是通過谷歌Kubernetes引擎(GKE)、Azure Kubernetes服務(AKS)或亞馬遜彈性Kubernetes服務(EKS)之類的雲服務。這表明Kubernetes的採用率較之前的12個月增加了10個百分點,較之前的24個月增加了20個百分點。

關於不斷變化的容器生態圈的8個事實

趨勢2:Kubernetes在Azure中的使用快速增長

Kubernetes已在各大公共雲提供商中廣泛使用,尤其是在谷歌雲平臺(GCP)上,GKE歷來是GCP的熱門選擇。然而近年來,Kubernetes在微軟Azure上的使用增長勢頭迅猛,以至於現在Kubernetes在Azure上容器化環境中的人氣幾乎與在GCP上一樣旺。Azure中運行容器的Datadog客戶中約80%現正在使用Kubernetes,而一年前這個比例是67%。Azure上的Kubernetes使用既涵蓋AKS部署,又涵蓋自我管理的Kubernetes集群,不過我們在本次研究沒有區分這些部署類型。在AWS中運行容器的企業組織中,Kubernetes的人氣也在上升,在過去兩年翻了一番,達到45%。

關於不斷變化的容器生態圈的8個事實

趨勢3:GKE在谷歌雲中占主導地位

谷歌雲平臺上的GKE和AWS上的EKS之類的託管Kubernetes服務已在各自的雲平臺上得到了廣泛採用。這些服務的用戶將Kubernetes控制平面的管理委託給雲提供商,那樣他們可以專注於在集群的worker節點上運行的工作負載。

在谷歌雲平臺上,運行Kubernetes的企業組織中90%以上採用了GKE。GKE的人氣這麼旺,可能歸因於下列幾個因素:

  • GKE正式上市已有四年多
  • Kubernetes最初由谷歌開發並開源
  • 長期以來,GKE一直是谷歌雲平臺上的主力產品

EKS是一種頗新穎的產品,已經得到了勢頭較強勁的採用;隨著時間的推移,我們預計越來越多的企業組織會採用EKS。畢竟,亞馬遜彈性容器服務(ECS)的人氣已經表明AWS客戶對託管容器服務的需求不斷增長。

關於不斷變化的容器生態圈的8個事實

趨勢4:Fargate在19%的AWS容器環境中運行

AWS Fargate將容器集群中的基礎架構層抽取出來,讓客戶無需管理EC2實例即可在ECS中運行應用程序。我們的研究表明,自首次推出以來的兩年間,Fargate一直保持穩定快速的增長。在AWS中運行容器的公司中,現在19%使用Fargate,比一年前的5%顯著上升。Fargate的快速增長已幫助ECS與AWS環境中持續採用的Kubernetes保持同步。

關於不斷變化的容器生態圈的8個事實

趨勢5:容器的創建/刪除速度在諸平臺上趨於一致

使用編排的公司通常創建及刪除容器的速度比不使用編排就運行容器的公司快得多。近年來,這種差異一直很驚人,在編排環境中創建/刪除速度大約高出10倍。不過在2019年,未編排容器的創建/刪除速度已大大提高了。在一家運行未編排基礎架構的典型公司,容器壽命平均約2天,而2018年年中約6天。

即使ECS和Kubernetes仍然可以更快地創建/刪除容器,典型的容器壽命約一天,但平臺之間的差距已縮小。然而,壽命很長的容器在編排基礎架構中仍然罕見得多。比如說,平均的容器壽命在19%的未編排環境中超過30天,相比之下只在7%的ECS環境中和3%的Kubernetes環境中超過30天。

關於不斷變化的容器生態圈的8個事實

趨勢6:Node.js主導容器

我們的客戶在應用程序開發中偏愛的編程語言和框架在容器環境和非容器環境之間有所不同。運行容器化工作負載的企業組織中57%使用Node.js,幾乎是在非容器化環境中運行Node.js的企業組織的兩倍。Java是容器環境中人氣第二旺的語言,在傳統應用程序環境中無疑是領先者。(請注意,百分加起來超過100%,因為每家企業組織可能使用幾種語言。)

Node.js在容器環境中的人氣很可能歸因於其設計,其設計青睞輕量級、可擴展的應用程序,這些應用程序非常適合容器化和複製。另外值得一提的是, Node.js和Go這兩種比較新的編程語言在容器環境中比在傳統環境中流行得多,傳統環境中更有可能發現遺留代碼。

關於不斷變化的容器生態圈的8個事實

趨勢7:NGINX在容器環境中盛行

在容器集群中運行的現成映像中,NGINX是最常見的映像,在Kubernetes環境中尤其如此。NGINX在約70%的Kubernetes環境、30%的ECS環境和40%的未編排容器基礎架構中運行。NGINX在Kubernetes環境中的高普及率可能部分歸因於NGINX是一種很流行的Kubernetes入站控制器,用於將外部流量路由傳輸到集群中的服務。

Kubernetes用戶運行的現成容器映像通常比ECS用戶多得多。我們假設許多AWS用戶依賴託管服務而不是自託管的基礎架構組件。比如說,許多AWS企業組織使用Amazon Relational Database Service,而不是運行自己的PostgreSQL或MySQL數據庫。同樣,Amazon Application Load Balancer在ECS集群中扮演的角色類似Kubernetes入站控制器在Kubernetes集群中扮演的角色,這可能有助於解釋NGINX的使用在不同容器平臺上有差異。

值得注意的是,服務網格技術還沒有躋身主要容器映像的行列。截至本報告刊發時,這些技術似乎仍處於早期採用者的領域,不過我們在2019年下半年看到使用率有所上升。

關於不斷變化的容器生態圈的8個事實

趨勢8:Kubernetes升級週期很長

Kubernetes平臺發展迅速,每三個月左右就會出現新的次要版本(比如v1.16),並在此期間發佈增量修正版。不過我們的研究表明,大多數組織喜歡較老的成熟版本,而不是最新版本。截至2019年10月,使用中的最受歡迎的版本是Kubernetes 1.13,該版本於2018年12月首次發佈。在2019年發佈的三個版本中,只有版本1.14得到了廣泛採用,23%的Kubernetes企業組織使用它。由於每家組織可能運行多個版本的Kubernetes,因此下圖中的百分比總計超過100%。

值得一提的是,Kubernetes版本並不總是明智的選擇:託管Kubernetes服務的用戶通常在集群啟動時看到一個默認的穩定版本。分析本報告時,版本1.13仍是GKE和AKS的默認版本,而EKS默認提供版本1.14。

關於不斷變化的容器生態圈的8個事實

原文標題:8 Facts about the changing container landscape


分享到:


相關文章: