Docker技術這些應用場景,你知道嗎?
場景一:節省項目環境部署時間
1.單項目打包
每次部署項目到測試、生產等環境,都要部署一大堆依賴的軟件、工具,而且部署期間出現問題幾率很大,不經意就花費了很長時間。
Docker主要理念就是環境打包部署,可在任意Docker Engine運行。前期我們只需要將每個項目環境打包到鏡像,push到鏡像倉庫,當有需要部署這個項目時,直接pull鏡像啟動容器,這個項目就可以訪問了!一次構建多次部署,一勞永逸。
2.整套項目打包
公司有一項這樣的業務:有一個產品可以整套部署到客戶那裏,以往都是派一名實施工程師到客戶那部署。如果用了Docker,我們可以前期將這套項目封裝打包起來,實現一鍵部署,分分鐘鐘搞定,就不需要再派人過去了。比如官方的Docker Compose編排工具。
3.新開源技術試用
有時,我們想調研一些開源項目,我們可以直接從公共鏡像倉庫pull項目官方做好鏡像啟動容器即可。
場景二:環境一致性
開發工程師在Windows系統上開發項目,測試、生產環境操作系統都是Linux系統,這就產生了環境不一致的情況:項目在開發電腦本地運行沒問題,到了測試或生產環境就運行不起來,解決這問題最好方式就是這三處環境保持一致。軟件版本、操作系統、物理機、雲主機......試想下,能做到嗎?
Docker將項目環境打包成鏡像,可以在任何Docker Engine上浪。此時Docker就是我們這些項目的基石,Docker可移植性,保持運行狀態一致性,可想而知,是否更容易解決問題呢?
場景三:持續集成
一個項目版本快速叠代的測試場景,需要一個合理的CI(持續集成)/CD(持續部署)環境支撐。CI/CD是一個周期性自動化項目測試流程,包括構建、部署、測試、發布等工作,很少需要人工幹預。
項目測試流程大致如下圖:
Docker結合Jenkins構建持續集成環境大致如下圖:
Docker在上面這個圖的作用是項目鏡像構建和快速部署,打通測試環境與生產環境,高度保持多個環境之間一致性。
場景四:微服務
微服務是近幾年來IT圈內談論比較多的一個名詞,意義也很簡單:盡可能細粒度拆分業務程序架構,由多個獨立服務組成業務系統。
Docker的容器設計原則:一個容器一個服務,容器之間相互隔離,不放試想一下,如果容器作為這些獨立服務的部署單元,是不是有點恰到好處呢?
場景五:彈性伸縮
說到彈性伸縮,通常是集群模式下存在。像AWS AutoScaling,可以自定義資源閾值,SLB自動添加EC2雲主機,應對業務訪問量突發情況。
當適用Docker技術以後,這種彈性伸縮的單元就是雲主機之上的容器了。
容器集群化管理已經有成熟的解決方案,比如:官方的Swarm,谷歌的K8S
由於Docker容器快速啟動特性,可以很快速的啟動幾十個、上百個容器來提供更多並發和資源利用率(如果宿主機資源不夠,還需要加主機到集群中)。
Docker這些特性的確解決了企業IT基礎架構很多問題,也是為什麽越來越多的企業擁抱它的原因。
可能您覺得眼前這種模式提供不了多少工作效率,但從長遠看,細細品味,還是可以產生更大生產力的!
以上場景相互相應,只有一個共同目標:簡化部署流程,提高生產力!
想學習Docker技術而又無從下手或者無法深入的朋友,可以看看我錄制的課程視頻<Docker入門到高級應用實戰>,也許能幫助你進一步的提高專業能力,升職加薪,指日可待!
課程地址:https://ke.qq.com/course/package/5561
本文出自 “李振良的技術博客” 博客,請務必保留此出處http://lizhenliang.blog.51cto.com/7876557/1978081
Docker技術這些應用場景,你知道嗎?