摘要:提升了軟件測(cè)試的速度,毫無(wú)疑問(wèn),任何研發(fā)團(tuán)隊(duì)都應(yīng)該選擇它。環(huán)境是生產(chǎn)環(huán)境的拷貝,最后一輪回歸測(cè)試在這個(gè)環(huán)境下進(jìn)行。一部分測(cè)試人員對(duì)版本進(jìn)行回歸測(cè)試,其他測(cè)試人員可以測(cè)試下一版本,同時(shí)研發(fā)人員可以在新分支上開(kāi)發(fā)新特性。
Docker提升了軟件測(cè)試的速度,毫無(wú)疑問(wèn),任何研發(fā)團(tuán)隊(duì)都應(yīng)該選擇它。下面我來(lái)告訴你為什么。
一直以來(lái),部署測(cè)試環(huán)境是一個(gè)耗時(shí)并且繁雜的工作。即便測(cè)試環(huán)境中運(yùn)行正確,開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境的差別也會(huì)導(dǎo)致生產(chǎn)環(huán)境中出現(xiàn)問(wèn)題。虛擬機(jī)通過(guò)拷貝一份操作系統(tǒng)數(shù)據(jù)解決了這個(gè)問(wèn)題,代價(jià)是運(yùn)行效率的降低和數(shù)Gb的磁盤(pán)空間。
Docker,作為一個(gè)輕量、快速的Linux虛擬化工具,應(yīng)運(yùn)而生。
Docker的優(yōu)勢(shì)首先,任何一個(gè)技術(shù)人員都可以幾秒內(nèi)在本地搭建一個(gè)測(cè)試環(huán)境。容器取代了虛擬機(jī),事實(shí)上作為一個(gè)進(jìn)程運(yùn)行在操作系統(tǒng)之上,所以能夠秒間啟動(dòng)。鏡像取代了虛擬機(jī)文件,但具有更多特性,如果本地存儲(chǔ)了一個(gè)鏡像,在下次構(gòu)建或者拉取時(shí)只會(huì)加載差異的部分。
對(duì)于采用Docker的團(tuán)隊(duì),搭建測(cè)試環(huán)境是很常用的,簡(jiǎn)化這類(lèi)操作帶來(lái)的效率也更明顯。如果軟件架構(gòu)延伸到staging和production,那么在staging和production環(huán)境交付也可以這么簡(jiǎn)單。
另一個(gè)特性是它賦予你創(chuàng)建全新的虛擬設(shè)施的能力,你可以把虛擬設(shè)施添加到你的服務(wù)器集群中,一般稱(chēng)之為”green” build。”green” build環(huán)境是生產(chǎn)環(huán)境的拷貝,最后一輪回歸測(cè)試在這個(gè)環(huán)境下進(jìn)行。測(cè)試完成以后,通過(guò)部署腳本修改服務(wù)器為production模式。之前的production服務(wù)器,一般稱(chēng)之為”blue” build,被下線,以備代碼回滾。上述的構(gòu)建和部署過(guò)程,我們稱(chēng)之為”green/blue deployment”,我們也可以通過(guò)其他技術(shù)實(shí)現(xiàn),Docker使這些操作更為簡(jiǎn)單。
為什么是Docker?基于windows的軟件編譯成一個(gè)多帶帶的安裝程序時(shí),web軟件有一個(gè)不同的交付:創(chuàng)建運(yùn)行在一臺(tái)服務(wù)器上。傳統(tǒng)的網(wǎng)站發(fā)布管理包含創(chuàng)造3-4個(gè)不同的層:開(kāi)發(fā)、測(cè)試、生產(chǎn),有時(shí)候還有運(yùn)行時(shí)環(huán)境。這種模式里,至少每層有一臺(tái)服務(wù)器以及一系列的運(yùn)行規(guī)則。當(dāng)軟件以及為下一個(gè)操作準(zhǔn)備好時(shí),構(gòu)建可能部署到下一層服務(wù)器。
虛擬機(jī)改變了這一切,服務(wù)器容下每個(gè)團(tuán)隊(duì)成員創(chuàng)建一個(gè)不同的服務(wù)。這允許每個(gè)分支可以獨(dú)立測(cè)試,在最后階段合并到主線,而不需要在新硬件上花費(fèi)成千上萬(wàn)美元。每人一個(gè)虛擬機(jī),這也使得當(dāng)測(cè)試人員在秒級(jí)機(jī)器上重復(fù)測(cè)試產(chǎn)品補(bǔ)丁時(shí),開(kāi)發(fā)者在本地機(jī)上排除產(chǎn)品bug成為可能。一部分測(cè)試人員對(duì)pre-release版本進(jìn)行回歸測(cè)試,其他測(cè)試人員可以測(cè)試下一版本,同時(shí)研發(fā)人員可以在新分支上開(kāi)發(fā)新特性。
虛擬機(jī)的問(wèn)題是大小和速度。每個(gè)虛擬機(jī)包含一整個(gè)host操作系統(tǒng)(簡(jiǎn)稱(chēng)OS),創(chuàng)建一個(gè)虛擬機(jī)就意味著占據(jù)數(shù)GB的空間,創(chuàng)建一整個(gè)新運(yùn)行系統(tǒng),然后安裝“構(gòu)建”在操作系統(tǒng)里。更糟糕的是,操作系統(tǒng)在應(yīng)用空間里運(yùn)行——這就像在宿主OS里還有一個(gè)OS。虛擬機(jī)的boot/ install進(jìn)程可能需要幾分鐘到1小時(shí),這對(duì)于中斷流而言很是夠了。在不影響性能的情況下技術(shù)人員可能會(huì)在筆記本上啟動(dòng)host 1-2個(gè)虛擬機(jī);試著在網(wǎng)絡(luò)上按需取得虛擬機(jī)的創(chuàng)建,這完全是“私有云”項(xiàng)目。
Docker在OS內(nèi)核而不是應(yīng)用空間運(yùn)行,換句話說(shuō),它是OS的一部分。作為OS的一部分運(yùn)行限制了Docker只能在比較新的linux內(nèi)核上運(yùn)行,包括host機(jī)和容器,但是這樣也很大程度上簡(jiǎn)化了OS的進(jìn)程管理。Docker在內(nèi)核里運(yùn)行減少了很多冗余。舉個(gè)例子,一個(gè)宿主機(jī)上的所有Docker容器共享一個(gè)內(nèi)核,而每個(gè)vm都需要一個(gè)內(nèi)核。這意味著Docker容器不需要操作系統(tǒng)式的“boot”(啟動(dòng)),因?yàn)槿萜骰诘膬?nèi)核一直在運(yùn)行。
所有這些特性使得Docker能夠快速地創(chuàng)建機(jī)器,所有進(jìn)入生產(chǎn)環(huán)境的機(jī)器都是基于鏡像的拷貝,而不是一個(gè)現(xiàn)有的服務(wù)器的補(bǔ)丁。
這種在broken state情況下停止和保存一個(gè)容器的能力,使得在Docker環(huán)境下調(diào)試更為容易。如果調(diào)試破壞了環(huán)境條件,或者在某些方式下“弄臟”環(huán)境,重新恢復(fù)broken state是非常簡(jiǎn)單的。Docker對(duì)于任何應(yīng)用在任何Linux服務(wù)器上都是可用或者運(yùn)行著的;容器的快啟動(dòng)和可丟棄性對(duì)于批處理等任務(wù)特別方便。
Docker容器有一些工具幫助你配置甚至模擬完整的基礎(chǔ)設(shè)施,這樣團(tuán)隊(duì)生活更happy。其中最受歡迎的是Docker Compose,之前部署配置復(fù)雜的多個(gè)程序,現(xiàn)在僅僅一條命令就ok了。
本地的Docker和云服務(wù)器上的docker并沒(méi)有區(qū)別,但確保應(yīng)用到production就完全不一樣了。Docker早起像是Wild West,當(dāng)它開(kāi)始進(jìn)入生產(chǎn)的時(shí)候。共同的挑戰(zhàn)是 容器編排,即將Docker化的應(yīng)用和服務(wù),規(guī)劃到計(jì)算機(jī)資源的集群中。這意味著企業(yè)不在乎容器在哪里運(yùn)行,只在乎它們?cè)谶\(yùn)行并能夠正確地處理請(qǐng)求,不管是應(yīng)用是網(wǎng)站交互,內(nèi)部服務(wù)、數(shù)據(jù)庫(kù),還是消息隊(duì)列。
編排領(lǐng)域領(lǐng)域的大玩家有AWS EC2 Container Service,,Docke Swarm 和Mesos.。編排的服務(wù)可以很好地管理容器,同時(shí)面臨著一些關(guān)鍵問(wèn)題,比如blue/green部署,容器恢復(fù),負(fù)載均衡,服務(wù)恢復(fù)和容器網(wǎng)絡(luò)互聯(lián)。
當(dāng)評(píng)估Docker在生產(chǎn)環(huán)境下的應(yīng)用時(shí),當(dāng)然其他的挑戰(zhàn)比如日志、環(huán)境變量系統(tǒng)配置??茨闶欠駵?zhǔn)備遷移到Docker最好的標(biāo)志就是看你離12 Factor App有多近。
Don Taylor在CodeMash的Docker教程讓觀眾了解了Linux上安裝Docker、創(chuàng)建容器和在容器中執(zhí)行命令。要深入了解,github是最好的選擇。
安裝一個(gè)Linux虛擬機(jī)、安裝Docker、創(chuàng)建容器,然后自己去決定是否在你的組織里使用Docker技術(shù)。
本文由趙帥龍編譯整理,原文鏈接:http://blog.tenxcloud.com/?p=742
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26464.html
摘要:企業(yè)使用的最大原因是幫助他們部署多系統(tǒng),遷移應(yīng)用程序以及消除手動(dòng)配置工作。文化這是好消息,企業(yè)尋求推進(jìn)文化轉(zhuǎn)型。在安全威脅下,目前需要大量的手動(dòng)安全補(bǔ)丁。很有可能是企業(yè)在面對(duì)混合云挑戰(zhàn)過(guò)程中的真正答案。 企業(yè)喜歡Docker。在許多企業(yè)的2016戰(zhàn)略規(guī)劃上,Docker已成為科技創(chuàng)業(yè)公司和金融服務(wù)集團(tuán)的寵兒,盡管Docker還非常年輕。 眾所周知,企業(yè)不需要在DevOps改造到某個(gè)階段...
摘要:工程師選擇了環(huán)境中的一臺(tái)當(dāng)前沒(méi)有在負(fù)載均衡器中被激活的主機(jī)。工程師登陸到這臺(tái)主機(jī)并從注冊(cè)表中獲取新的版本。在生產(chǎn)維護(hù)窗口中,更新負(fù)載均衡器使其指向更新過(guò)的主機(jī)。然而將部署代碼化的問(wèn)題仍然存在。 這篇文章是一系列文章的第一篇,在這一系列文章中,我們想要分享我們?nèi)绾问褂肈ocker、Docker-Compose和Rancher完成容器部署工作流的故事。我們想帶你從頭開(kāi)始走過(guò)pipeline...
摘要:本文是網(wǎng)易容器云平臺(tái)的微服務(wù)化實(shí)踐系列文章的第一篇。網(wǎng)易容器云平臺(tái)的前身是網(wǎng)易應(yīng)用自動(dòng)部署平臺(tái),它能夠利用云提供的基礎(chǔ)設(shè)施,實(shí)現(xiàn)包括構(gòu)建和部署一體化在內(nèi)的整個(gè)應(yīng)用生命周期管理。目前網(wǎng)易云容器服務(wù)團(tuán)隊(duì)以的方式管理著微服務(wù),每周構(gòu)建部署次數(shù)。 此文已由作者馮常健授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問(wèn)網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營(yíng)經(jīng)驗(yàn)。 摘要:網(wǎng)易云容器平臺(tái)期望能給實(shí)施了微服務(wù)架構(gòu)的團(tuán)隊(duì)提供完...
摘要:年我們開(kāi)始專(zhuān)注于開(kāi)源云計(jì)算技術(shù),當(dāng)時(shí)開(kāi)源的力量正在逐漸浮現(xiàn)。問(wèn)你現(xiàn)在在實(shí)驗(yàn)室的工作是什么我主要負(fù)責(zé)實(shí)驗(yàn)室云計(jì)算團(tuán)隊(duì)的技術(shù)工作,以及與技術(shù)相關(guān)的其他事宜,包括開(kāi)源以及一些商業(yè)上的技術(shù)合作。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520 張磊,浙江大學(xué)計(jì)算機(jī)學(xué)院博士生,科研人員,VLIS實(shí)驗(yàn)室云計(jì)算組技...
摘要:年我們開(kāi)始專(zhuān)注于開(kāi)源云計(jì)算技術(shù),當(dāng)時(shí)開(kāi)源的力量正在逐漸浮現(xiàn)。問(wèn)你現(xiàn)在在實(shí)驗(yàn)室的工作是什么我主要負(fù)責(zé)實(shí)驗(yàn)室云計(jì)算團(tuán)隊(duì)的技術(shù)工作,以及與技術(shù)相關(guān)的其他事宜,包括開(kāi)源以及一些商業(yè)上的技術(shù)合作。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203520 張磊,浙江大學(xué)計(jì)算機(jī)學(xué)院博士生,科研人員,VLIS實(shí)驗(yàn)室云計(jì)算組技...
閱讀 2582·2023-04-26 00:57
閱讀 946·2021-11-25 09:43
閱讀 2248·2021-11-11 16:55
閱讀 2292·2019-08-30 15:53
閱讀 3623·2019-08-30 15:52
閱讀 1496·2019-08-30 14:10
閱讀 3405·2019-08-30 13:22
閱讀 1238·2019-08-29 11:18