【DevOps】持續集成

大家好,我是高勝寒,一個在教培行業不忘初心的人,本文是【循序漸進學運維】DevOps工具篇的第2篇文章

【循序漸進學運維】DevOps工具篇 主要針對的是DevOps常用的工具,比如jenkins,gitlab, docker等工具的結合使用。

什麼是集成

開發人員寫代碼,代碼寫完後直接給客戶嗎? 顯然不是,客戶需要的是軟件而不是一堆代碼,而一個軟件不是一個開發完成的,是一個團隊的開發完成的,這麼多人的代碼不可能自己組合一起, 所以當我們想把每個程序員寫好的代碼組合在一起,這個過程就叫做集成。

一個學員在做項目,他們的工作流程是,先開發一個月,一個月後,在召集團隊裏的精英來做集成,把最基本的流程跑通,通常需要花3-4天時間,如果改動量比較大,可能需要一兩週時間。

既然一個月之後再集成,那爲什麼不把時間弄短點,比如一週集成一次。每天集成一次。時間越短,代碼量越少,需要改動的也少,集成的難度會降低。
那如果在降低呢,比如2小時,半小時,有人嘗試着讓開發和集成同時進行,最終誕生了持續集成的想法。

持續集成的想法很好,但總不能有人提交了代碼,就有個負責人去集成把,這種工作中肯定是行不通的,所以就有人編寫了腳本,定期去源碼服務器拉取代碼,出現程序更新時,就自動完成構建。

這個腳本也慢慢發展,變成了工具,能夠適用於大部分的開發語言。

什麼是持續集成

持續集成(CI), 指的是,頻繁的(一天多次)將代碼集成到主幹。
持續進程的目的,就是讓產品可以快速迭代,同時還能保證高質量。它的核心措施是,代碼集成到主幹之前,必須通過自動化測試,只要有一個測試用例失敗,就不能集成。

通過持續集成,一個開發團隊可以快速的從一個功能到另一個功能,而我們之前提到的敏捷開發,很大一部分就是歸功於持續集成。

持續集成的六個步驟:

在這裏插入圖片描述
代碼從提交到部署到生產環境,一共經歷了六個步驟:

  1. 提交
  2. 測試(第一輪)
  3. 構建
  4. 測試(第二輪測試)
  5. 部署
  6. 回滾
1. 提交

流程的第一步,主要是開發者向代碼倉庫提交代碼,代碼倉庫或者叫代碼託管平臺,目前常見的有 github, gitlab, bitbucket,開源中國代碼託管,coding.net,CSDN代碼託管,京東代碼託管

我們在公司裏一般是搭建自己的gitlab,來進行代碼管理。自己搭建在公司內部服務器,更加安全。當然 在github上用戶也可以創建私有項目, 還要一些小公司會放在阿里雲code代碼託管平臺上。

有個學員的公司,因爲疫情在家辦公,他剛入職,公司給發了VPN賬號,可以登陸公司的SVN服務器,也可以把公司的代碼資料都下載下來,剛要跟公司說這樣不安全。
直到代碼下載下來,看到代碼後豁然開朗,這給別人,別人都不要,所以絕對安全。

2. 測試(第一輪)

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

3. 構建

通過第一輪測試,代碼就可以合併到主幹,後面就可以進行交付了。
交付後,先進性構建(bulid),然後進入第二輪測試。所謂的構建,就是將源代碼轉換爲事件的代碼,比如安裝依賴,配置資源(js腳本,圖片)等等

4. 測試(第二輪測試)

構建完成進行第二輪測試,在第一輪中測試過的內容可以不用測試。也可以把構建放在最前面,把兩次測試合併。

5. 部署

當第二輪測試結束,沒有問題之後,當前的代碼就 可以直接部署了,將當前版本的所有文件打包存檔。 打包直接用tar打包即可, 然後發送到生產服務器。

  1. 回滾
    部署完成之後,進行在線訪問測試,一旦發現當前版本有問題,就要回滾到上一個版本的構建結果, 可以使用我們之前學習過的符號鏈接,ln 來指向上一個版本。

持續集成的組成要素

  • 一個自動化構建過程,從檢出代碼,編譯構建,運行測試,結果記錄,測試統計等都是自動化完成的,無需人工干預
  • 在公司裏,代碼存儲庫,一般使用svn或者git。
  • 一個持續集成服務器,在公司我們用的最多的是jenkins。jenkins的配置和使用方法都很簡單。

集成一定是集成團隊的代碼,而不是一個人的代碼。

持續集成有什麼好處

  • 快速返現錯誤,沒完成一點就進行更新,集成到主幹,可以很容易的發現和定位錯誤
  • 減少重複性的工作
  • 防止分支偏離主幹,如果不做經常性的集成,主幹一直在更新,會導致以後的集成難度變大。

總結

本文主要講述了

  1. 什麼是集成
  2. 什麼是持續集成
  3. 持續集成的步驟
  4. 持續集成的優勢

我是高勝寒,一個在教培行業不忘初心的人,下一篇文章,我們再見!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章