iT邦幫忙

2024 iThome 鐵人賽

DAY 13
3
AI/ ML & Data

dbt 修煉之路系列 第 13

什麼是 CI/CD ? 為何需要 CI/CD ?

  • 分享至 

  • xImage
  •  

在使用 dbt 時,若要修改某個 model,需要將修改後的程式碼推送到主分支,並重新部署 dbt 映像檔。

然而,在公司或團隊中,若每次修改都直接推送到主分支並重建映像檔,可能會引發重大問題。萬一修改後的 models 出錯,可能導致正式環境的數據表缺失資料。因此,理想的做法是在每次修改時,先進行自動化檢測和人工審核,通過後再自動部署映像檔。這個流程就稱為 CI/CD。

什麼是 CI/CD

CI/CD 指的是持續整合(Continuous Integration)與持續部署(Continuous Deployment)兩個密切相關的軟體開發實踐與工具的結合,在開發流程中扮演著重要角色。

持續整合(Continuous Integration, CI)

持續整合的目的是讓開發人員能頻繁地將程式碼變更合併到主分支。每次合併後,系統會自動進行構建和測試。

這有助於及早發現問題,減少因程式碼合併導致的衝突,並確保主分支始終處於可發佈狀態。

主要步驟包括:

  • 程式碼合併:開發人員將程式碼提交到版本控制系統(如 Git)。
  • 自動構建:每次提交程式碼時,CI 工具會自動編譯程式碼並構建應用程式。
  • 自動測試:CI 工具運行自動化測試來驗證提交的程式碼是否正常。

持續部署(Continuous Deployment, CD)

持續部署延續持續整合的概念,它自動將每次通過測試的程式碼變更直接部署到生產環境。這意味著程式碼只要通過所有測試,就會被立即上線,無需人工干預。這對需要頻繁更新的應用程式特別有用。

  • 自動化部署腳本:確保部署過程一致且可重複。

工具

常見的 CI/CD 工具有:

  • Jenkins:一個開源自動化服務器,支援構建、部署、測試和監控等功能。
  • GitLab CI/CD:內建在 GitLab 平台中的 CI/CD 功能。
  • GitHub Actions:GitHub 平台內建的 CI/CD 工具,允許開發人員在 GitHub 上直接自動化各種軟體開發工作流程。
  • CircleCI:一個基於雲端的 CI/CD 工具,易於整合和擴展。

CI/CD 價值

CI/CD 協助開發團隊提高工作效率、降低風險、加快軟體交付速度,並提升軟體品質。

對於資料工程師而言,CI/CD 也可用於自動化 pipeline 部署和更新,確保數據處理和分析流程能順利運行。

CI/CD 能夠顯著減少傳統開發流程中的手動操作和錯誤,提升開發敏捷性。

這篇文章介紹了 CI/CD 的概念及其價值,後續的系列文章將會詳細說明 Migo 團隊如何建立 dbt 的 CI/CD 流程。


上一篇
materialization & macro 實作 UDF 差異
下一篇
Migo CI/CD 流程
系列文
dbt 修煉之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言