首页
/
每日頭條
/
生活
/
cicd解決方案
cicd解決方案
更新时间:2025-05-04 09:39:57

cicd解決方案(一篇文章帶你搞懂什麼是)1

一、持續集成(Continuous Integration)

Continuous Integration:持續集成,簡稱CI,是軟件開發周期的一種實踐,把代碼倉庫(Gitlab或者Github)、構建工具(如Jenkins)和測試工具(SonarQube)集成在一起,頻繁的将代碼合并到主幹然後自動進行構建和測試。簡單來說持續集成就是一個監控版本控制系統中代碼變化的工具,當發生變化是可以自動編譯和測試以及執行後續自定義動作。

簡化的含義為:頻繁的(一天多次的)将所有開發者的工作合并到主幹上。

以圖例說明:

cicd解決方案(一篇文章帶你搞懂什麼是)2

從圖例上來看流程,分為3個步驟:

  1. 首先,開發人員提交代碼到 Source Repository (源代碼倉庫)。
  2. 然後,通過 git hook 等觸發 CI Server(持續集成服務器)的相關功能。執行 編譯 -> 測試 -> 輸出結果 等。
  3. 最後,向開發人員反饋結果的 report。

可以看出,持續集成的 核心 在于 确保新增的代碼能夠與原先代碼正确的集成。與後續要介紹的持續交付以及持續部署,其最主要的差别也就在于其目标不同。

持續集成的優勢

和我們一直在使用的 階段集成(完成一個階段的開發後執行代碼的集成) 相比, 持續集成 的策略能夠為我們帶來哪些好處呢?

  • 易于定位錯誤:每一次的代碼集成都需要執行相關的測試工作,持續集成頻繁的集成次數天然的将複雜的代碼邏輯切割為了小塊,也就使得每一次測試中遇到的錯誤能夠更加容易的被定位。
  • 易于控制開發流程:更為細緻的工作提交也就意味着更容易判斷當前的工作進度,這對于管理者規劃開發流程而言提供了一個有效的參考,同時也為開發人員省下了彙報工作的時間。
  • 易于CodeReview:對于大塊工作的切分自然也有助于做 CodeReview。
  • 易于減少不必要的工作:build 以及 test 過程的自動化可以為你節約一大票的時間,從而投入到有價值的工作中去。
二、持續交付(Continuous Delivery)

Continuous Delivery:持續交付,簡稱CD,是在CI的基礎進行了擴展,在CI環節完成了軟件構建和測試工作并形成了新的版本,那麼接下來就要進行交付,而這裡的交付并不是交付到生産環境,而是類生産環境(STAGING),我們可以理解為灰度環境或者預發環境,進而接受部分真實流量的測試。如果沒有問題的話則通過手動的方式部署到生産環境。

簡化的含義為:一種能夠使得軟件在較短的循環中可靠地發布的軟件工程方法。

與持續集成相比,持續交付的側重點在于 交付,其核心對象不在于代碼,而在于可交付的産物。

由于持續集成僅僅針對于新舊代碼的集成過程執行了一定的測試,其變動到持續交付後還需要一些額外的流程。

以圖例說明:

cicd解決方案(一篇文章帶你搞懂什麼是)3

可以看到,與 持續集成 相比較,持續交付 添加了 Test -> Staging -> Production 的流程,也就是為新增的代碼添加了一個保證: 确保新增的代碼在生産環境中是可用的 。

在這一增加的流程中,Test 環節不僅僅包含基本的單元測試,還需要延伸到更為複雜的功能測試以及集成測試等。

在這裡,Staging 指的是 類生産環境 ,其盡可能地對真實的網絡拓撲、數據庫數據以及硬件設備等資源進行模拟,從而為測試人員反饋代碼在生成環境中的可能表現。

流程中每一個環節的執行結果都會對開發人員進行反饋,每一個出現的錯誤都會導緻版本的回滾。當測試完畢确認無誤之後,将由相關人員對其進行 手動部署到生産環境。

三、持續部署(Continuous Deployment)

