自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

張大胖的Docker之路

開(kāi)發(fā) 開(kāi)發(fā)工具
本文主要講了docker的一個(gè)應(yīng)用場(chǎng)景: 簡(jiǎn)化環(huán)境的配置,docker 還有很多其他優(yōu)點(diǎn),例如docker和微服務(wù)就是一對(duì)好基友, 感興趣的同學(xué)可以看一看。

[[189757]]

1.悲催的開(kāi)發(fā)環(huán)境配置

張大胖如愿跳到了這家新公司的研發(fā)部門(mén),他摩拳擦掌,準(zhǔn)備大顯身手。

按照入職的慣例, 配置一個(gè)本地的開(kāi)發(fā)環(huán)境必不可少。 興沖沖的大胖看到組長(zhǎng)發(fā)過(guò)來(lái)的配置文檔,不僅倒吸了一口涼氣 :竟然有幾十頁(yè)之多 !

細(xì)細(xì)一看, 足足有48個(gè)步驟, 我的天吶!

組內(nèi)的老人們對(duì)新人投來(lái)了憐憫的目光, 其中不乏夾雜著幸災(zāi)樂(lè)禍, 似乎想起了本人剛?cè)肼殨r(shí)配置環(huán)境那慘不忍睹的時(shí)光。

大胖做了一次深呼吸,定了定神,正式開(kāi)始苦難的歷程。

從SVN上下載代碼, 解決編譯錯(cuò)誤, 咦,怎么缺少這么多的jar 文件?

好心老梁趕緊說(shuō): 我把jar文件發(fā)給你, 那個(gè)配置文檔太老了, 有 兩年都沒(méi)人更新了。

大胖心里一聲嘆息,但是他很細(xì)心,一邊配置環(huán)境,還一邊修改文檔。

他立志要搞一個(gè)最新版的出來(lái): 從我開(kāi)始, 后面的新人再也不用受折磨了。

可是談何容易, 缺失的jar 文件還好辦, 設(shè)置好Build Path以后把他們都commit到SVN上, 下次再有人下載,編譯的依賴(lài)就自動(dòng)解決了。

其他的就有點(diǎn)麻煩了,安裝nginx , tomcat ,mysql, redis .... 哪個(gè)都不是省油的燈, 安裝路徑的選擇、配置文件的修改,端口的設(shè)定, 最后還得把它們連起來(lái)。

經(jīng)過(guò)九九八十一難, 終于到了文檔的最后一步: 運(yùn)行。

不過(guò)所料, 控制臺(tái)一大堆錯(cuò)誤信息觸目驚心, 似乎在嘲笑每個(gè)新人的無(wú)能。

大胖心中一萬(wàn)只神獸奔騰而過(guò), 他感到了強(qiáng)烈的無(wú)助感。

老梁坐著那高檔的程序員專(zhuān)用椅滑了過(guò)來(lái): “怎么樣? 滋味不好受吧, 要不要我?guī)湍阋幌?”

張大胖還能說(shuō)什么, 老將出馬,一個(gè)頂倆。

可是這一次老司機(jī)也翻車(chē)了, 老梁折騰了很久, 滿(mǎn)頭大漢 , 總是有一個(gè)運(yùn)行時(shí)錯(cuò)誤解決不了。

臨近中午, 老梁說(shuō): 算了, 先去填飽肚子吧。

大胖下午繼續(xù)抖擻精神,把上午安裝的系統(tǒng)刪掉,重新再來(lái)一遍, 小樣, 不信我搞不定你。

3個(gè)小時(shí)過(guò)去了, 到了運(yùn)行的時(shí)候,還是同樣的錯(cuò)誤。

第二天再來(lái)一遍, 還是同樣錯(cuò)誤! 難道是人品問(wèn)題? 本來(lái)想大顯身手,展示自己深厚的編程功底, 沒(méi)想到在這個(gè)小陰溝里一直出不來(lái)了。

第三天,大胖干脆把機(jī)器格式化了, 看成敗,人生豪邁, 只不過(guò)是從頭再來(lái)。

