Docker時代來臨,你的團隊準備好了嗎?

長久以來,軟件測試團隊等待着一個合適的測試版本已是個老問題,開發環境、測試環境、生產環境之間的差別,總會致使生產版本有缺陷被遺漏。虛擬機的出現解決了這些問題,可是同時也帶來了性能的降低,還有磁盤的大量浪費。這時候,Docker出場了,它是Linux下一款輕量且高性能的虛擬化工具。希雲做爲Docker領域專家,期待docker能給您的開發團隊帶來巨大價值。docker

>>>Docker帶來的機會數據庫

首先,技術團隊中任何人均可以迅速在本地建立一個測試環境,只須要在已有的操做系統下啓動新的進程,因此不須要系統的啓動。若是基於一箇舊版本的鏡像建立,Docker能夠只加載兩個構建之間的差別。服務器

這種易用性讓不少團隊都採用了Docker方案,若是這種部署架構延伸到生產環境,那生產環境的部署也能變得這麼簡單。網絡

另外一個高明的作法是這樣,把一些純淨的虛擬化集羣部署到數個虛擬機上,把部署的這個版本稱爲"green"構建,全部的迴歸測試都在這個"green"構建中實施,至關於生產環境的一個副本。當測試完成後,只需用一個腳本調整這些服務器,那這些"green"構建就變成了生產環境。前一個構建的版本,能夠保留着,以備須要回滾操做。這種部署方式稱爲["blue/green"部署],能夠用好幾種技術實現。Docker使得這種方式更簡單了。架構

>>>爲何選Docker?負載均衡

基於Windows的軟件能夠被編譯成一個單獨的安裝包,而基於Web的軟件交付的方式徹底不一樣:構建出的軟件須運行在服務器上。網站的典型發佈流程涉及起碼三到四層:開發環境,測試環境,生產環境,有時還會有準生產環境,這種方式每層都至少包含一臺服務器。而且每層的升級一般有固定的發佈規則,一旦軟件知足某種條件,就會被部署到下一層的環境中。工具

虛擬機使這種狀況發生了變化,能讓服務器的數量和開發團隊的人數同樣多。這樣就可讓每一個分支都獨立測試,最後才合併到主版本以供集成測試,這種方案能夠省下大量採購新三件的費用。使用虛擬機也能讓開發人員在本地調試生產環境出現的問題,同時測試人員也能夠在另外一臺機器上從新測試一個補丁;一個測試人員迴歸測試着即將發佈的版本,而另外五個測試人員測試着下一版本的特性,還能夠有五個開發人員在開發着新的分支。性能

虛擬機的問題是容量和性能,每一個虛擬機都須要包含着整個操做系統,新建一個虛擬機意味要多分配數GB的硬盤空間,用以建立一個全新的操做系統,才能把構建的應用部署到這個操做系統中。更糟糕的是,這個操做系統須要運行在宿主系統的用戶空間,這樣至關於在一個操做系統上跑着另外一個操做系統。啓動或者安裝一個新的應用到虛擬機中,一般都須要數分鐘甚至一小時,這樣很容易打斷原有的工做計劃。技術人員的電腦上極可能只能裝上一到兩個虛擬機,這樣才能避免嚴重的性能降低。後來出現的「私有云計算」,就是這種方案延伸到在網絡上使用虛擬機。測試

Docker運行在主系統的內核空間,而不是用戶空間,換言之,它自己是使用了操做系統自己的一部分,這樣確實是會限制了,Docker只能在現代Linux內核中運行,但這也極大的簡化了操做系統的進程切換。在內核中運行Docker避免了像虛擬機引發的資源浪費,並且Docker容器系統不須要「額外啓動」,由於它原本就已經「啓動」了。網站

這些特性使得Docker方案能以極快的速度建立服務器,能直接把整個磁盤鏡像部署到生產環境,而不僅是給現有系統打補丁。
                                             
Docker還能夠中止並保存容器的錯誤狀態,讓開發者稍後調試,這使得在Docker下調試更加方便,若是調試過程當中破壞了重現bug的環境,那麼恢復到以前保存的錯誤狀態就能夠把bug重現。Docker能夠在任意的Linux服務器上運行任意的應用,它的快速部署和快速銷燬的特性讓它也很適合用於批處理的任務。

開源社區上有一些工具,能夠幫助配置甚至用Docker模擬整套服務器集羣,最受歡迎的是Docker Compose,這工具能讓複雜的搭建過程簡化到一個命令。

>>>生產環境上的Docker

在本地或者雲服務上的Docker服務是一回事,要使它能在生產環境上使用又徹底是另外一回事。在初期要在生產環境上以Docker部署仍是有點單薄,而如今最多見的術語是「容器編排」,這技術讓Docker化的應用和服務能有組織地部署到服務器上,經過它,咱們能夠不關心容器到底部署在哪臺服務器上,只須要它們正在服務着,不管這些應用是流量監控、內部服務、數據庫或者是消息隊列,都能以這種方式部署。

目前最成熟的編排產品是AWS EC2 Container Service,Docker Swarm 和 Mesos。典型的編排技術核心是管理容器,但一般也有一些附帶的功能,例如"blue/green"部署,容器修復,負載均衡,服務發現和容器網絡配置等。

當要在生產環境上使用Docker時,還有其餘一些地方要注意的,例如日誌記錄,環境變量配置等。

沒嘗試過Docker的讀者能夠安裝一個Linux虛擬機,在上邊安裝好Docker,探索一下如何使用容器等技術,再決定這個技術是否合適您的團隊吧。瞭解docker更多知識,請觀看免費培訓視頻(http://csphere.cn/training)。希雲,Docker私有云領導者!利用Docker提供更好的雲計算產品和服務,歡迎訪問官網首頁:http://csphere.cn,期待您的合做!

感謝您閱讀此文,希雲將在本週四繼續分享docker技術文章,請你們保持關注!

相關文章
相關標籤/搜索