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

jopen 9年前發布 | 6K 次閱讀 Docker

 

長久以來,軟件測試團隊等待著一個合適的測試版本已經是個老問題,開發環境、測試環境、生產環境之間的差異,總會導致生產版本有缺陷被遺漏。虛擬 機的出現解決了這些問題,但是同時也帶來了性能的下降,還有磁盤的大量浪費。這時候,Docker出場了,它是Linux下一款輕量且高性能的虛擬化工 具。希云作為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 ,期待您的合作!

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!