精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Docker怎樣改造你的開發團隊

責任編輯:editor005

作者:時速云編譯

2015-09-24 15:07:27

摘自:TechTarget中國

任何一個技術人員都可以幾秒內在本地搭建一個測試環境。所有這些特性使得Docker能夠快速地創建機器,所有進入生產環境的機器都是基于鏡像的拷貝,而不是一個現有的服務器的補丁。

Docker提升了軟件測試的速度,毫無疑問,任何研發團隊都應該選擇它。下面我來告訴你為什么。

一直以來,部署測試環境是一個耗時并且繁雜的工作。即便測試環境中運行正確,開發、測試和生產環境的差別也會導致生產環境中出現問題。虛擬機通過拷貝一份操作系統數據解決了這個問題,代價是運行效率的降低和數Gb的磁盤空間。

Docker,作為一個輕量、快速的Linux虛擬化工具,應運而生。

Docker的優勢

首先,任何一個技術人員都可以幾秒內在本地搭建一個測試環境。容器取代了虛擬機,事實上作為一個進程運行在操作系統之上,所以能夠秒間啟動。鏡像取代了虛擬機文件,但具有更多特性,如果本地存儲了一個鏡像,在下次構建或者拉取時只會加載差異的部分。

對于采用Docker的團隊,搭建測試環境是很常用的,簡化這類操作帶來的效率也更明顯。如果軟件架構延伸到staging和production,那么在staging和production環境交付也可以這么簡單。

另一個特性是它賦予你創建全新的虛擬設施的能力,你可以把虛擬設施添加到你的服務器集群中,一般稱之為”green” build。”green” build環境是生產環境的拷貝,最后一輪回歸測試在這個環境下進行。測試完成以后,通過部署腳本修改服務器為production模式。之前的production服務器,一般稱之為”blue” build,被下線,以備代碼回滾。上述的構建和部署過程,我們稱之為”green/blue deployment”,我們也可以通過其他技術實現,Docker使這些操作更為簡單。

為什么是Docker?

基于windows的軟件編譯成一個單獨的安裝程序時,web軟件有一個不同的交付:創建運行在一臺服務器上。傳統的網站發布管理包含創造3-4個不同的層:開發、測試、生產,有時候還有運行時環境。這種模式里,至少每層有一臺服務器以及一系列的運行規則。當軟件以及為下一個操作準備好時,構建可能部署到下一層服務器。

虛擬機改變了這一切,服務器容下每個團隊成員創建一個不同的服務。這允許每個分支可以獨立測試,在最后階段合并到主線,而不需要在新硬件上花費成千上萬美元。每人一個虛擬機,這也使得當測試人員在秒級機器上重復測試產品補丁時,開發者在本地機上排除產品bug成為可能。一部分測試人員對pre-release版本進行回歸測試,其他測試人員可以測試下一版本,同時研發人員可以在新分支上開發新特性。

虛擬機的問題是大小和速度。每個虛擬機包含一整個host操作系統(簡稱OS),創建一個虛擬機就意味著占據數GB的空間,創建一整個新運行系統,然后安裝“構建”在操作系統里。更糟糕的是,操作系統在應用空間里運行——這就像在宿主OS里還有一個OS。虛擬機的boot/ install進程可能需要幾分鐘到1小時,這對于中斷流而言很是夠了。在不影響性能的情況下技術人員可能會在筆記本上啟動host 1-2個虛擬機;試著在網絡上按需取得虛擬機的創建,這完全是“私有云”項目。

Docker在OS內核而不是應用空間運行,換句話說,它是OS的一部分。作為OS的一部分運行限制了Docker只能在比較新的linux內核上運行,包括host機和容器,但是這樣也很大程度上簡化了OS的進程管理。Docker在內核里運行減少了很多冗余。舉個例子,一個宿主機上的所有Docker容器共享一個內核,而每個vm都需要一個內核。這意味著Docker容器不需要操作系統式的“boot”(啟動),因為容器基于的內核一直在運行。

所有這些特性使得Docker能夠快速地創建機器,所有進入生產環境的機器都是基于鏡像的拷貝,而不是一個現有的服務器的補丁。

這種在broken state情況下停止和保存一個容器的能力,使得在Docker環境下調試更為容易。如果調試破壞了環境條件,或者在某些方式下“弄臟”環境,重新恢復broken state是非常簡單的。Docker對于任何應用在任何Linux服務器上都是可用或者運行著的;容器的快啟動和可丟棄性對于批處理等任務特別方便。

Docker容器有一些工具幫助你配置甚至模擬完整的基礎設施,這樣團隊生活更happy。其中最受歡迎的是Docker Compose,之前部署配置復雜的多個程序,現在僅僅一條命令就ok了。

Docker在生產環境

本地的Docker和云服務器上的docker并沒有區別,但確保應用到production就完全不一樣了。Docker早起像是Wild West,當它開始進入生產的時候。共同的挑戰是 容器編排,即將Docker化的應用和服務,規劃到計算機資源的集群中。這意味著企業不在乎容器在哪里運行,只在乎它們在運行并能夠正確地處理請求,不管是應用是網站交互,內部服務、數據庫,還是消息隊列。

編排領域領域的大玩家有AWS EC2 Container Service,,Docke Swarm 和Mesos.。編排的服務可以很好地管理容器,同時面臨著一些關鍵問題,比如blue/green部署,容器恢復,負載均衡,服務恢復和容器網絡互聯。

當評估Docker在生產環境下的應用時,當然其他的挑戰比如日志、環境變量系統配置。看你是否準備遷移到Docker最好的標志就是看你離12 Factor App有多近。

Don Taylor在CodeMash的Docker教程讓觀眾了解了Linux上安裝Docker、創建容器和在容器中執行命令。要深入了解,github是最好的選擇。

安裝一個Linux虛擬機、安裝Docker、創建容器,然后自己去決定是否在你的組織里使用Docker技術。

鏈接已復制,快去分享吧

企業網版權所有?2010-2025 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 塔河县| 射洪县| 盐山县| 德清县| 囊谦县| 米脂县| 特克斯县| 秀山| 荥经县| 凭祥市| 崇明县| 寻甸| 广东省| 迁安市| 咸丰县| 社旗县| 阿瓦提县| 玉树县| 沈阳市| 平南县| 榕江县| 比如县| 平泉县| 新竹市| 乌兰浩特市| 濮阳县| 海南省| 通化市| 佛教| 井研县| 武隆县| 乐清市| 东阳市| 改则县| 泊头市| 泗洪县| 资阳市| 巫山县| 尼木县| 晋城| 扎鲁特旗|