天天看點

Docker技術這些應用場景,你知道嗎?

場景一:節省項目環境部署時間

1.單項目打包

每次部署項目到測試、生産等環境,都要部署一大堆依賴的軟體、工具,而且部署期間出現問題幾率很大,不經意就花費了很長時間。

Docker主要理念就是環境打包部署,可在任意Docker Engine運作。前期我們隻需要将每個項目環境打包到鏡像,push到鏡像倉庫,當有需要部署這個項目時,直接pull鏡像啟動容器,這個項目就可以通路了!一次建構多次部署,一勞永逸。

2.整套項目打包

公司有一項這樣的業務:有一個産品可以整套部署到客戶那裡,以往都是派一名實施工程師到客戶那部署。如果用了Docker,我們可以前期将這套項目封裝打包起來,實作一鍵部署,分分鐘鐘搞定,就不需要再派人過去了。比如官方的Docker Compose編排工具。

3.新開源技術試用

有時,我們想調研一些開源項目,我們可以直接從公共鏡像倉庫pull項目官方做好鏡像啟動容器即可。

場景二:環境一緻性

開發工程師在Windows系統上開發項目,測試、生産環境作業系統都是Linux系統,這就産生了環境不一緻的情況:項目在開發電腦本地運作沒問題,到了測試或生産環境就運作不起來,解決這問題最好方式就是這三處環境保持一緻。軟體版本、作業系統、實體機、雲主機......試想下,能做到嗎?

Docker将項目環境打包成鏡像,可以在任何Docker Engine上浪。此時Docker就是我們這些項目的基石,Docker可移植性,保持運作狀态一緻性,可想而知,是否更容易解決問題呢?

場景三:持續內建

一個項目版本快速疊代的測試場景,需要一個合理的CI(持續內建)/CD(持續部署)環境支撐。CI/CD是一個周期性自動化項目測試流程,包括建構、部署、測試、釋出等工作,很少需要人工幹預。

項目測試流程大緻如下圖:

<a href="https://s4.51cto.com/oss/201711/01/4a9865dd3064a17d4ee37e546b0ba4ca.jpg" target="_blank"></a>

Docker結合Jenkins建構持續內建環境大緻如下圖:

<a href="https://s5.51cto.com/oss/201711/01/8c3ef2e57378972a177353133dd45eb7.jpg" target="_blank"></a>

Docker在上面這個圖的作用是項目鏡像建構和快速部署,打通測試環境與生産環境,高度保持多個環境之間一緻性。

場景四:微服務

微服務是近幾年來IT圈内談論比較多的一個名詞,意義也很簡單:盡可能細粒度拆分業務程式架構,由多個獨立服務組成業務系統。

Docker的容器設計原則:一個容器一個服務,容器之間互相隔離,不妨試想一下,如果容器作為這些獨立服務的部署單元,是不是有點恰到好處呢?

場景五:彈性伸縮

說到彈性伸縮,通常是叢集模式下存在。像AWS AutoScaling,可以自定義資源門檻值,SLB自動添加EC2雲主機,應對業務通路量突發情況。

當适用Docker技術以後,這種彈性伸縮的單元就是雲主機之上的容器了。

容器叢集化管理已經有成熟的解決方案,比如:官方的Swarm,谷歌的K8S

由于Docker容器快速啟動特性,可以很快速的啟動幾十個、上百個容器來提供更多并發和資源使用率(如果主控端資源不夠,還需要加主機到叢集中)。

小結:

根據上述應用場景總結下Docker特點:開箱即用,快速部署,可移植性強,環境隔離等。

Docker這些特性的确解決了企業IT基礎架構很多問題,合理的利用這些特點将更健壯和強大您的IT基礎架構。也是為什麼越來越多的企業擁抱它的原因!

可能您覺得眼前這種模式并沒有明顯帶來什麼好處,但從長遠看,細細品味,還是可以提高更大生産力的!

以上場景特點互相相應,隻有一個共同目标:簡化部署流程,提高生産力!

想學習Docker技術而又無從下手或者無法深入的朋友,可以看看我錄制的課程視訊&lt;Docker入門到進階應用實戰&gt;,也許能幫助你進一步的提高專業能力,升職加薪,指日可待!

本文轉自 李振良OK 51CTO部落格,原文連結:http://blog.51cto.com/lizhenliang/1978081,如需轉載請自行聯系原作者