Docker是一個開源的容器引擎,Kubernetes是一個開源的容器排程平臺並且已經是容器編排事實上的標準,DevOps是能夠加速業務創新,快速交付使用者高質量價值的一套方法論和最佳實踐,這三者是相互促進,相互影響的。基於Docker和Kubernetes搭建的能夠滿足資源彈性供給得雲計算平臺,可以更高效得利用物理資源。Docker將服務執行的環境統一封裝為docker映象,以映象的方式交付軟體產品,從根本上解決了DevOps中的很多問題,可以加速DevOps落地。從目前得技術發展來看,以docker和Kubernetes的雲原生應用是未來的發展方向。DevOps涉及軟體開發的全生命週期管理,不止是工具層面得工具鏈建設,還包含很多以敏捷、精益為基礎的方法論,如Scrum,看板方法等,持續整合(CI)和持續交付(CD)只是DevOps眾多階段中的一個而已,有了Docker和Kubernetes,企業實施DevOps會更加快捷、高效。
沒有docker,軟體的開發完成後交付的是二進位制包,透過指令碼的方式部署到物理機或虛機中。在生產環境中執行的服務,如果想要在流量高峰時做擴容,流量低谷時做縮容,如果想對執行時的服務進行全方位的監控,如果想在升級時做滾動升級,做流量控制等,是一件很複雜的事情,現在基於K8s的容器編排平臺,能夠使得應用服務可自重啟、自複製、自縮放,基於docker和Kubernetes本身強大的管理能力,能夠使應用軟體的交付和部署變的更加方便,更加穩定。
可以這樣說,雲計算是未來,雲計算是應用服務執行的基礎設施,隨著技術的發展,DevOps會將更多的能力下沉到基礎設施層,成為企業軟體開發的基礎設施,要做到這些,docker和Kubernetes是不可缺少的工具。DevOps是一套軟體開發方法和實踐,不會限定具體的工具,但好工具是推動DevOps的助推器,Docker和Kubernetes便是其中最重要的工具。
Docker是一個開源的容器引擎,Kubernetes是一個開源的容器排程平臺並且已經是容器編排事實上的標準,DevOps是能夠加速業務創新,快速交付使用者高質量價值的一套方法論和最佳實踐,這三者是相互促進,相互影響的。基於Docker和Kubernetes搭建的能夠滿足資源彈性供給得雲計算平臺,可以更高效得利用物理資源。Docker將服務執行的環境統一封裝為docker映象,以映象的方式交付軟體產品,從根本上解決了DevOps中的很多問題,可以加速DevOps落地。從目前得技術發展來看,以docker和Kubernetes的雲原生應用是未來的發展方向。DevOps涉及軟體開發的全生命週期管理,不止是工具層面得工具鏈建設,還包含很多以敏捷、精益為基礎的方法論,如Scrum,看板方法等,持續整合(CI)和持續交付(CD)只是DevOps眾多階段中的一個而已,有了Docker和Kubernetes,企業實施DevOps會更加快捷、高效。
下面列舉一下,Docker和Kubernetes在哪些方面讓DevOps更有效力:1、環境一致性問題在軟體開發生命週期中會涉及到很多個環境,如:開發人員開發時的開發環境,開發完成後的測試環境,測試環境又分為SIT環境,UAT環境,效能測試環境,預覽環境等等,測試通過後部署到給使用者提供服務的生產環境。在每一個環境中,都會遇到各種各樣的問題,有些問題是軟體本身的問題,但環境本身的差異也是測試階段困擾開發和測試人員的一個重要因素。基於docker映象得部署,將環境和服務捆綁在一起,在任何環境中測試,環境的配置都是一樣的,能夠大大提高測試的效率和質量。2、測試環境資源供給問題在軟體測試階段,測試環境的資源利用率是很低的,但為了能隨時測試,我們必須要放置一套測試環境做準備,從這點來說,屬於資源浪費,而如果此時,團隊需要多套測試環境時,還是需要從新申請資源。所以,對於一些企業來說,資源不足就成了問題。另外,如果我們當我們需要一套新得環境時,環境管理人員需要進行各種軟體安裝,除錯,一套可用的環境準備好,往往需要數天得時間,環境的供給緩慢,也是測試階段耗時較久得關鍵因素。基於docker的容器部署,能夠做到資源的彈性供給,甚至可以做到分鐘級供給。3、軟體CICD和運維問題沒有docker,軟體的開發完成後交付的是二進位制包,透過指令碼的方式部署到物理機或虛機中。在生產環境中執行的服務,如果想要在流量高峰時做擴容,流量低谷時做縮容,如果想對執行時的服務進行全方位的監控,如果想在升級時做滾動升級,做流量控制等,是一件很複雜的事情,現在基於K8s的容器編排平臺,能夠使得應用服務可自重啟、自複製、自縮放,基於docker和Kubernetes本身強大的管理能力,能夠使應用軟體的交付和部署變的更加方便,更加穩定。
可以這樣說,雲計算是未來,雲計算是應用服務執行的基礎設施,隨著技術的發展,DevOps會將更多的能力下沉到基礎設施層,成為企業軟體開發的基礎設施,要做到這些,docker和Kubernetes是不可缺少的工具。DevOps是一套軟體開發方法和實踐,不會限定具體的工具,但好工具是推動DevOps的助推器,Docker和Kubernetes便是其中最重要的工具。