CI/CD 管線——由提交到生產環境 · 心智圖

CI/CD 管線——由提交到生產環境. 可編輯嘅心智圖,以彩色分支、子題目同曲線連結呈現概念。 曲線表示關聯;只有方向重要時先用箭嘴。

CI/CD 把由一次程式碼提交走到生產環境的路徑自動化:持續整合會建置並測試每一次改動,持續交付則把它打包、部署,並以一道道關卡決定這次發布是否健康得足以留下來。

CI/CD 管線——由提交到生產環境 · 心智圖

The interactive MindMap canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.

點樣閱讀呢張心智圖

  • 由中央主題開始,沿住彩色分支探索相關概念。
  • 曲線表示關聯;只有方向重要時先用箭嘴。

Commit & build

呢個分支匯集 “Developer commits code”, “CI server builds the application”.

Verify

呢個分支匯集 “Unit and integration tests run”, “The gate is what makes it CI: a commit that fails a test or a security scan never reaches the registry, let alone production.”, “Build failed — fix and recommit”.

Package

呢個分支匯集 “Package the artifact and push to the registry”.

Release

呢個分支匯集 “Deploy to staging and run smoke tests”, “Deploy to production”.

Observe & recover

呢個分支匯集 “Deployment is not the end of the pipeline: error rates, latency and availability metrics decide whether the release stays.”, “Release is live and monitored”, “Roll back to the last good version”.

跨分支關聯

CI 是任何東西送出去之前的那道關卡:建置並測試每一次提交,在源頭就把失敗擋下來。

產物倉庫裡那件產物只建置一次,然後在所有地方執行——部署能否重現,就靠這一點。

預備環境在生產環境見到它之前,先在一個貼近生產的環境裡驗證這件產物。

部署之後是否健康才是真正的關卡——決定一次發布留不留下來的是監控,不是部署腳本。

一條沒有回滾的管線,並不適合自動化;這張畫布把回滾畫成一條頭等的路徑。

Key relationships and takeaways

  • CI 是任何東西送出去之前的那道關卡:建置並測試每一次提交,在源頭就把失敗擋下來。
  • 產物倉庫裡那件產物只建置一次,然後在所有地方執行——部署能否重現,就靠這一點。
  • 預備環境在生產環境見到它之前,先在一個貼近生產的環境裡驗證這件產物。
  • 部署之後是否健康才是真正的關卡——決定一次發布留不留下來的是監控,不是部署腳本。
  • 一條沒有回滾的管線,並不適合自動化;這張畫布把回滾畫成一條頭等的路徑。

When to use this visual

  • 在一支團隊動手建一條管線之前,先教會他們持續整合與持續交付的分別。
  • 設計一條管線:那兩道關卡指出自動化應該在哪裡停下,而判斷(或者回滾)應該由哪裡開始。
  • 覆核一條現有的管線——少了一道健康關卡,就等於一次發布在沒有任何決定之下執行。

運作方式

  1. 調整中央主題

    按項目或課堂修改中央主題名稱。

  2. 擴展分支

    編輯概念並加入例子或註解。

  3. 連結相關概念

    畫出跨分支連結;只有方向重要時先用箭嘴。

常見問題

CI 與 CD 有甚麼分別?

持續整合(CI)是自動建置並測試每一次提交的做法,令問題在被引入的那一刻就浮現,而不是等到發布才發現。持續交付(CD)承接 CI 的輸出,把它通往部署的路徑自動化——打包、預備環境、發布——並由關卡決定甚麼時候才算安全。CI 是管線裡的第一道關卡,CD 則是它之後的一切。

關卡在一條 CI/CD 管線裡為甚麼重要?

因為自動化拿走了從前用來截住問題的那些人手檢查點。管線用一個個決策取代它們:測試那道關卡在一次失敗的建置送出去之前把它停下,健康那道關卡則在一次不良的發布送出去之後把它停下。圖解把兩者都畫成決策形狀,就是這個原因——一條管線可信到甚麼程度,取決於它的關卡。

回滾是甚麼?管線為甚麼需要它?

回滾就是當一次發布在部署之後失敗時,把系統退回上一個已知正常的版本。管線需要它,因為健康檢查並不完美,而生產環境出問題的方式往往是預備環境從未顯示過的。自動化的回滾正是令團隊可以頻繁部署的原因——一次不良發布的代價,變成一次還原,而不是一宗事故。

產物倉庫在當中扮演甚麼角色?

產物倉庫是管線建置出來的產物連同版本編號存放的地方。之後每一個階段——預備環境、生產環境、回滾——部署的都是倉庫裡那一件一模一樣的產物,而不是重新建置一次。這正是已部署的程式碼與已測試的程式碼完全相同的原因,也正是回滾安全的原因:上一個正常的版本仍然留在倉庫裡。

喺 QueryChart 編輯呢張心智圖

喺可編輯畫布開啟心智圖。移動概念、加入分支同畫連結。

喺 QueryChart 編輯呢張心智圖

心智圖的更多內容