摘要:開場白作為一個(gè)技術(shù)團(tuán)隊(duì)的,你是如何保證成員的開發(fā)環(huán)境達(dá)到公司的標(biāo)準(zhǔn),或者是你定制的最低要求的如果你的回答是差不多就行了,有問題再說,那么,你已經(jīng)在給自己挖坑了。好的,成員們開始構(gòu)建你定制的開發(fā)環(huán)境了。
開場白
作為一個(gè)技術(shù)團(tuán)隊(duì)的Leader,你是如何保證成員的開發(fā)環(huán)境達(dá)到公司的標(biāo)準(zhǔn),或者是你定制的最低要求的?
如果你的回答是:差不多就行了,有問題再說,那么,你已經(jīng)在給自己挖坑了。
同事A的開發(fā)環(huán)境中用的是PHP 7.1,所以他在代碼里寫了這么一個(gè)函數(shù):
function getName(?int $id): string { return "name"; }
好的,?int 的意思是你的參數(shù)必須是數(shù)字,但是可以填一個(gè)數(shù)字以外的特殊類型,那就是null。
同事B用的是PHP 7.0,那么抱歉,他得這么改:
function getName(int $id = null): string { return "name"; }
?int需要被改成int,因?yàn)槟鞘?.1的Nullable語法
同事C用的是 PHP 5.6,好的,繼續(xù)改吧:
function getName($id = null) { return "name"; }
所有的類型定義都得移除,沮喪嗎?
好的,你作為Leader?怎么選擇用哪個(gè)同事的代碼作為最終輸出?可想而知,選擇哪個(gè)都不合適。
同事C 在抱怨,要那么高的版本真的好嗎?我沒用過新特性,也不感興趣。
同事A 在抱怨了,新語法多簡潔啊,一個(gè) ?int 就搞定了。
同事A/B 在抱怨,為什么不用強(qiáng)類型,寫代碼太沒樂趣了。
問題出在Leader,給了成員太多的選擇。會(huì)有什么后果?
優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|
無 | 部分成員的利益受損 |
內(nèi)部意見不統(tǒng)一,產(chǎn)生隔閡 | |
可能出現(xiàn)被動(dòng)學(xué)習(xí)新知識(shí),生產(chǎn)力下降 | |
維護(hù)多個(gè)不同時(shí)期的項(xiàng)目時(shí),本地環(huán)境的版本切換十分不方便 | |
你的領(lǐng)導(dǎo)能力受到質(zhì)疑 |
在誘惑面前,人們往往會(huì)選擇最有利于自己的方式。不要試圖去挑戰(zhàn)人性,作為Leader的你,必須比任何一個(gè)成員都先做出選擇。正題 Docker
我不想講docker是什么,因?yàn)槠渌说牟┛屠镆呀?jīng)寫爛了。
你需要知道的是,你可以把開發(fā)環(huán)境扔進(jìn)docker,然后讓每個(gè)成員忘記自己電腦里的開發(fā)環(huán)境。至于用了什么版本的php、mysql、linux、nginx、nodeJs,已經(jīng)固定在docker里了。
你再也不用擔(dān)心你的成員會(huì)用其他版本的環(huán)境去寫代碼了,因?yàn)槟阋呀?jīng)制定了你的規(guī)矩。
優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|
成員沒得選,只能用同一個(gè)版本的環(huán)境 | Leader需要寫Docker配置 |
成員只需要知道docker怎么啟動(dòng),零學(xué)習(xí)成本 | |
技術(shù)方面的交流障礙減少 | |
代碼符合項(xiàng)目的基本需求,生產(chǎn)力提升 | |
即使再多項(xiàng)目也沒關(guān)系,因?yàn)槊總€(gè)項(xiàng)目都是docker啟動(dòng),不需要考慮版本 | |
Leader可以花更多精力在其它事情了 |
也許你已經(jīng)寫完了所有的Dockerfile配置,并把這些文件放進(jìn)了項(xiàng)目的根目錄dockers/,同時(shí)為你的成員寫好了一個(gè)構(gòu)建腳本build.sh,接著加入版本控制(git,svn),最后推到git服務(wù)器等待成員拉取最新的開發(fā)環(huán)境。好的,成員們開始構(gòu)建你定制的開發(fā)環(huán)境了。
# 構(gòu)建鏡像 sh build.sh # 查看構(gòu)建的鏡像 docker images # 根據(jù)鏡像生成容器,僅供參考。本文不講述docker具體用法 docker run -it -d php:7.1 /bin/bash docker run -it -d nginx:1.14.0 /bin/bash docker run -it -d mysql:5.7 /bin/bash
犀利的你可能把生成容器的操作寫成一個(gè)腳本quick-start.sh,而且用的風(fēng)聲水起。筆者拍拍你的肩膀,同學(xué),為什么不用docker-dompose呢?
Docker Compose可以這么說吧,這個(gè)東西就像是同時(shí)啟動(dòng)了多個(gè)你想要啟動(dòng)的鏡像,而且你還可以同時(shí)結(jié)束生成的容器。
# 同時(shí)啟動(dòng) docker-compose up # 同時(shí)結(jié)束 docker-compose down
是的,很任性,你只需要配置一下你需要啟動(dòng)哪些鏡像,然后把配置放到根目錄docker-dompose.yml中即可。
當(dāng)然了,還有更多特性,比如 哪些容器之間需要互相關(guān)聯(lián),被關(guān)聯(lián)的容器要用什么別名,需不需要等待關(guān)聯(lián)容器啟動(dòng)完成之后再啟動(dòng)自己,等等。。。
如果您的項(xiàng)目比較多,那么推薦您利用git的子模塊(點(diǎn)擊訪問)去維護(hù)你的docker配置。這樣您改配置只要改一個(gè)地方,所有項(xiàng)目里面都會(huì)同步過去的,極大的提高了您的效率和維護(hù)成本。
# 假設(shè)已經(jīng)建好docker的git倉庫 git@git_repository_a # 那么在您的開發(fā)項(xiàng)目中,初始化只需這樣做: git submodule add git@git_repository_a # 您會(huì)發(fā)現(xiàn)項(xiàng)目根目錄多了一個(gè)文件 .gitmodules 以及多了一個(gè)docker倉庫的文件夾結(jié)語
可能不算是一篇技術(shù)文章,只是拋磚引玉,引導(dǎo)新的Leader怎么帶領(lǐng)團(tuán)隊(duì)走向正規(guī)化的道路。若是真要寫那么細(xì),可能10篇都不夠?qū)懥恕S惺裁醇夹g(shù)方面的問題可以在下方留言。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/27339.html
摘要:容器云架構(gòu)方案。容器云架構(gòu)方案基于容器技術(shù),運(yùn)維技術(shù)團(tuán)隊(duì)開發(fā)了五阿哥網(wǎng)站的容器云平臺(tái)。多云對(duì)接私有云和公有云進(jìn)行統(tǒng)一托管,包含網(wǎng)絡(luò)區(qū)域配置,實(shí)例開通及的環(huán)境初始化配置等。技術(shù)選型及實(shí)踐鏡像標(biāo)準(zhǔn)眾所周知,的鏡像是分層的。 前言 五阿哥鋼鐵電商平臺(tái)(www.wuage.com)是由鋼鐵行業(yè)第一的中國五礦與互聯(lián)網(wǎng)第一的阿里巴巴聯(lián)手打造,并充分運(yùn)用雙方股東優(yōu)勢(shì)資源,即:阿里巴巴在大數(shù)據(jù)、電商運(yùn)...
摘要:問能否談一下迅雷云使用的過程其實(shí)最初的時(shí)候,迅雷團(tuán)隊(duì)對(duì)是懷有謹(jǐn)慎的態(tài)度的。三調(diào)度算法是迅雷云定制優(yōu)化的。迅雷在使用這方面一直沒有把數(shù)據(jù)層面交給迅雷云之外的系統(tǒng)。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/201256 曾金龍就職于迅雷網(wǎng)絡(luò),是國內(nèi)覆蓋面最廣的迅雷P2P引擎核心研發(fā)成員。他畢業(yè)于中山大...
摘要:摘要在北京云棲大會(huì)上,阿里巴巴高級(jí)技術(shù)專家陳鑫花名神秀,給大家?guī)砹藘|背后的企業(yè)級(jí)高效持續(xù)交付,引起強(qiáng)烈共鳴。 摘要: 在2017北京云棲大會(huì)上,阿里巴巴高級(jí)技術(shù)專家陳鑫(花名神秀),給大家?guī)砹恕?682億背后的企業(yè)級(jí)高效持續(xù)交付》,引起強(qiáng)烈共鳴。神秀從技術(shù)負(fù)責(zé)人關(guān)心的研發(fā)流程混亂、質(zhì)量無法保障、環(huán)境管理低效、資源浪費(fèi)等方面,結(jié)合阿里巴巴的DevOps實(shí)踐,深度解析了企業(yè)級(jí)持續(xù)交付如...
摘要:是宜信公司大數(shù)據(jù)創(chuàng)新中心開發(fā)的開源平臺(tái)。為宜信大數(shù)據(jù)創(chuàng)新中心各個(gè)團(tuán)隊(duì)提供了統(tǒng)一的測試和生產(chǎn)環(huán)境,簡化了服務(wù)的部署與上線流程,也降低了運(yùn)維人員對(duì)系統(tǒng)管理的復(fù)雜度。基于容器技術(shù),面向多樣化的技術(shù)棧,并且天然隔離系統(tǒng)和應(yīng)用的依賴。 LAIN是宜信公司大數(shù)據(jù)創(chuàng)新中心開發(fā)的開源PaaS平臺(tái)。在金融的場景下,LAIN 是為解放各個(gè)團(tuán)隊(duì)和業(yè)務(wù)線的生產(chǎn)力而設(shè)計(jì)的一個(gè)云平臺(tái)。LAIN 為宜信大數(shù)據(jù)創(chuàng)新中...
摘要:分享實(shí)錄云計(jì)算技術(shù)源于互聯(lián)網(wǎng)公司,現(xiàn)在云計(jì)算已經(jīng)是下一代企業(yè)級(jí)的發(fā)展趨勢(shì)。如何做云計(jì)算一直是云計(jì)算技術(shù)的領(lǐng)導(dǎo)者?;ヂ?lián)網(wǎng)公司的快速發(fā)展,已經(jīng)印證了云計(jì)算技術(shù)和云原生應(yīng)用相比傳統(tǒng)構(gòu)架的巨大優(yōu)勢(shì)。 今天小數(shù)又給大家?guī)硪黄韶洕M滿的分享——來自KVM社區(qū)線上群分享的實(shí)錄,分享嘉賓是數(shù)人云CEO王璞,題目是《云計(jì)算與 Cloud Native》。這是數(shù)人云在KVM社區(qū)群分享的第一彈,之后還有數(shù)...
閱讀 3581·2021-10-11 10:59
閱讀 1598·2021-09-29 09:35
閱讀 2266·2021-09-26 09:46
閱讀 3779·2021-09-10 10:50
閱讀 958·2019-08-29 12:17
閱讀 827·2019-08-26 13:40
閱讀 2441·2019-08-26 11:44
閱讀 2110·2019-08-26 11:22