這一回老梁也在旁邊盯著, 結(jié)對(duì)配置, 每一條配置命令都被仔細(xì)檢查了100遍, 到了中午時(shí)分, 大胖熱淚盈眶的看到 : 系統(tǒng)終于可以跑起來(lái)了!

2.配置一次,到處運(yùn)行

所有的坑都找到了, 所有的坑都被填上了。

張大胖也陷入了沉思: 這個(gè)過(guò)程是在是太痛苦了, 怎么才能改進(jìn)一下?

這么多步驟,這么多配置, 要是事先都弄好了, 直接拿過(guò)來(lái)用該多好!

大胖靈機(jī)一動(dòng) :把這些配置好的Tomcat, Mysql, Redis...... 之流搞到一個(gè)虛擬機(jī)中不行嗎? 新人來(lái)了, 直接下載一個(gè)配置好的虛擬機(jī), 開(kāi)箱即用, 再也不用理會(huì)這么多啰里啰嗦的細(xì)節(jié)了。

張大胖是個(gè)實(shí)干家,馬上卷起袖子實(shí)驗(yàn), 可是結(jié)果卻不盡如人意。 一是虛擬機(jī)太大,二是慢的要死, 這都喝了3杯咖啡了還沒(méi)啟動(dòng)完。

一次偶然的機(jī)會(huì), 張大胖聽(tīng)到同事們?cè)诹腄ocker, 簡(jiǎn)單的看了下相關(guān)的資料,他馬上聯(lián)想到, 既然虛擬機(jī)這么笨重, 何不用輕量級(jí)的Docker來(lái)解決問(wèn)題呢?

和虛擬機(jī)一樣, 把Tomcat, Mysql , Redis這些軟件先配置好,形成一個(gè)項(xiàng)目特有的docker的鏡像, 任何人只要得到這個(gè)鏡像就可以用docker 引擎運(yùn)行起來(lái),形成一個(gè)容器,對(duì)外提供服務(wù)。

張大胖迅速?lài)L試了一下,果然是輕量級(jí), 運(yùn)行起來(lái)像閃電一般,起身倒茶的功夫就啟動(dòng)完成了。

老梁很贊賞大胖這種實(shí)干的精神,把外界流行的技術(shù)引入項(xiàng)目中來(lái), 既學(xué)了新技術(shù), 又提高了生產(chǎn)效率, 一舉兩得,雙贏。

老梁自告奮勇做了第一個(gè)測(cè)試用戶(hù),也是異常的順利,真是Build Once, Run Anyware啊, 于是docker 慢慢的在項(xiàng)目組中流行開(kāi)來(lái)。

3.穩(wěn)定壓倒一切

在項(xiàng)目的周例會(huì)上,張大胖又提出了一個(gè)新想法 : “既然我們開(kāi)發(fā)都開(kāi)始用docker了, 能不能把測(cè)試環(huán)境甚至生產(chǎn)環(huán)境也都改變成docker ? 這樣以來(lái)部署應(yīng)用程序就很方便了, 直接把鏡像運(yùn)行起來(lái)就可以了。”

開(kāi)發(fā)組的人紛紛贊同,想想將來(lái)只需要把一個(gè)鏡像放到生產(chǎn)環(huán)境就可以部署了,多么美好的前景啊。

但是負(fù)責(zé)運(yùn)維的老王表示反對(duì): “這沒(méi)必要吧? 三年前我們已經(jīng)把生產(chǎn)環(huán)境給搭好了, 一直以來(lái)都沒(méi)什么變化, 你說(shuō)的那些本地的配置問(wèn)題,在生產(chǎn)環(huán)境上根本就不存在, 為什么要用docker 這個(gè)新技術(shù)? 搞壞了生產(chǎn)環(huán)境誰(shuí)負(fù)責(zé)?”

看來(lái)老王是很抵觸啊, 張大胖想,不過(guò)也難怪,生產(chǎn)環(huán)境,穩(wěn)定壓倒一切。