Continuous Deployment:持續部署,簡稱CD,它是在持續交付的基礎上打通最後一公裡的工作,就是把手動部署到生産環境的方式升級為自動部署。看下圖和上圖在最後部署到生産環境中的區别。

簡化的含義為:通過自動化部署的手段将軟件功能頻繁地進行交付。

與持續交付以及持續集成相比,持續部署強調了通過 automated deployment 的手段,對新的軟件功能進行集成。

以圖例說明:

cicd解決方案(一篇文章帶你搞懂什麼是)4

可以看到,同 持續交付 相比 持續集成 的區别體現在對 Production 的自動化。

從開發人員提交代碼到編譯、測試、部署的全流程不需要人工的幹預,完全通過自動化的方式執行。

這一策略加快了代碼提交到功能上線的速度,保證新的功能能夠第一時間部署到生産環境并被使用。

四、總結

持續集成、持續交付和持續部署其目的是減少代碼改動到投入生産的所需時間,提早發現風險、減少QA的測試時長、減少運維的人工幹預。整體上是一個提效的過程。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
如何清除牆上的蠟筆漬
如何清除牆上的蠟筆漬
牆上被孩子塗上蠟筆漬後十分不雅,那如何除去牆上的蠟筆漬呢?1、用脫脂棉沾些牙膏,就可以輕而易舉地把牆壁上的蠟筆或鉛筆等字畫擦拭幹淨。2、當然砂紙打磨也可以,不過可能會在牆上留下刮痕的。3、可用布(絨布最佳)遮住污漬處,用熨鬥熨燙一下即可,蠟筆油遇熱就會熔化,此時迅速用布将污垢擦淨。
2025-05-04
羽絨服髒了怎麼辦?羽絨服髒了怎麼清洗幹淨
羽絨服髒了怎麼辦?羽絨服髒了怎麼清洗幹淨
冬天裡羽絨服是我們穿的次數最多的衣服了。那麼如果羽絨服髒了怎麼進行簡單的清洗呢?關于羽絨服的清洗,請看看下面的方法吧。羽絨服噴霧超市裡面有賣的,是專門清洗羽絨服的洗衣劑。衣服哪裡髒裡,在哪裡噴一下,最後用濕布擦擦就可以了。非常的簡單。毛巾蘸汽油針對于衣服上有油污的。用幹毛巾蘸汽油,在領子,袖口等部位...
2025-05-04
這些擺放床位方法會影響睡眠
這些擺放床位方法會影響睡眠
這些擺放床位方法會影響睡眠這些擺放床位方法會影響睡眠1、床位正對梳妝鏡。擺放床位時不宜正對梳妝鏡,這主要是因為夜間起夜時,在光線較暗的地方,會在突然擡頭睜眼的瞬間,看到鏡中自己的身影,容易受驚吓或者引起情緒波動。2、東西朝向。擺放床位時不宜東西朝向,這是因為地球本身具有地磁場,地磁場具有吸引鐵、钴、...
2025-05-04
汽車必須要做的保養大全 少做一個汽車早報廢兩年
汽車必須要做的保養大全 少做一個汽車早報廢兩年
通常所說的汽車保養大多是指換機油,機油是車上所有油液中更換頻率最高的,每隔5千-1萬公裡就要更換一次,并且時間上也有要求,一般是半年時間。一輛車買來後,定期更換機油是最基礎的,也是必須的,這是維持發動機良好工況的前提。那麼除了換機油之外,還需要做什麼項目呢?做多了浪費錢,做少了又對車不好,今天我們就...
2025-05-04
削土豆皮有什麼竅門
削土豆皮有什麼竅門
削土豆皮有什麼竅門許多人喜歡吃土豆(馬鈴薯)沙拉,但去土豆皮很是麻煩。通常我們都用刮皮刀削土豆皮,那樣即費時間又很無聊。下面小編介紹了一個即快捷又有趣的方法去土豆皮。土豆洗幹淨後,用刀在土豆中間部位圍繞土豆劃一圈,注意不要太用力劃到土豆的肉,隻需淺淺劃破土豆皮即可。接下來将土豆放入鍋裡,加熱水煮一段...
2025-05-04
Copyright 2023-2025 - www.tftnews.com All Rights Reserved