什麼是 Azure Databricks 上的 CI/CD?
本文是 Databricks 上的 CI/CD 簡介。 持續整合和持續傳遞 (CI/CD) 是指透過使用自動化管線來開發及傳遞軟體的程式。 CI/CD 是軟體開發的共同點,而且越來越需要數據工程和數據科學。 藉由自動化建置、測試及部署程式代碼,開發小組能夠比數據工程和數據科學小組仍然常見的手動程式更可靠地傳遞版本。
Azure Databricks 建議針對 CI/CD 使用 Databricks 資產套件組合 ,以針對 Azure Databricks 平台開發及部署複雜的數據、分析和 ML 專案。 套件組合可讓您輕鬆地管理許多自定義設定,並將專案的組建、測試和部署自動化至 Azure Databricks 開發、預備和生產工作區。
如需 Azure Databricks 上機器學習專案的 CI/CD 概觀,請參閱 Databricks 如何支援機器學習的 CI/CD?。
Azure Databricks 上的 CI/CD 管線是什麼?
您可以使用 Databricks 資產套件組合 ,以程序設計方式定義和管理 Azure Databricks CI/CD 實作,通常包括:
- 筆記本:Azure Databricks 筆記本通常是數據工程和數據科學工作流程的重要部分。 您可以針對筆記本使用版本控制,也可以驗證和測試它們作為 CI/CD 管線的一部分。 您可以針對筆記本執行自動化測試,以檢查它們是否如預期般運作。
- 連結庫:管理 執行已部署程式代碼所需的連結庫相依性 。 在連結庫上使用版本控制,並將其包含在自動化測試和驗證中。
- 工作流程: Databricks 作業 是由可讓您使用筆記本或 Spark 作業排程和執行自動化工作的作業所組成。
- 數據管線:您也可以使用 Delta Live Tables,在 CI/CD 自動化中包含數據管線,這是 Databricks 中用於宣告數據管線的架構。
- 基礎結構:基礎結構組態包含叢集、工作區和目標環境的記憶體定義和布建資訊。 基礎結構變更可以驗證及測試為 CI/CD 管線的一部分,以確保它們一致且無錯誤。
Azure Databricks 上的 CI/CD 步驟
Azure Databricks CI/CD 管線的一般流程包含下列步驟:
- 市集:將您的 Azure Databricks 程式代碼和筆記本儲存在 Git 等版本控制系統中。 這可讓您追蹤一段時間的變更,並與其他小組成員共同作業。 請參閱 使用 Git 和 Databricks Git 資料夾 (Repos) 和 套件組合 Git 設定的 CI/CD 技術。
- 程序代碼:在工作區中的 Azure Databricks 筆記本或使用外部 IDE 在本機開發程式代碼和單元測試。 Azure Databricks 提供 Visual Studio Code 延伸模組 ,可讓您輕鬆地開發和部署 Azure Databricks 工作區的變更。
- 組建:使用 Databricks 資產套件組合設定,在部署期間自動建置特定成品。 請參閱 成品。 此外,使用 Databricks Labs pylint 外掛程式擴充的 Pylint 有助於強制執行編碼標準,並偵測 Databricks 筆記本和應用程式程式代碼中的 Bug。
- 部署:使用 Databricks Asset Bundle 搭配 Azure DevOps、Jenkins 或 GitHub Actions 等工具,將變更部署至 Azure Databricks 工作區。 請參閱 Databricks 資產組合部署模式。
- 測試:開發和執行自動化測試,以使用 pytest 之類的工具來驗證程式代碼變更。 若要測試與工作區 API 的整合, Databricks Labs pytest 外掛程式 可讓您建立工作區物件,並在測試完成後加以清除。
- 執行:使用 Databricks CLI 搭配 Databricks 資產套件組合,將 Azure Databricks 工作區中的執行自動化。 請參閱 執行作業或管線。
- 監視:使用 Azure 監視器或 Datadog 等工具來監視 Azure Databricks 中的程式碼和工作流程效能。 這可協助您找出並解決生產環境中發生的任何問題。
- 逐一查看:進行小型、頻繁的反覆專案,以改善和更新您的數據工程或數據科學專案。 小型變更比大型變更更容易復原。
相關連結
如需管理 Azure Databricks 資產和數據生命週期的詳細資訊,請參閱下列有關 CI/CD 和數據管線工具的檔。
區域 | 當您要...時,請使用這些工具... |
---|---|
Databricks Asset Bundles | 使用 CI/CD 最佳做法和工作流程,以程式設計方式定義、部署和執行 Azure Databricks 作業、Delta Live Tables 管線和 MLOps Stack。 |
Databricks Terraform 提供者 | 使用 Terraform 布建和管理 Databricks 基礎結構和資源。 |
使用 Git 和 Databricks Git 資料夾的 CI/CD 工作流程 | 使用 GitHub 和 Databricks Git 資料夾進行原始檔控制和 CI/CD 工作流程。 |
在 Databricks 上使用 Azure DevOps 進行驗證 | 使用 Azure DevOps 進行驗證。 |
使用Microsoft Entra 服務主體來驗證 Azure Databricks Git 資料夾的存取權 | 使用 MS Entra 服務主體來驗證 Databricks Git 資料夾的存取權。 |
使用 Azure DevOps 在 Azure Databricks 上進行持續整合和傳遞 | 針對使用 Azure DevOps 的 Azure Databricks 開發 CI/CD 管線。 |
使用 GitHub Actions 持續整合和傳遞 | 在 GitHub 上開發 CI/CD 工作流程,以使用針對 Azure Databricks 開發的 GitHub Actions。 |
在 Azure Databricks 上使用 Jenkins 的 CI/CD | 針對使用 Jenkins 的 Azure Databricks 開發 CI/CD 管線。 |
使用 Apache Airflow 協調 Azure Databricks 作業 | 管理及排程使用 Apache Airflow 的數據管線。 |
CI/CD 的服務主體 | 搭配 CI/CD 系統使用服務主體,而不是使用者。 |