想想也是,生產(chǎn)環(huán)境都配置好了,現(xiàn)在升級(jí)應(yīng)用無(wú)非就是把web代碼,數(shù)據(jù)庫(kù)的sql 交由老王去執(zhí)行,大部分情況下還是自動(dòng)化的, 改動(dòng)配置的機(jī)會(huì)寥寥無(wú)幾,必要性確實(shí)不太大。

不過(guò)老王也是很開(kāi)明的, 他接著說(shuō): “你們不是在搞一個(gè)新的項(xiàng)目嗎, 可以拿它來(lái)嘗試一下啊, 開(kāi)發(fā),測(cè)試,生產(chǎn)全部都用docker, 如果確實(shí)是可以平滑的過(guò)渡, 那以后我們就推而廣之。 ”

老梁說(shuō):“ 沒(méi)錯(cuò), 新技術(shù)嘗試,慢慢來(lái)吧。"

雖然沒(méi)有爭(zhēng)取到生產(chǎn)環(huán)境也使用docker, 但張大胖對(duì)docker是越來(lái)越喜歡了, 他還額外發(fā)現(xiàn)了docker 的另外一個(gè)好處,那就是可以輕松地嘗試新的技術(shù)。

原來(lái)想折騰一個(gè)新玩意, 在遇到依賴(lài)的情況下,特別麻煩,一個(gè)包接一個(gè)包的下載, 如果遇到被墻,那更是痛不欲生。 現(xiàn)在只需要下載一個(gè)包含新技術(shù)/新工具的鏡像,運(yùn)行起來(lái)即可, 實(shí)在是太體貼了!

不僅如此,有一次客戶(hù)要求演示正在開(kāi)發(fā)中的新項(xiàng)目, 往日按照項(xiàng)目經(jīng)理的要求,搞一個(gè)可用的演示系統(tǒng)那可是費(fèi)了勁了,現(xiàn)在只需要把鏡像copy給項(xiàng)目經(jīng)理,直接就可以用了, 真是方便。

Build once , run anyware, 張大胖算是體會(huì)到了。

后記:本文主要講了docker的一個(gè)應(yīng)用場(chǎng)景: 簡(jiǎn)化環(huán)境的配置,docker 還有很多其他優(yōu)點(diǎn),例如docker和微服務(wù)就是一對(duì)好基友, 感興趣的同學(xué)可以看一看。

此外,當(dāng)你試圖引入一個(gè)新技術(shù)到項(xiàng)目的時(shí)候, 一定要看看新技術(shù)能解決什么問(wèn)題, 能給項(xiàng)目組帶來(lái)什么價(jià)值, 這樣更容易成功。

【本文為51CTO專(zhuān)欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)作者微信公眾號(hào)coderising獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2017-02-23 15:59:53

測(cè)試MockSetup

2017-09-01 10:48:33

分離CQRS性能

2020-04-21 09:20:43

JavaGo語(yǔ)言

2019-11-28 10:55:12

項(xiàng)目開(kāi)發(fā)公司

2022-12-26 09:00:07

2017-12-07 16:27:30

Zookeeper架構(gòu)設(shè)計(jì)

2018-08-22 14:25:42

搜索LuceneQuery

2022-05-31 09:52:14

開(kāi)源軟件

2021-12-27 12:01:06

數(shù)據(jù)云端運(yùn)維

2019-10-10 10:48:40

GoogleCopyPaste

2020-07-20 09:04:05

Java語(yǔ)言Vue

2013-08-01 09:33:52

編程語(yǔ)言胖手編程編程姿勢(shì)

2013-08-01 09:08:21

編程語(yǔ)言

2019-08-28 10:41:35

RustC語(yǔ)言編程

2018-07-17 15:15:33

任務(wù)調(diào)度系統(tǒng)

2019-04-10 16:17:02

程序員結(jié)構(gòu)源代碼

2018-08-01 13:59:44

區(qū)塊鏈協(xié)議應(yīng)用層

2012-06-26 10:42:31

云案例

2017-02-05 18:36:36

大數(shù)據(jù)Docker容器

2019-01-09 16:28:50

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)