轉(zhuǎn)載自阿里 ?工具

“工欲善其事、必先利其器”,借助適合的流程和相關(guān)工具集,才能提高微服務(wù)架構(gòu)下的應(yīng)用開發(fā)效率熏迹。本項(xiàng)目利用DevOPs流程并選用一套相關(guān)工具集實(shí)現(xiàn)應(yīng)用開發(fā)管理,提高開發(fā)、測試、部署的效率受啥。

代碼庫:本項(xiàng)目使用分布式代碼庫Gitlab,它的功能不限于代碼倉庫,還包括reviews(代碼審查), issue tracking(問題跟蹤)、wiki等功能,是代碼管理和異地團(tuán)隊(duì)溝通、協(xié)作工具的首選滚局。

Docker鏡像倉庫居暖、Docker:本項(xiàng)目用容器貫穿整個(gè)軟件開發(fā)流程,以容器作為應(yīng)用發(fā)布的載體,應(yīng)用的開發(fā)環(huán)境和測試發(fā)版環(huán)境都運(yùn)行在Docker容器中。對(duì)于復(fù)雜的開發(fā)和運(yùn)維環(huán)境管理Docker具有先天的優(yōu)勢(shì),目前國內(nèi)外的互聯(lián)網(wǎng)公司有大多數(shù)都已經(jīng)將Docker應(yīng)用到了他們的開發(fā)或者生產(chǎn)環(huán)境中了藤肢。

K8s:本項(xiàng)目采用Kubernates作為容器調(diào)度管理的基礎(chǔ)環(huán)境,開發(fā)環(huán)境太闺、測試環(huán)境的Docker容器都由K8s負(fù)責(zé)調(diào)度管理。

Jenkins:快速的部署發(fā)布離不開老牌持續(xù)集成明星Jenkins,本項(xiàng)目通過Jenkins任務(wù)構(gòu)建代碼嘁圈、將應(yīng)用打包成Docker鏡像,最終發(fā)布到K8s環(huán)境中將容器運(yùn)行起來省骂。

Shell腳本:編寫Shell腳本將項(xiàng)目打分支、發(fā)布應(yīng)用等開發(fā)階段的配置管理工作自動(dòng)化,降低運(yùn)維門檻最住、提高配置管理和運(yùn)維的效率钞澳。

WIKI:Gitlib上的WIKI功能相對(duì)簡陋,因此項(xiàng)目組選擇dokuwiki作為異地團(tuán)隊(duì)協(xié)作和溝通的工具,團(tuán)隊(duì)成員可以將設(shè)計(jì)文檔、知識(shí)分享文檔温学、公告信息等信息可以更新到wiki上,便與協(xié)同開發(fā)略贮。

禪道:為了便于開發(fā)計(jì)劃、開發(fā)任務(wù)和bug關(guān)聯(lián)起來,本項(xiàng)目使用禪道進(jìn)行開發(fā)任務(wù)和bug管理仗岖。

人員分工及開發(fā)流程

微服務(wù)架構(gòu)應(yīng)用的開發(fā)逃延、部署的復(fù)雜度都是遠(yuǎn)大于單體式應(yīng)用的,靠運(yùn)維人員手工的配置管理顯然是難于應(yīng)付了。DevOps主張以自動(dòng)化任務(wù)處理方式實(shí)現(xiàn)軟件交付及基礎(chǔ)設(shè)施更新,可以說是微服務(wù)架構(gòu)應(yīng)用開發(fā)和運(yùn)維的必要條件,本項(xiàng)目采用DevOps的理念的開發(fā)流程進(jìn)行開發(fā)轧拄。實(shí)現(xiàn)部署和運(yùn)維的自動(dòng)化需要工具,同時(shí)DevOps強(qiáng)調(diào)軟件開發(fā)者與其他IT員工及管理層間的協(xié)作與溝通,因此明確的人員分工和開發(fā)流程是與工具同樣重要的因素揽祥。通俗的說,就是有了工具,大家要知道怎么使用工具,并且愿意使用工具才能真正達(dá)到提高研發(fā)效率的目的。

項(xiàng)目組的主要工作成員無非也是做開發(fā)檩电、測試和系統(tǒng)管理三類工作,這里只說明與傳統(tǒng)的企業(yè)應(yīng)用開發(fā)過程中三類人員所做的工作略有不同的工作內(nèi)容拄丰。

開發(fā)人員:

a) 開發(fā)者做開發(fā)設(shè)計(jì),需要將涉及到接口部分設(shè)計(jì)更新到wiki上,供調(diào)用者評(píng)審和調(diào)用。

