《Docker生產環境實踐指南》——1.3 使用Docker的多種方式
本節書摘來自異步社區《Docker生產環境實踐指南》一書中的第1章,第1.3節,作者: 【美】Joe Johnston(喬•約翰斯頓)著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
1.3 使用Docker的多種方式
過去的幾年時間,科技發生了巨大變化,從物理服務器到虛擬服務器,再到擁有PaaS環境的雲計算。不論是否采用了全新架構,Docker鏡像都可以在當前環境中很容易地被使用。要使用Docker,並不需要立即從單體應用程序遷移到麵向服務架構。有很多用例允許在不同層次上集成Docker。
Docker常用於以下場景。
使用以鏡像為基礎的部署方式取代類似Capistrano的代碼部署係統。
安全地在同一台服務器中運行遺留應用和新應用。
使用一個工具鏈循序漸進地遷移到麵向服務架構。
管理雲端或裸機上的水平擴展性和彈性。
確保從開發環境到預演環境到生產環境跨環境的一致性。
簡化開發人員的機器設置和一致性。
將應用的後台程序遷移到Docker集群中,同時保持網頁服務器和數據庫服務器不變是開始使用Docker的常見示例。另一示例是將應用的部分REST API遷移到Docker中運行,前端使用Nginx代理在遺留服務和Docker集群之間路由通信。通過使用此類技術,團隊可以漸進式地從單體應用無縫地遷移到麵向服務架構。
如今的應用程序往往需要幾十個第三方庫,用於加速功能開發或連接第三方SaaS和數據庫服務。每個庫都可能產生bug,或是讓用戶陷入版本依賴的泥沼。再加上庫的頻繁更改,要在基礎設施上完成工作代碼的持續部署而不引起失敗,壓力巨大。
Docker可貴的鏡像思想使得技術團隊在部署工作代碼時,不論是單體架構、麵向服務或是二者的混合,由於代碼及其依賴項捆綁在同一個鏡像中,所使用的方式對每次部署都是可測試、可重複、文檔化且一致的。一旦一個鏡像構建完畢,就可以部署到任意多個運行著Docker守護進程的服務器上。
另外一個常見的Docker用例是跨環境部署一個單一容器,其典型的代碼路徑是從開發環境到預演環境再到生產環境。容器為整個代碼路徑提供了一個一致的、可測試的環境。
作為一個開發人員,Docker模型允許在其個人電腦上調試與生產環境完全一致的代碼。開發人員可以很容易地下載、運行和調試有問題的生產環境鏡像,且無需事先對本地開發環境進行修改。
最後更新:2017-06-01 11:31:46