摘要:提升了軟件測試的速度,毫無疑問,任何研發團隊都應該選擇它。環境是生產環境的拷貝,最后一輪回歸測試在這個環境下進行。一部分測試人員對版本進行回歸測試,其他測試人員可以測試下一版本,同時研發人員可以在新分支上開發新特性。
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并沒有區別,但確保應用到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技術。
本文由趙帥龍編譯整理,原文鏈接:http://blog.tenxcloud.com/?p=742
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26464.html
摘要:企業使用的最大原因是幫助他們部署多系統,遷移應用程序以及消除手動配置工作。文化這是好消息,企業尋求推進文化轉型。在安全威脅下,目前需要大量的手動安全補丁。很有可能是企業在面對混合云挑戰過程中的真正答案。 企業喜歡Docker。在許多企業的2016戰略規劃上,Docker已成為科技創業公司和金融服務集團的寵兒,盡管Docker還非常年輕。 眾所周知,企業不需要在DevOps改造到某個階段...
摘要:工程師選擇了環境中的一臺當前沒有在負載均衡器中被激活的主機。工程師登陸到這臺主機并從注冊表中獲取新的版本。在生產維護窗口中,更新負載均衡器使其指向更新過的主機。然而將部署代碼化的問題仍然存在。 這篇文章是一系列文章的第一篇,在這一系列文章中,我們想要分享我們如何使用Docker、Docker-Compose和Rancher完成容器部署工作流的故事。我們想帶你從頭開始走過pipeline...
摘要:本文是網易容器云平臺的微服務化實踐系列文章的第一篇。網易容器云平臺的前身是網易應用自動部署平臺,它能夠利用云提供的基礎設施,實現包括構建和部署一體化在內的整個應用生命周期管理。目前網易云容器服務團隊以的方式管理著微服務,每周構建部署次數。 此文已由作者馮常健授權網易云社區發布。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 摘要:網易云容器平臺期望能給實施了微服務架構的團隊提供完...
摘要:年我們開始專注于開源云計算技術,當時開源的力量正在逐漸浮現。問你現在在實驗室的工作是什么我主要負責實驗室云計算團隊的技術工作,以及與技術相關的其他事宜,包括開源以及一些商業上的技術合作。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520 張磊,浙江大學計算機學院博士生,科研人員,VLIS實驗室云計算組技...
摘要:年我們開始專注于開源云計算技術,當時開源的力量正在逐漸浮現。問你現在在實驗室的工作是什么我主要負責實驗室云計算團隊的技術工作,以及與技術相關的其他事宜,包括開源以及一些商業上的技術合作。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520 張磊,浙江大學計算機學院博士生,科研人員,VLIS實驗室云計算組技...
閱讀 2538·2023-04-26 00:57
閱讀 910·2021-11-25 09:43
閱讀 2221·2021-11-11 16:55
閱讀 2205·2019-08-30 15:53
閱讀 3592·2019-08-30 15:52
閱讀 1458·2019-08-30 14:10
閱讀 3379·2019-08-30 13:22
閱讀 1209·2019-08-29 11:18