iT邦幫忙

2026 iThome 鐵人賽

1

DAY40 CI/CD 持續整合/持續交付

  • 一. 什麼是CI/CD?
    • 1.1 CI 持續整合
    • 1.2 CD 持續交付/部署
  • 二. 與DAY39的DevSecOps(開發、安全、維運整合)的關係

一. 什麼是CI/CD?

CI Continuous Integration
持續整合
開發人員持續把新的Code整合到共同專案中
並自動進行(建置與測試)
不要累積很久才一次合併,而是持續整合、持續檢查

CD Continuous Delivery
持續交付/部署
通過測試後,讓軟體保持在隨時可以部署的狀態

1.1 CI 持續整合

假設今天一個開發團隊有4個開發人員一起寫一個網站
A人員寫:登入功能
B人員寫:購物車
C人員寫:付款功能
D人員寫:會員資料
如果大家都各寫一個月,直到最後一天才把程式整合在一起

那有可能會發生:

  • A和B程式衝突
  • C的版本與其他不同
  • D的修改破壞到A

等等的問題
而CI的概念就是頻繁整合並且頻繁測試,不要把問題累積到最後一次爆發

流程會像是:
開發人員寫Code -> 提交修改 -> 程式碼儲存庫 -> 自動建置 -> 自動測試 -> 觀察成功或失敗

為什麼需要?
假設昨天系統正常,但今天A提交了一小段程式碼後測試失敗
那就可以很明顯知道大概是哪一段出現問題
但如果是幾個月後再一次整合所有程式碼
可能很多地方都有問題,並且因為很大量的程式碼要追查也困難

早點發現整合問題就是CI的重點

建置
把開發中的程式碼,整理/轉換成可執行或可部署的成果

自動測試
講的就是在DAY37中學過的SAST(靜態應用程式安全測試)

1.2 CD 持續交付/部署

假設剛剛CI的過程最後成功了
接下來系統會準備好一個隨時可以發布的版本

持續交付 Continuous Delivery
是指在CD通過後
等待人工核准
最後才正式部署
系統自動準備好,但正式上線可由人來決定

持續部署 Continuous Deployment
設立好條件,在CD通過後
只要符合條件,就自動上線

二. 與DAY39的DevSecOps(開發、安全、維運整合)的關係

整個CI/CD流程套上DevSecOps(SAST、DAST)會變成:

  1. 開發提交程式碼
  2. 建置
  3. 測試 (程式功能是否正常)
  4. SAST靜態安全測試 (程式碼是否有安全漏洞)
  5. 封裝
  6. 部署 (測試環境)
  7. DAST動態應用安全測試
  8. 成功-> 部署到正式環境

只要中間有任何一關失敗了,就回去重修
DevSecOps是

理念與工作方式(開發+安全+維運)

CI/CD是

把這個理念落實成自動化流程的一種重要方法

IPAS 113-2 Q28
DevSecOps 是軟體開發過程中,每個階段整合安全測試的實務,它是 DevOps 實務的延伸。請問下列何項「不」包含在 DevSecOps 所定義的文化內容?
C:規劃
DevSecOps三大核心就是:
Dev(Development)→ 開發
Sec(Security)→ 安全性
Ops(Operations)→ 營運


上一篇
DAY39 DevSecOps 開發、安全、維運整合
下一篇
DAY41 SBOM 軟體物料清單
系列文
格鬥教練想轉職學資安是否搞錯了什麼(自學第一步)IPAS初級筆記 共 40 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言