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
- 在一支團隊動手建一條管線之前,先教會他們持續整合與持續交付的分別。
- 設計一條管線:那兩道關卡指出自動化應該在哪裡停下,而判斷(或者回滾)應該由哪裡開始。
- 覆核一條現有的管線——少了一道健康關卡,就等於一次發布在沒有任何決定之下執行。
運作方式
調整中央主題
按項目或課堂修改中央主題名稱。
擴展分支
編輯概念並加入例子或註解。
連結相關概念
畫出跨分支連結;只有方向重要時先用箭嘴。
常見問題
CI 與 CD 有甚麼分別?
持續整合(CI)是自動建置並測試每一次提交的做法,令問題在被引入的那一刻就浮現,而不是等到發布才發現。持續交付(CD)承接 CI 的輸出,把它通往部署的路徑自動化——打包、預備環境、發布——並由關卡決定甚麼時候才算安全。CI 是管線裡的第一道關卡,CD 則是它之後的一切。
關卡在一條 CI/CD 管線裡為甚麼重要?
因為自動化拿走了從前用來截住問題的那些人手檢查點。管線用一個個決策取代它們:測試那道關卡在一次失敗的建置送出去之前把它停下,健康那道關卡則在一次不良的發布送出去之後把它停下。圖解把兩者都畫成決策形狀,就是這個原因——一條管線可信到甚麼程度,取決於它的關卡。
回滾是甚麼?管線為甚麼需要它?
回滾就是當一次發布在部署之後失敗時,把系統退回上一個已知正常的版本。管線需要它,因為健康檢查並不完美,而生產環境出問題的方式往往是預備環境從未顯示過的。自動化的回滾正是令團隊可以頻繁部署的原因——一次不良發布的代價,變成一次還原,而不是一宗事故。
產物倉庫在當中扮演甚麼角色?
產物倉庫是管線建置出來的產物連同版本編號存放的地方。之後每一個階段——預備環境、生產環境、回滾——部署的都是倉庫裡那一件一模一樣的產物,而不是重新建置一次。這正是已部署的程式碼與已測試的程式碼完全相同的原因,也正是回滾安全的原因:上一個正常的版本仍然留在倉庫裡。
喺 QueryChart 編輯呢張心智圖
喺可編輯畫布開啟心智圖。移動概念、加入分支同畫連結。