跳至主要内容

CI/CD

https://ithelp.ithome.com.tw/articles/10184557

介紹

DevOps 簡而言之,就是 Development + Operations ,也就是開發與維運。目的是打破開發團隊與維運團隊之間的隔閡,創造資訊透明,整合度高的合作模式,降低衝突的機率。測試也是必要流程,與開發、維運團隊緊密合作,為品質把關,因此測試也常出現在 DevOps 的討論範圍。

DevOps 有 5 個要領,簡稱 CALMS:

  • Culture
  • Automation
  • Lean
  • Measurement
  • Sharing

Cache Flow

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 倉庫管理

Cache Flow