09_CI/CD的概念和相關工具

內(nèi)容摘要:持續(xù)集成Continuous Integration(CI)和持續(xù)交付Continuous Delivery(CD)是提高團隊協(xié)同生產(chǎn)力的關鍵技術能岩。很多時候一個軟件發(fā)布后更新和維護是痛點,因為一個版本的迭代和升級往往不是平滑過渡的拢肆。但是在互聯(lián)網(wǎng)時代,跟不上產(chǎn)品迭代節(jié)奏往往就要走向失敗饥漫。在談完GIT和DevOps理念之后折砸,我們看看具體可以有那些工具可以幫助我們提高生產(chǎn)力。

1续誉、可持續(xù)的概念

在當今世界,特別是在科學研究方面初肉,新技術方法層出不窮酷鸦。但好的技術方法,如果不被人使用,不去做推廣臼隔,那就永遠都是小眾游戲嘹裂。習總書記曾經(jīng)說過:科學技術必須同社會發(fā)展相結(jié)合,學得再多摔握,束之高閣寄狼,只是一種獵奇,只是一種雅興氨淌,甚至當作奇技淫巧泊愧,那就不可能對現(xiàn)實社會產(chǎn)生作用

有人說:“科研高大上盛正,生產(chǎn)用不上”删咱。面對科研成果沒法轉(zhuǎn)化的痛點問題越來越被重視。國家近年來一直期望通過政策引導豪筝,打破從基礎研究痰滋、應用研究到產(chǎn)業(yè)化的“死亡之谷”,促進科研成果產(chǎn)業(yè)化续崖。

我個人認為:地球科學技術要想服務社會敲街,必須通過IT驅(qū)動來加速新方法和數(shù)據(jù)的流轉(zhuǎn),提升使用價值严望,讓用戶對科研成果更有獲得感多艇。

接下來我們就進入主題,談談當科研成果推到倉庫里面像吻,后續(xù)還能干些啥墩蔓。近年來,基于云設施的互聯(lián)網(wǎng)軟件的開發(fā)和發(fā)布萧豆,已經(jīng)形成了一套標準流程,最重要的組成部分就是持續(xù)集成昏名。

持續(xù)集成的目的涮雷,就是讓產(chǎn)品可以快速迭代,同時還能保持高質(zhì)量轻局。它的核心措施是洪鸭,代碼集成到GIT倉庫之前,必須通過自動化測試仑扑。只要有一個測試用例失敗览爵,就不能集成。

持續(xù)交付指的是镇饮,頻繁地將軟件的新版本蜓竹,交付給質(zhì)量團隊或者用戶,以供評審。如果評審通過俱济,代碼就進入生產(chǎn)階段嘶是。

持續(xù)交付可以看作持續(xù)集成的下一步。它強調(diào)的是蛛碌,不管怎么更新聂喇,軟件是隨時隨地可以交付的。下圖是代碼推送到Github之后蔚携,通過工具可以幫你做的一系列工作:

圖1 可持續(xù)集成與部署流程圖

圖中很多詞大家可能不認識希太,但是有些圖標應該熟悉吧。最左邊的小八爪魚就是Github的logo酝蜒,當push到github倉庫后誊辉,通過webhooks設置,可以讓你的項目通過既定測試和集成流程開展后續(xù)工作秕硝,沒問題后打包成docker容器芥映,再通過k8s(kubernetes)等容器編排工具分發(fā)到云上。

你不用擔心的是远豺,只要配置好奈偏,這后續(xù)一切都是自動的。解決了那些問題呢躯护?就是以前需要很多人力物力去測試惊来、集成等一系列費力不討好的工作,交給生產(chǎn)力工具去完成棺滞。如果你對圖1還不明白裁蚁,哪首先的就是要好好琢磨理解呦...

2、那些工具可以用

現(xiàn)在的CI/CD工具應該可以用眼花繚亂來形容继准,各大廠商說提供DevOps工具的廣告里面枉证,肯定涉及到到這方面的工作。知道CI/CD的概念和用好這些工具還是兩碼事移必,特別是具體到如何配置復雜的腳本室谚,根據(jù)不同語言和基礎設施來調(diào)試、運行崔泵,更是比較花費精力的秒赤。

