在使用 dbt 時,若要修改某個 model,需要將修改後的程式碼推送到主分支,並重新部署 dbt 映像檔。
然而,在公司或團隊中,若每次修改都直接推送到主分支並重建映像檔,可能會引發重大問題。萬一修改後的 models 出錯,可能導致正式環境的數據表缺失資料。因此,理想的做法是在每次修改時,先進行自動化檢測和人工審核,通過後再自動部署映像檔。這個流程就稱為 CI/CD。
CI/CD 指的是持續整合(Continuous Integration)與持續部署(Continuous Deployment)兩個密切相關的軟體開發實踐與工具的結合,在開發流程中扮演著重要角色。
持續整合的目的是讓開發人員能頻繁地將程式碼變更合併到主分支。每次合併後,系統會自動進行構建和測試。
這有助於及早發現問題,減少因程式碼合併導致的衝突,並確保主分支始終處於可發佈狀態。
主要步驟包括:
持續部署延續持續整合的概念,它自動將每次通過測試的程式碼變更直接部署到生產環境。這意味著程式碼只要通過所有測試,就會被立即上線,無需人工干預。這對需要頻繁更新的應用程式特別有用。
常見的 CI/CD 工具有:
CI/CD 協助開發團隊提高工作效率、降低風險、加快軟體交付速度,並提升軟體品質。
對於資料工程師而言,CI/CD 也可用於自動化 pipeline 部署和更新,確保數據處理和分析流程能順利運行。
CI/CD 能夠顯著減少傳統開發流程中的手動操作和錯誤,提升開發敏捷性。
這篇文章介紹了 CI/CD 的概念及其價值,後續的系列文章將會詳細說明 Migo 團隊如何建立 dbt 的 CI/CD 流程。