b) 開發(fā)者除了編寫程序邏輯外,還需要注意編寫單元測試用例,因?yàn)榉植际綉?yīng)用聯(lián)調(diào)相對(duì)復(fù)雜,先做在編寫單服務(wù)時(shí)做好了測試再聯(lián)調(diào)能夠提高開發(fā)效率俐末。

c) 由于本項(xiàng)目是采用Docker容器作為發(fā)布載體的,開發(fā)者可能需要修改DockerFile模板里的部分參數(shù),便于部署階段能將編譯后的代碼打包到鏡像中料按。相對(duì)于傳統(tǒng)的開發(fā)方式,這是對(duì)開發(fā)者額外的要求。讓所有開發(fā)者懂Dockerfile似乎要求也有點(diǎn)高,其實(shí)每個(gè)子項(xiàng)目中的DockerFile及腳本一般是在搭建項(xiàng)目框架時(shí),主要系統(tǒng)配置管理員編寫的好的模板,若開發(fā)人員不懂相關(guān)技術(shù),也可以跟配置管理員溝通需求,由配置管理員修改相關(guān)文件卓箫。

測試人員:測試人員的工作沒有什么特別,只是需要注意除了每個(gè)Sprint階段的測試外,還需要配合開發(fā)人員持續(xù)集成的測試;

系統(tǒng)配置管理人員:一般DevOps的開發(fā)方式是依賴于云基礎(chǔ)平臺(tái)以及自動(dòng)化發(fā)布工具的,因此相對(duì)于傳統(tǒng)開發(fā)方式,對(duì)系統(tǒng)配置管理者的技術(shù)要求會(huì)比較低载矿。但是,我們的項(xiàng)目開發(fā)目的就是構(gòu)建一個(gè)能支撐DevOps流程的平臺(tái),其開發(fā)本身還不具備相應(yīng)的平臺(tái)基礎(chǔ)。因此,我們項(xiàng)目最初的系統(tǒng)配置管理工作是由架構(gòu)師來做的,主要需要做如下這些事:

a) 部署運(yùn)行項(xiàng)目組開發(fā)需要用到公共的服務(wù)組件烹卒、例如zookeeper注冊(cè)中心闷盔、Docker Registry鏡像倉庫、數(shù)據(jù)庫等;

b) 為子項(xiàng)目編寫在git上打分支的腳本,便于測試發(fā)版的時(shí)候打分支;

c) 編寫各類型應(yīng)用發(fā)布部署成鏡像的Dockerfile;

d) 制作或者在網(wǎng)上找到現(xiàn)成的開發(fā)所需環(huán)境的Docker鏡像,并且Push到項(xiàng)目開發(fā)使用的私有鏡像庫中;

e) 編寫Shell腳本實(shí)現(xiàn)將子項(xiàng)目打包成Docker鏡像,并且Push到鏡像倉庫中旅急。

f) 在Jenkins上配置自動(dòng)編譯或者部署任務(wù),實(shí)現(xiàn)持續(xù)集成和部署逢勾。

本文將對(duì)項(xiàng)目的開發(fā)、部署聯(lián)調(diào)以及測試發(fā)版流程和規(guī)范做簡要說明,并提供項(xiàng)目各個(gè)階段使用到的部分自動(dòng)化腳本工具示例藐吮。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溺拱,一起剝皮案震驚了整個(gè)濱河市逃贝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盟迟,老刑警劉巖秋泳,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異攒菠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)歉闰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門辖众,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人和敬,你說我怎么就攤上這事凹炸。” “怎么了昼弟?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵啤它,是天一觀的道長。 經(jīng)常有香客問我舱痘,道長变骡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任芭逝,我火速辦了婚禮塌碌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旬盯。我一直安慰自己台妆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布胖翰。 她就那樣靜靜地躺著接剩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萨咳。 梳的紋絲不亂的頭發(fā)上懊缺,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音某弦,去河邊找鬼桐汤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛靶壮,可吹牛的內(nèi)容都是我干的怔毛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼腾降,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼拣度!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤抗果,失蹤者是張志新(化名)和其女友劉穎筋帖,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冤馏,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡日麸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逮光。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片代箭。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涕刚,靈堂內(nèi)的尸體忽然破棺而出嗡综,到底是詐尸還是另有隱情,我是刑警寧澤杜漠,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布极景,位于F島的核電站,受9級(jí)特大地震影響驾茴,放射性物質(zhì)發(fā)生泄漏盼樟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一沟涨、第九天 我趴在偏房一處隱蔽的房頂上張望恤批。 院中可真熱鬧,春花似錦裹赴、人聲如沸喜庞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽延都。三九已至,卻和暖如春睛竣,著一層夾襖步出監(jiān)牢的瞬間晰房,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工射沟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留殊者,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓验夯,卻偏偏與公主長得像猖吴,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挥转,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容