趨勢預測
▶ Kubernetes 將繼續佔據主導地位,成為部署和管理容器化應用程序領域最流行的工具。
▶ Kubernetes 的採用將提高組織的生產力、業務增長和可擴展性。
▶ 超過三分之二的組織將在不遠的將來實現持續集成和持續交付。
一、前言
持續集成和持續交付(CI/CD)自從第一次被整合到一個完整的發佈流水線後,就是DevOps交付過程的代名詞。持續集成設計實踐使得軟件成為模塊化,並且可以頻繁的、可重複的與其他組件集成到一起。而持續交付可以確保軟件隨時處於可發佈的狀態。CI/CD的過程能夠滿足DevOps的承諾:更短的上市週期,更緊密的反饋循環和可部署的產品,這些產品可以在幾分鐘內進行更新,而不是幾周。
Kubernetes作為一種開源產品,在谷歌的資源和社區支持下,已經作為更易於使用和權威的容器編排工具。自5年前推出以來,Kubernetes已經成為初創公司和頂級技術公司的基礎設施。
DevOps團隊的主要目標是打造一個持續集成和持續交付(CI/CD)的軟件開發環境。為了能夠在整個DevOps生命週期中使用相同的應用程序和產品,許多團隊都轉向了採用容器部署。根據DZone 2019 DevOps調查,全球所有軟件組織中有一半都有官方指定的DevOps職能部門。這些DevOps團隊的作用有,“幫助組織採用最佳的持續交付工具”(70%),“在整個SDLC中引入自動化”(68%),“加強開發人員(Dev)與運維人員(Ops)之間的協作並打破孤島”(56%),“跨整個技術棧進行開發和交付軟件”(54%)。鑑於DevOps的範圍較廣,因此對該方法的所有方面越來越感興趣也就不足為奇了。
Kubernetes等容器編排工具允許DevOps團隊管理這些容器,從而加快部署速度、縮短上市時間,同時滿足客戶更高的期望和保持競爭力。為了更好地瞭解業界對Kubernetes和CI/CD的看法,我們在DZone的全球用戶中進行了一項調查。
二、Kubernetes的使用情況
![看到這些統計數字,從現在開始就要努力學習Kubernetes](http://p2.ttnews.xyz/loading.gif)
各組織使用Kubernetes的統計
在調查的公司裡有四分之三的目前正在使用Kubernetes,其中大部分是最近轉換為容器編排系統的。只有21.6%的公司使用Kubernetes的時間達到三年或更久。另外51.8%的公司是在過去一年裡採用了它。我們預計這一趨勢會繼續增加。根據我們的研究,另有15.1%的公司計劃明年才使用Kubernetes。只有11.5%的公司沒有計劃使用Kubernetes。Kubernetes的採用在世界的三個地區基本一致:APAC(74%),EMEA(73.7%)和NA(72.5%)
然而,不同的是,公司採用Kubernetes的時間可能不一樣。在APAC,超過四分之一的開發人員(27.1%)的公司使用Kubernetes的時間在三年或更久,這一情況在EMEA是19.4%,在NA是21.5%。在NA有15.7%的公司沒有計劃採用Kubernetes。
![看到這些統計數字,從現在開始就要努力學習Kubernetes](http://p2.ttnews.xyz/loading.gif)
各區域使用統計
三、Kubernetes使用的環境
Kubernetes不止限制在一個單獨的環境,大多數用戶使用Kubernetes的環境情況如下:
• 生產/部署(82.0%)
• QA/測試(81.2%)
• 開發(80.1%)
• 預覽(73.5%)
大多數公司(53.5%)在所有這四個環境中都使用Kubernetes。21.1%的公司使用其中的三個,13.5%的公司使用其中的兩個,11.9%的公司只使用其中的一個。僅在一個環境中使用Kubernetes的公司通常是在生產/部署環境中(56%)。開發環境以30.6%位居第二,QA/測試以11.1%排在第三位,只有2.8%僅在其預覽環境中使用Kubernetes。
雖然Kubernetes可能無法在整個軟件開發生命週期中使用,這些重度使用Kubernetes (90.8%)的用戶說,他們是在DevOps環境中使用了它。
在DevOps環境中使用Kubernetes
在全球範圍內,將代碼部署到生產環境中的更多是開發團隊 (44.2%)而不是運維團隊(34.1%)。
但是,全球範圍的統計掩蓋了區域之間的差異。在 EMEA中,部署代碼到生產環境通常由開發團隊執行(49.3%),而在APAC,則由運維團隊負責部署(44.9%)。在NA中,運維團隊和開發團隊部署代碼的頻率基本一樣。
在全球範圍內,發佈工程師的職責範圍降到了20%,在NA中,這一個比例比其他任何地區稍微高一點(27.1%)。QA團隊在任何區域都很少管理該任務。
各區域部署代碼的統計
四、Kubernetes的好處和挑戰
我們的開發用戶告訴我們,採用Kubernetes有很多種原因,其中說的最多的是可擴展性(81.8%)。因為可擴展性對於公司的能力至關重要,能夠最大化系統的性能和生產力。因此,這應該是使用Kubernetes的最主要的好處。
被調查者選擇了使用容器的幾個挑戰:
• 開發人員缺乏使用容器的經驗 (60.6%)
• 重構/重新構架設計舊應用程序(48.7%)。
• 應用程序性能監控(42.5%)。
• 監測(39.2%)。
• 確保應用和網絡安全(35.7%)。
• 存儲擴展性(30.7%)。
大多數受訪者說Kubernetes可以更容易的使用容器,儘管他們也缺乏使用容器的經驗。
雖然一些開發人員認為它確實減輕了負擔(21.8%),但更多人認為,這也會使情況更加艱難(33.1%)。絕大多數使用Kubernetes的開發人員認為,它讓使用容器變得更加容易(77.4%)。
採用Kubernetes的原因
五、持續集成和持續交付
在過去一年裡,在流水線中完成持續集成和持續交付方面取得了巨大的進展。從持續集成到持續交付,但他們之間的差距還是有些令人吃驚。
今年,有超過一半(51.2%)的訪問者說,他們實現了持續集成,這一數據在12個月前是30.6%。持續交付也取得了類似的進展,報告顯示29.3%的用戶已經實現了持續交付,這一數據在一年前是13.9%,預計很快就能有更大的比例。
不僅是持續集成和持續交付在越來越多的組織中成為現實,那些沒有實現的組織也期望很快實現,其中,31%的是持續集成,42.9%的是持續交付。
這些預測表明,80%的公司將實現持續集成,70%的公司將實現持續交付 。
越來越多的組織期望實現CI/CD
六、結論
容器革命正在快速推進,大多數技術組織都已經擁抱Kubernetes用於容器編排,最常見的是在DevOps環境中。實現持續集成和持續交付也正成為司空見慣的事情。
這表明,大多數開發人員現在能夠專注於技術棧的特定領域,而不是整個基礎設施結構。使用Kubernetes能夠幫助開發人員更好的管理不斷增加的複雜性、使得組織能夠隨著業務的增長,更輕鬆的擴展。將容器編排系統與持續集成/持續交付(CI/CD)流水線結合可提供更頻繁的、更高質量的軟件版本,最終使得用戶和開發人員都更快樂。
縮略語
CI: Continuous Integration 持續集成
CD: Continuous Delivery 持續交付
SDLC: Software Development Life Cycle 軟件開發生命週期
APAC: Asia and Pacific 亞洲太平洋地區
EMEA:Europe, the Middle East and Africa 歐洲、中東、非洲三地區
NA:North America 北美
閱讀更多 DevOps亮哥 的文章