Was ist CI/CD in Azure Databricks?

Dieser Artikel enthält eine Einführung in CI/CD in Databricks. Continuous Integration und Continuous Delivery (CI/CD) bezieht sich auf den Prozess der Entwicklung und Bereitstellung von Software in kurzen, häufigen Zyklen durch die Verwendung von Automatisierungspipelines. CI/CD ist in der Softwareentwicklung üblich, und wird für Datentechnik und Data Science immer notwendiger. Durch die Automatisierung beim Erstellen, Testen und Bereitstellen von Code können Entwicklungsteams Releases zuverlässiger als die manuellen Prozesse liefern, die in vielen Datentechnik- und Data Science-Teams immer noch verbreitet sind.

Azure Databricks empfiehlt die Verwendung von Databricks Asset Bundles für CI/CD, die die Entwicklung und Bereitstellung komplexer Daten-, Analyse- und ML-Projekte für die Azure Databricks-Plattform ermöglichen. Mit Bundles können Sie viele benutzerdefinierte Konfigurationen ganz einfach verwalten und Builds, Tests und Bereitstellungen Ihrer Projekte für Azure Databricks-Entwicklungs-, Staging- und Produktionsarbeitsbereiche automatisieren.

Eine Übersicht über CI/CD für Machine Learning-Projekte in Azure Databricks finden Sie unter Wie unterstützt Databricks CI/CD für maschinelles Lernen?.

Was ist in einer CI/CD-Pipeline in Azure Databricks enthalten?

Sie können Databricks Asset Bundles verwenden, um Ihre Azure Databricks CI/CD-Implementierung zu definieren und programmgesteuert zu verwalten, die in der Regel Folgendes umfasst:

  • Notebooks: Azure Databricks-Notebooks sind häufig ein wichtiger Bestandteil von Data Engineering- und Data Science-Workflows. Sie können die Versionskontrolle für Notebooks verwenden und diese auch als Teil einer CI/CD-Pipeline überprüfen und testen. Sie können automatisierte Tests für Notebooks ausführen, um zu überprüfen, ob sie wie erwartet funktionieren.
  • Bibliotheken: Verwalten Sie die Bibliotheksabhängigkeiten, die erforderlich sind, um Ihren bereitgestellten Code auszuführen. Verwenden Sie die Versionskontrolle für Bibliotheken, und schließen Sie sie in automatisierte Tests und Validierungen ein.
  • Workflows:Databricks-Workflows bestehen aus Aufträgen, mit denen Sie automatisierte Aufgaben mithilfe von Notebooks oder Spark-Aufträgen planen und ausführen können.
  • Datenpipelines: Sie können auch Datenpipelines in die CI/CD-Automatisierung einschließen, indem Sie Delta Live Tables verwenden, das Framework in Databricks zum Deklarieren von Datenpipelines.
  • Infrastruktur: Die Infrastrukturkonfiguration enthält Definitionen und Bereitstellungsinformationen für Cluster, Arbeitsbereiche und Speicher für Zielumgebungen. Infrastrukturänderungen können im Rahmen einer CI/CD-Pipeline überprüft und getestet werden, um sicherzustellen, dass sie konsistent und fehlerfrei sind.

Schritte für CI/CD in Azure Databricks

Ein typischer Flow für eine CI/CD-Pipeline von Azure Databricks umfasst die folgenden Schritte:

  1. Speichern: Speichern Sie Ihren Azure Databricks-Code und Ihre Notebooks in einem Versionskontrollsystem wie Git. Dadurch können Sie Änderungen im Laufe der Zeit nachverfolgen und mit anderen Teammitgliedern zusammenarbeiten. Weitere Informationen finden Sie unter CI/CD-Techniken mit Git- und Databricks-Git-Ordnern (Repos) und Bündeln von Git-Einstellungen.
  2. Code: Entwickeln Von Code- und Komponententests in einem Azure Databricks-Notebook im Arbeitsbereich oder lokal mithilfe einer externen IDE. Azure Databricks bietet eine Visual Studio Code-Erweiterung, die das Entwickeln und Bereitstellen von Änderungen an Azure Databricks-Arbeitsbereichen erleichtert.
  3. Build: Verwenden Sie die Einstellungen von Databricks Asset Bundles, um bestimmte Artefakte während der Bereitstellungen automatisch zu erstellen. Siehe Artefakte.
  4. Bereitstellen: Bereitstellen von Änderungen am Azure Databricks-Arbeitsbereich mithilfe von Databricks Asset Bundles in Verbindung mit Tools wie Azure DevOps, Jenkins oder GitHub Actions. Siehe Bereitstellungsmodi für Databricks-Ressourcenbündel.
  5. Testen: Entwickeln und führen Sie automatisierte Tests aus, um Ihre Codeänderungen mithilfe von Tools wie Pytest zu überprüfen.
  6. Ausführen: Verwenden Sie die Databricks CLI in Verbindung mit Databricks Asset Bundles, um die Ausführung in Ihren Azure Databricks-Arbeitsbereichen zu automatisieren. Siehe Ausführen eines Bündels.
  7. Überwachen: Überwachen der Leistung Ihres Codes und Ihrer Workflows in Azure Databricks mithilfe von Tools wie Azure Monitor oder Datadog. Dies hilft Ihnen, Probleme zu identifizieren und zu beheben, die in Ihrer Produktionsumgebung auftreten.
  8. Durchlaufen: Durchführen kleiner, häufiger Iterationen, um Ihr Datentechnik- oder Data Science-Projekt zu verbessern und zu aktualisieren. Kleine Änderungen können einfacher zurückrollt werden als große Änderungen.

Weitere Informationen zum Verwalten des Lebenszyklus von Azure Databricks-Ressourcen und -Daten finden Sie in der folgenden Dokumentation zu CI/CD und Datenpipelinetools.

Bereich Verwenden Sie diese Tools für Folgendes:
Databricks-Ressourcenbündel Nutzen Sie bewährte CI/CD-Methoden und -Workflows, Azure Databricks-Aufträge, Delta Live Tables-Pipelines und MLOps-Stapel programmgesteuert zu definieren, bereitzustellen und auszuführen.
CI/CD-Workflows mit Git und Databricks Git-Ordnern Verwenden Sie GitHub- und Databricks-Git-Ordner für die Quellcodeverwaltung und CI/CD-Workflows.
Continuous Integration und Continuous Delivery in Azure Databricks mithilfe von Azure DevOps Entwickeln einer CI/CD-Pipeline für Azure Databricks, von der Azure DevOps verwendet wird
Continuous Integration und Continuous Delivery mit GitHub Actions Entwickeln eines CI/CD-Workflows auf GitHub, der GitHub Actions für Azure Databricks verwendet
CI/CD mit Jenkins in Azure Databricks Entwickeln einer CI/CD-Pipeline für Azure Databricks, von der Jenkins verwendet wird
Orchestrieren von Azure Databricks-Aufträgen mit Apache Airflow Verwalten und Planen einer Datenpipeline mit Apache Airflow
Dienstprinzipale für CI/CD Verwenden Sie bei CI/CD-Systemen Dienstprinzipale anstelle von Benutzern.