Docker四種方式改變了軟體工程師過去五年的工作方式

banq發表於2018-12-04

10年前,Git改變了軟體工程師的工作方式。五年前,Docker將容器帶給了大眾。這篇文章是關於Docker如何改變了我們過去5年的工作方式。

使用Docker,你不僅可以運送整個堆疊的程式碼。為容器分配最少的所需資源,然後水平擴充套件它們。隨著容器安全通常也已經實現。使用Docker和Kubernetes,您可以獲得零停機時間和更快的部署,從而實現業務利潤。

Docker部分棄用了許多配置管理工具。

1. 運送整個堆疊,而不僅僅是程式碼
對於特定的容器和Docker,您始終在每個版本中運送整個堆疊。每次都會重建整個映象,它包括精確的OS +版本,語言的特定版本。它還具有框架和其他庫之類的依賴關係(版本取決於您如何處理它)。它還包括您編寫的程式碼,這會帶來顯著的優勢。優點是,如果它在您的機器上正確構建,它也可能在其他任何安裝了Docker的伺服器上構建。一旦它執行,它就形成開發,升級,測試甚至生產都一樣的環境。

2. 僅為應用程式分配所需資源並水平擴充套件
對於每個Docker容器,您可以具體說明要為該特定容器分配多少資源。使用像Kubernetes這樣的軟體,可以更輕鬆地擴充套件您的應用程式。在高負荷下,容器可以擴充套件;負載較小時,也可以收縮。因此,使用此機制,可以為每個容器(或Kubernetes的pod)分配最小資源,並根據需要進行水平擴充套件。

一個簡單的Node JS app容器/ pod可以執行128 MB記憶體和0.25 CPU。當負載增加時,執行5個pod代替2個pod。

這可以構建具有水平可伸縮性的應用程式。這基本上意味著不在檔案系統上儲存資料。這樣像牧場放牧一樣,不再是一種養寵物的方式,這樣有助於水平伸縮。它還使應用程式的高可用性成為可實現的任務。

3. 安全性已被預設啟動
使用容器而不是虛擬機器,攻擊面已經減少。遵循容器安全最佳實踐,您已經可以改進安全措施。當然,如果你在應用程式中有漏洞,比如SQL隱碼攻擊,這是另外一回事。儘管如此,對於像Alpine這樣的小型安全映象來說,更容易掌握基礎知識。
容器應該只能訪問它需要的東西。由於檔案系統對於容器是臨時的,因此它可以是安全保障以及安全審計問題。

4. 零停機時間更快部署
部署Docker容器總是要運送整個堆疊。因此,一個檔案未同步或一個伺服器未獲得最新更改的可能性不存在。由於部署映像的成功構建取決於一定要在構建過程中找到可找到的任何問題。

使用像Kubernetes和Helm這樣的軟體,編排和部署容器變得簡單明瞭。使用適當的負載平衡實現高可用性(HA),部署可以是零停機時間。

更輕鬆,更快速的部署等同於部署較小更改的能力。做得較好的較小變化可以快速響應市場需求。總而言之,使用正確的工具來部署容器,以便將其用於業務優勢。

結論
過去5年,Docker迅速採用。使用Kubernetes等工具進行部署和擴充套件應用程式比幾年前要輕鬆得多。

相關文章