CI/CD
https://ithelp.ithome.com.tw/articles/10184557
介紹
DevOps 簡而言之,就是 Development + Operations ,也就是開發與維運。目的是打破開發團隊與維運團隊之間的隔閡,創造資訊透明,整合度高的合作模式,降低衝突的機率。測試也是必要流程,與開發、維運團隊緊密合作,為品質把關,因此測試也常出現在 DevOps 的討論範圍。
DevOps 有 5 個要領,簡稱 CALMS:
- Culture
- Automation
- Lean
- Measurement
- Sharing
Culture(文化)
專案合作期間,開發團隊會思考如何順利部署整個應用服務,預留部署維運相關設定配置,而維運也會思考針對開發團隊多變的業務場景,頻繁修改程式碼快速響應業務需求。
Automation(自動化)
開發團隊完成程式碼,轉移給維運團隊部署,中間過程的標準化流程,使之自動化提高效率降低交接的認為錯誤。
Lean(精實)
- 消除浪費 (eliminate waste):Dev 與 Ops 間的衝突,就是一個最大的浪費。專案團隊具有DevOps觀念,自然會一起想各種方法來解決這些衝突,如自動化、持續整合、持續佈署等。
- 增強學習 (amplify learning)
- 盡量延遲決策 (decide as late as possible):一個軟體開發生命週期裡,很多資訊在 Dev 階段是無法確定的,常常需要到了 Ops 階段、或上線階段才能確定,預留空間給予業務和維運修改。
- 盡快交付 (deliver as faster as possible):目的是為了盡快得到用戶回饋,盡快修正。
- 授權團隊 (empower the team):在互助的前提下,給對方團隊一些特權,也許會讓交付的速度急速成長,目的提高交付效率。
- 崁入完整性 (build integrity in)
- 著眼整體 (see the whole):開發與維運是「互助合作,相輔相成」,而不是「針鋒相對,一事無成」。從更多角度思考產品,會讓產品的品質更好。
Measurement(測量)
通常測量的目標會是維運時期的數據,從需求到上線,整個流程都有記錄,有助於團隊思考改善的方向。
Sharing(分享)
分享也是增加團隊透明度的好方法。
CI/CD 集成
採用一些工具實踐 DevOps 目標,Git、Gitlab CI / CD、Docker。
- Git:程式碼版本控制,支持多人協作維護,可追蹤的程式碼開源管理工具。
- Gitlab CI / CD:Git 倉庫管理