但是大體上我覺得可以分為兩類,一種是需要你自己部署的憎瘸,一種是已經(jīng)在云上可以直接用的入篮。著名的Gitlab CI和Jenkins提供前者,部署到私有云中就可以直接用幌甘。而Travis和Azure Pipelines是可以直接在云上用的潮售,特別是Travis 和 Azure Pipeline 對于開源項目可以免費使用痊项。

個人覺得如果是科研還是直接用云上,它們都會構(gòu)建和測試饲做,免費給你提供虛擬機线婚、網(wǎng)絡帶寬和各種環(huán)境資源,還不用擔心穩(wěn)定性盆均,有啥不好呢塞弊?

3、 結(jié)合一個實例來看看

在我們團隊的GEOIST軟件包中也用到了上面兩個工具泪姨,請看下圖:

圖2 GEOIST項目中的CI技術應用

圖中最下面一排小標志游沿,就是項目中用到的一些技術,最左邊的是Travis肮砾,最右邊的是Azure Pipelines诀黍。綠色的提示信息代表當前項目的測試狀態(tài)(如果有問題會出現(xiàn)紅色提示)。要配置好這兩個工具仗处,需要在工程中使用yml文件進行配置眯勾,在geoist根目錄下你會發(fā)現(xiàn)有.travis.yml和azure-pipelines.yml兩個文件,這兩個文件里面你可以設置測試環(huán)境的一些要求和包依賴婆誓。

讓我們再看看吃环,如果點開AzurePipelines的圖標,直接會出現(xiàn)下面界面:


圖3 Azure Pipelines的CI界面

一般GIT的Push命令執(zhí)行后洋幻,根據(jù)項目要測試的內(nèi)容多少郁轻,幾分鐘就可以完成測試,根據(jù)yml中設置的內(nèi)容文留,每一階段的結(jié)果如圖4所示好唯。


圖4 Azure Pipelines的測試結(jié)果

我們這個項目中,僅針對python3.6環(huán)境進行了集成測試燥翅,通過后就直接發(fā)布到Azure的云上面去了骑篙,對于用戶來講下次打開瀏覽器的jupyter就可以開始使用最新版本啦!對于科研人員來講森书,算法寫好替蛉,git push后啥事也不用管了,是不是很方便呢拄氯?

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市它浅,隨后出現(xiàn)的幾起案子译柏,更是在濱河造成了極大的恐慌,老刑警劉巖姐霍,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鄙麦,死亡現(xiàn)場離奇詭異典唇,居然都是意外死亡,警方通過查閱死者的電腦和手機胯府,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門介衔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骂因,你說我怎么就攤上這事炎咖。” “怎么了寒波?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵乘盼,是天一觀的道長。 經(jīng)常有香客問我俄烁,道長绸栅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任页屠,我火速辦了婚禮粹胯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辰企。我一直安慰自己风纠,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布蟆豫。 她就那樣靜靜地躺著议忽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪十减。 梳的紋絲不亂的頭發(fā)上栈幸,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音帮辟,去河邊找鬼速址。 笑死,一個胖子當著我的面吹牛由驹,可吹牛的內(nèi)容都是我干的芍锚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼蔓榄,長吁一口氣:“原來是場噩夢啊……” “哼并炮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起甥郑,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤逃魄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后澜搅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伍俘,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡邪锌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了癌瘾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片觅丰。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妨退,靈堂內(nèi)的尸體忽然破棺而出妇萄,到底是詐尸還是另有隱情,我是刑警寧澤碧注,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布嚣伐,位于F島的核電站,受9級特大地震影響萍丐,放射性物質(zhì)發(fā)生泄漏轩端。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一逝变、第九天 我趴在偏房一處隱蔽的房頂上張望基茵。 院中可真熱鬧,春花似錦壳影、人聲如沸拱层。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽根灯。三九已至,卻和暖如春掺栅,著一層夾襖步出監(jiān)牢的瞬間烙肺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工氧卧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留桃笙,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓沙绝,卻偏偏與公主長得像搏明,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子闪檬,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349