持續(xù)集成

1、持續(xù)集成

慨念: 持續(xù)集成的目的,就是讓產(chǎn)品可以快速迭代,同時還能保持高質(zhì)量。它的核心措施是,代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。

優(yōu)點

(1)快速發(fā)現(xiàn)錯誤。每完成一點更新,就集成到主干,可以快速發(fā)現(xiàn)錯誤,定位錯誤也比較容易。

(2)防止分支大幅偏離主干。如果不是經(jīng)常集成,主干又在不斷更新,會導(dǎo)致以后集成的難度變大,甚至難以集

2、持續(xù)交付

持續(xù)交付(Continuous delivery)指的是,頻繁地將軟件的新版本,交付給質(zhì)量團(tuán)隊或者用戶,以供評審。如果評審?fù)ㄟ^,代碼就進(jìn)入生產(chǎn)階段。持續(xù)交付可以看作持續(xù)集成的下一步。它強調(diào)的是,不管怎么更新,軟件是隨時隨地可以交付的。


3、持續(xù)部署

持續(xù)部署(continuous deployment)是持續(xù)交付的下一步,指的是代碼通過評審以后,自動部署到生產(chǎn)環(huán)境。持續(xù)部署的目標(biāo)是,代碼在任何時刻都是可部署的,可以進(jìn)入生產(chǎn)階段。持續(xù)部署的前提是能自動化完成測試、構(gòu)建、部署等步驟。它與持續(xù)交付的區(qū)別,可以參考下圖。


4、流程


4.1 提交

流程的第一步,是開發(fā)者向代碼倉庫提交代碼。所有后面的步驟都始于本地代碼的一次提交(commit)。

4.2 第一輪測試

單元測試:針對函數(shù)或模塊的測試

集成測試:針對整體產(chǎn)品的某個功能的測試,又稱功能測試

端對端測試:從用戶界面直達(dá)數(shù)據(jù)庫的全鏈路測試


4.3 構(gòu)建

常用的構(gòu)建工具如下。

Jenkins? https://jenkins.io/index.html? pdf文檔:? ? http://files.cnblogs.com/files/zz0412/jenkins%E5%85%A5%E9%97%A8%E6%89%8B%E5%86%8C.pdf

Travis? https://travis-ci.com/

Codeship? https://codeship.com/

Strider? http://stridercd.com/

詳細(xì)信息: http://cloud.51cto.com/art/201508/487605.htm? 了解六款不容錯過的開源持續(xù)集成工具

介紹兩種:

-----------------------------------------------------------------------

enkins

項目頁面? https://jenkins.io/index.html

源代碼? https://github.com/jenkinsci

許可協(xié)議:MIT? http://opensource.org/licenses/MIT

Jenkins的誕生介于Hudson項目發(fā)布與Sun Microsystems公司被收購之間。Jenkins以Java語言開發(fā)而成,且能夠在WAR文件下載完成之后使用java –jar jenkins.war命令進(jìn)行安裝。大家也可以將其部署在servlet容器當(dāng)中。Jenkins的主要任務(wù)分為以下兩種:持續(xù)構(gòu)建/測試軟件項目與以外部方式監(jiān)控運行任務(wù)。對于前者,Jenkins支持一系列SCM工具——包括Git、Mercurial、Subversion以前Clearcase等等。大家可以以該項目為基礎(chǔ)構(gòu)建Apache Ant以及Apache Maven外加其它shell腳本,或者利用Windows批處理文件完成各類預(yù)/后構(gòu)建操作。需要注意的是,幾乎所有配置都能夠通過基于Web的GUI完成。

Jenkins同時也可以作為來自第三方供應(yīng)商的服務(wù)方案,但如果大家擁有一套規(guī)模可觀的待測試軟件清單,那么它可能更適合運行在我們自己的服務(wù)器之上——這樣不僅能夠保證各位對基礎(chǔ)設(shè)施問題擁有全面控制能力,同時也有助于企業(yè)客戶保障軟件安全水平。

使用手冊: http://blog.csdn.net/x_men_01/article/details/51557731

http://blog.csdn.net/wangmuming/article/details/22924815


-----------------------------------------------------------------------

Strider

項目頁面? http://stridercd.com/

源代碼? https://github.com/Strider-CD/strider

許可協(xié)議: BSD License? https://en.wikipedia.org/wiki/BSD_licenses

Strider由Node.JS與JavaScript編寫而成,同時利用MongoDB作為后備存儲機制。我們必須首先安裝MongoDB與Node.JS,而后才安裝Strider。大家可以使用npm install strider命令進(jìn)行安裝。不過,Strider最大的特色在于無與倫比的可定制能力,我們可以親自動手編寫插件以強化其功能——這當(dāng)然不是件壞事,但如果各位想要的是一款無需編程就能快速起效的方案,那么最好還是優(yōu)先考慮其它項目。

目前總結(jié):Jenkins和Strider是開源軟件,Travis和Codeship對于開源項目可以免費使用。它們都會將構(gòu)建和測試,在一次運行中執(zhí)行完成。

4.4 部署

通過了第二輪測試,當(dāng)前代碼就是一個可以直接部署的版本(artifact)。將這個版本的所有文件打包(tar filename.tar *)存檔,發(fā)到生產(chǎn)服務(wù)器。

生產(chǎn)服務(wù)器將打包文件,解包成本地的一個目錄,再將運行路徑的符號鏈接(symlink)指向這個目錄,然后重新啟動應(yīng)用。這方面的部署工具有Ansible(http://www.ansible.com/),Chef(https://www.chef.io/chef/),Puppet(https://puppetlabs.com/)等。


4.5 回滾

一旦當(dāng)前版本發(fā)生問題,就要回滾到上一個版本的構(gòu)建結(jié)果。最簡單的做法就是修改一下符號鏈接,指向上一個版本的目錄。

本來大神阮一峰參考:?

國外大神哥:

https://blog.risingstack.com/continuous-deployment-of-node-js-applications/

https://codeship.com/continuous-integration-essentials

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,237評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,957評論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,248評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,356評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,081評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,485評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,534評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,720評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,263評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,025評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,204評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,787評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,461評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,874評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,105評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,945評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,205評論 2 375

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