成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是持續集成?該怎么做?

網絡
互聯網軟件的開發和發布,已經形成了一套標準流程,最重要的組成部分就是持續集成(Continuous integration,簡稱 CI)。本文簡要介紹持續集成的概念和做法。

互聯網軟件的開發和發布,已經形成了一套標準流程,最重要的組成部分就是持續集成(Continuous integration,簡稱 CI)。

本文簡要介紹持續集成的概念和做法。

 

[[216353]]

一、概念

持續集成指的是,頻繁地(一天多次)將代碼集成到主干。

它的好處主要有兩個。

  • 快速發現錯誤。每完成一點更新,就集成到主干,可以快速發現錯誤,定位錯誤也比較容易。
  • 防止分支大幅偏離主干。如果不是經常集成,主干又在不斷更新,會導致以后集成的難度變大,甚至難以集成。

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

Martin Fowler 說過,”持續集成并不能消除 Bug,而是讓它們非常容易發現和改正。”

與持續集成相關的,還有兩個概念,分別是持續交付和持續部署。

二、持續交付

持續交付(Continuous delivery)指的是,頻繁地將軟件的新版本,交付給質量團隊或者用戶,以供評審。如果評審通過,代碼就進入生產階段。

持續交付可以看作持續集成的下一步。它強調的是,不管怎么更新,軟件是隨時隨地可以交付的。

三、持續部署

持續部署(continuous deployment)是持續交付的下一步,指的是代碼通過評審以后,自動部署到生產環境。

持續部署的目標是,代碼在任何時刻都是可部署的,可以進入生產階段。

持續部署的前提是能自動化完成測試、構建、部署等步驟。它與持續交付的區別,可以參考下圖。

 

圖1:持續集成是什么?
(圖片來源)

四、流程

根據持續集成的設計,代碼從提交到生產,整個過程有以下幾步。

4. 1 提交

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

4. 2 測試(***輪)

代碼倉庫對 commit 操作配置了鉤子(hook),只要提交代碼或者合并進主干,就會跑自動化測試。

測試有好幾種。

  • 單元測試:針對函數或模塊的測試
  • 集成測試:針對整體產品的某個功能的測試,又稱功能測試
  • 端對端測試:從用戶界面直達數據庫的全鏈路測試

***輪至少要跑單元測試。

4. 3 構建

通過***輪測試,代碼就可以合并進主干,就算可以交付了。

交付后,就先進行構建(build),再進入第二輪測試。所謂構建,指的是將源碼轉換為可以運行的實際代碼,比如安裝依賴,配置各種資源(樣式表、JS 腳本、圖片)等等。

常用的構建工具如下。

  • Jenkins
  • Travis
  • Codeship
  • Strider

Jenkins 和 Strider 是開源軟件,Travis 和 Codeship 對于開源項目可以免費使用。它們都會將構建和測試,在一次運行中執行完成。

4. 4 測試(第二輪)

構建完成,就要進行第二輪測試。如果***輪已經涵蓋了所有測試內容,第二輪可以省略,當然,這時構建步驟也要移到***輪測試前面。

第二輪是全面測試,單元測試和集成測試都會跑,有條件的話,也要做端對端測試。所有測試以自動化為主,少數無法自動化的測試用例,就要人工跑。

需要強調的是,新版本的每一個更新點都必須測試到。如果測試的覆蓋率不高,進入后面的部署階段后,很可能會出現嚴重的問題。

4. 5 部署

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

生產服務器將打包文件,解包成本地的一個目錄,再將運行路徑的符號鏈接(symlink)指向這個目錄,然后重新啟動應用。這方面的部署工具有 Ansible,Chef,Puppet等。

4. 6 回滾

一旦當前版本發生問題,就要回滾到上一個版本的構建結果。最簡單的做法就是修改一下符號鏈接,指向上一個版本的目錄。

責任編輯:未麗燕 來源: 程序師
相關推薦

2021-03-31 09:00:00

管道集成工具

2015-07-22 14:59:30

OpenStac持續集成持續交付

2015-09-24 09:43:08

阮一峰持續集成

2023-07-29 22:27:44

2017-06-16 16:22:41

機房墻面

2023-03-19 11:47:57

Taro小程序持續集

2016-10-27 14:41:45

SaaS企業SaaS

2017-02-27 18:35:23

集成交付部署

2016-08-05 17:19:37

持續集成持續交付系統運維

2017-10-25 09:50:51

Linux

2017-10-19 09:47:55

容器化微服務集成

2012-05-24 14:58:55

開源代碼

2009-06-14 18:05:58

ibmdwWebSphere

2015-07-27 11:32:24

Docker持續集成Docker部署

2011-07-01 15:03:55

網站內部優化

2022-12-02 16:28:47

2017-07-20 13:11:46

Code ReviewPR評審

2011-03-11 09:53:46

FacebookMySQL

2019-04-18 10:35:30

持續集成工具Buddy

2024-01-31 13:49:00

敏捷測試SIT開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91国产在线视频在线 | 亚洲精品九九 | 91电影| 色综合久久久 | 欧美高清视频一区 | 91久久久久久久久久久久久 | 高清黄色| 在线视频一区二区 | 日韩精品一区二区三区中文字幕 | www.三级| 国产精品久久久久久久久久三级 | av网站在线播放 | 国产日韩一区二区三区 | 日韩一级 | 国产成人精品一区二区三区网站观看 | 一级免费a| 欧美一级免费看 | 国产精品美女久久久久久免费 | 很很干很很日 | 成人精品一区二区三区四区 | 国产二区三区 | 日韩久久久久久久 | 日韩视频高清 | 国产精品久久久久免费 | 久久精品国产99国产精品 | aaa天堂| 在线观看视频亚洲 | 精品一区二区三区在线观看 | av官网在线 | 99pao成人国产永久免费视频 | 欧美在线视频一区二区 | 国产精品高潮呻吟久久av黑人 | 翔田千里一区二区 | 欧美精品区 | 天天干视频 | 国产一伦一伦一伦 | 精彩视频一区二区三区 | 不卡一区二区在线观看 | 亚洲综合国产精品 | 蜜臀av日日欢夜夜爽一区 | 欧美小视频在线观看 |