目前,CNCF社區正持續發展,用户對開源技術的應用也越來越突出。這是CNCF第八次對雲原生應用的採用情況進行調研。此次調研,CNCF收到了來自社區共計1324份有效樣本,來自歐洲、北美、亞洲等主要地區,其中有30%以上是5000人規模以上企業,60%以上為100人規模企業和組織。從被調研對象來看,其中絕大多數為企業IT部門/組織,主要崗位包括SRE/DevOps工程師(43%)、軟件架構師(35%)和後端開發人員(23%)。
調研核心要點:
在生產中應用容器的比例從去年的84%增長到今年的92%,相比2016年增長了300%。
生產中應用Kubernetes的比例從去年的78%增長到今年的83%。
CNCF託管的所有項目中,相比上一年投入應用的項目至少有50%的增長。
82%的受訪者在生產中應用CI/CD(持續集成和持續交付)。
30%的受訪者在生產中應用無服務架構(serverless)。
27%的受訪者在生產中應用服務網格(service mesh),相比去年增長了50%。
55%的受訪者在生產中的容器中運行有狀態應用程序(stateful application)。
以下為雷鋒網編譯:
一、雲計算
結論:公有云仍是主流,但私有云在不斷增長。
公有云仍是如今最主流的數據中心改造路徑,其應用率從去年的62%略有增加到64%;私有云或本地部署應用率從45%增加到52%;混合雲從去年的38%略有下降到36%。多雲在今年是一種新的策略,其應用率在26%。
Kubernetes和雲原生工具的可移植性,使得不同雲之間的切換變得更加簡單。不過多雲策略的提升,並不完全能解釋混合雲應用率下降的原因。
二、代碼
結論:版本發行週期加快,但自動化能力卻有所下降。
軟件發行的比例從去年的27%上升至29%。其中,以周為發行週期最為常見(26%)。一些因素推動了這一趨勢的發展,如雲原生技術在生產中不斷投入應用;企業組織構建了更先進的IT基礎設施;以及新冠疫情的影響,迫使企業需要跟上數字化的需求。
53%的受訪者幾乎每天都要對代碼進行check in,80%的人也會做到每週進行幾次check in。
這或許意味着許多企業組織由於設置週期的複雜性,而不打算直接跳到自動化階段,或者企業希望保持對應用某些方面的控制。
當涉及硬件等設備時,比如虛擬機和裸金屬服務器的數量,無論是擁有5000台以上的企業還是擁有5台以下的企業數量都在增加,這表明:新的採用者已經進入生態系統,而此前應用了容器部署的企業正持續追加新的硬件設備。
三、容器
結論:在生產中應用容器已是常態。
今年,92%的受訪者表示在生產中部署了容器技術。其中,95%的企業在PoC、測試和開發環境中應用容器,同比上一年均有所增加。這可能意味着企業正準備測試新的用例或增加更多的工作負載。
同時,運行容器的企業數量也有所增加。其中,61%的企業應用容器數量超過了250,同比去年仍有所增加。
容器挑戰
部署和應用容器的挑戰有很多,其中最為迫切的是容器技術的複雜性和工程師文化問題。排名第三的是安全問題(佔32%),其次還有存儲、缺乏培訓、監測、網服務網格等問題。
四、Kubernetes
結論:Kubernetes仍是容器構建的核心關注點。
今年,91%的受訪者應用了Kubernetes,其中有83%已經投入在生產環境中。這一比例相比上一年的78%和2018年的58%,表現出了持續穩定增長的趨勢。
其中,2至5個仍然是最常見的生產集羣數;11個以上生產集羣的比例也在逐年增加。
隨着Kubernetes技術的投入應用,其生態也在不斷擴張。2020年8月,Kubernetes發佈了1.19版本。根據DevStats看板上的數據,從2020年4月至8月期間,有382家公司和2400多人向Kubernetes社區捐獻代碼。
為此,指導委員會推出了一個名為Kubernetes.dev的網站,它以貢獻開源代碼的文檔、資料和項目信息都收集起來。
隔離Kubernetes集羣
命名空間(Namespaces)仍是隔離Kubernetes集羣的最主流方法。無論是個人還是企業組織,同比上一年都有所增長。
Kubernetes安裝環境
Kubernetes應用最多的安裝環境分別是:Minikube(37%)、On-Prem Kubernetes(31%)和Docker Kubernetes(29%)。其中,On-Prem的比例在今年所有上升。
自動彈性伸縮工作負載
今年,絕大多數受訪者(71%)計劃換成自動彈性伸縮的無狀態應用,一部分受訪者(34%)計劃用任務/隊列處理應用,還有一部分(33%)計劃運行有狀態的應用。
五、CNCF項目情況
結論:項目應用量增加了50%。
CNCF目前擁有70多個項目,包括13個畢業階段和21個孵化階段的項目。
其中,Kubernetes(83%)、Prometheus(69%)和Helm(67%)是生產中應用最多的畢業項目;ETC(62%)、CNI(40%)和gRPC(35%)則是生產中應用最多的孵化項目。
沙箱階段的項目應用率猛增了238%。其中,生產中應用最多的項目是Flux(8%)、OpenEBS(8%)和網絡服務網格(7%);受到最多評估的項目則是OpenTelemetry(20%)、Service Mesh Interface(14%)和OpenMetrics(14%)。
六、雲原生工具
結論:CI/CD和存儲工具被廣泛應用,而無服務、服務網格和服務代理正在增長。
持續集成和持續交付(CI/CD)
CI/CD對於自動化構建、測試和部署應用程序至關重要。CI/CD作為DevOps的一個重要方面,在生產中得到了廣泛應用。
大約82%的受訪者在生產中應用CI/CD;10%的仍在評估階段;4%的則計劃在未來12個月內運行CI/CD。
CI/CD應用最為頻繁的三個工具分別是:Jenkins(53%)、GitLab(36%)和GitHub Actions(20%)。
連續交付(CD)是CNCF終端用户技術雷達圖(基於社區用户經驗來評估雲原生技術的指南)中的一項主題。根據雷達圖能夠發現,Flux和Helm無疑是CD最廣泛採用的工具。
監測、日誌記錄和跟蹤
監測、日誌記錄和跟蹤往往被混淆為觀察和分析IT環境的可置換工具,但每個工具都有其獨特用途。這也要求其有從不同維度分析問題的能力。不同的工具在不同的技術環境和集成下具備不同的優勢,這也意味着監測、日誌記錄和跟蹤工具同時應用時將具備強大的作用。
CNCF的第二張終端用户技術雷達圖,正是專注於這一特徵。根據雷達圖能夠發現,50%以上的公司會應用五種或五種以上的工具,三分之一的公司甚至有應用十種以上工具的經驗。同時,這些工具往往都是開源的,比如Prometheus、Grafana、Elastic、Jaeger、OpenTelemetry等等。
七、無服務
在過去的幾年裏,無服務計算——應用服務層或函數計算來動態配置和部署雲環境的計算負載,已經開始佔有一席之地。
從目前看,不到30%的受訪者在生產中應用無服務技術;21%的正在評估無服務,還有14%的計劃在未來12個月進行應用。
大多數應用無服務技術的受訪者(60%)會應用託管平台;13%的應用可安裝軟件,22%的會二者兼用。
無服務託管平台排名前三的分別是亞馬遜的Lambda(57%)、Google雲函數(27%)和Azure函數(24%);可安裝軟件應用排名前三的分別是Knative(27%)、Open FaaS(10%)和Kubeless(5%)。
服務網格
服務網格(Service Mesh)是一個專用的基礎架構層,保障服務之間的通信快捷、安全和可靠。
去年,18%的受訪者在生產中應用了服務網格;47%還在評估中。到了今年,生產中應用服務網格這一數字佔比增長到27%;23%的還在評估中;另外有19%的受訪者計劃在未來12月內應用。
服務代理
服務代理(Service Proxy)通過對微服務之間的交互進行管理,以確保應用性能達到峯值。它可以用來簡化數字化轉型和雲原生架構的運營。
今年37%的受訪者在生產中應用服務代理;有12%正在評估服務代理;另外有13%計劃在未來12個月內應用服務代理。
存儲
近年來雲原生存儲已呈爆炸式增長,其衍生產品已擴展到包括集中式、分佈式和超融合架構等。
在最開始的一段時間,容器往往被用來運行無狀態的微服務應用,以保證其靈活性和便捷性。然而,如今的數據表明:只有22%的受訪者在生產中運行無狀態應用;55%的運行有狀態應用;22%還在評估中;11%計劃在未來12個月內應用。
雲原生的優勢
對於那些在生產中應用容器和雲原生項目的企業而言,其中有51%將其最大的優勢歸結為改進的可伸縮性和更短的部署時間;44%則歸結為改進的可用性。這一結果與上一年相比稍有不同。(雷鋒網編譯雷鋒網)