身為 DevOps
人員具有 CICD
概念是在基本不過的,但倘若開發人員也了解 CICD
概念,更能有效降低錯誤發生,並提昇服務品質。那麼何謂 CICD
。
那麼何謂 CICD
,其實講的比較簡單一點就是將上程式的流程自動化,自動 build code、執行 unit test、自動更新線上服務...所有反覆步驟都轉為自動化執行。
但實際上 CI
與 CD
應該要拆成兩個部份來看,下圖是較為常見的 CICD
流程,開發人員執行 git push
至 Gitlab
後,將程式更新至 Server
的步驟交由 Jenkins
負責。
那麼 CI & CD 分別負責哪些工作,且看下方介紹:
流程:
「程式建置」
開發人員在每一次的 Commit & Push 後,都能夠於統一的環境自動 Build 程式,透過此一步驟可以避免每個開發人員因本機的環境&套件版本不相同,造成 Service 異常。
「程式測試」
當程式編譯完成後,將會透過「單元測試」測試新寫的功能是否正確,或者確認是否有影響到現有功能,透過該步驟進行測試,可以避免掉開發人員遺忘於本機先行檢查,作為「雙重驗證」工用。
目的:
流程:
目的:
所以 CICD 通常會遵循著以下流程:
(取至網路)
可以看一下此流程圖:
Jenkins
或者 ELK
、Grafana
等監控工具發現異常時,可即時傳送至Telegram
等通訊軟體作為提醒。