Freigeben über


CI/CD auf Azure Databricks

Kontinuierliche Integration und kontinuierliche Lieferung (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 in Data Engineering und Data Science immer notwendiger. Durch die Automatisierung des Erstellens, Testens und Bereitstellens von Code liefern Entwicklungsteams Veröffentlichungen zuverlässiger als bei manuellen Prozessen.

Databricks bietet Tools für die Entwicklung von CI/CD-Pipelines, die Ansätze unterstützen, die sich aufgrund eindeutiger Aspekte des Softwareentwicklungslebenszyklus jeder Organisation geringfügig von Organisation zu Organisation unterscheiden können. Diese Seite enthält Informationen zu den verfügbaren Tools für CI/CD-Pipelines auf Databricks. Ausführliche Informationen zu CI/CD-Empfehlungen und bewährten Methoden finden Sie unter Bewährte Methoden und empfohlenen CI/CD-Workflows auf Databricks.

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

Hoher Fluss

Ein allgemeiner Fluss für eine Azure Databricks CI/CD-Pipeline ist:

  1. Version: Speichern Sie Ihren Azure Databricks-Code und Notizbücher in einem Versionssteuerungssystem wie Git. Auf diese Weise können Sie Änderungen im Laufe der Zeit nachverfolgen und mit anderen Teammitgliedern zusammenarbeiten.
  2. Code: Entwickeln Sie Code- und Komponententests in einem Azure Databricks-Notizbuch im Arbeitsbereich oder lokal mithilfe einer IDE.
  3. Build: Verwenden Sie die Einstellungen von Databricks Asset Bundles, um bestimmte Artefakte während der Bereitstellungen automatisch zu erstellen.
  4. Implementieren: Implementieren Sie Änderungen im Azure Databricks-Arbeitsbereich mithilfe von Databricks Asset Bundles und Tools wie Azure DevOps, GitHub Actions oder Jenkins.
  5. Test: Entwickeln und ausführen Sie automatisierte Tests, um Ihre Codeänderungen zu überprüfen.
    • Verwenden Sie Tools wie Pytest , um Ihre Integrationen zu testen.
  6. Ausführen: Verwenden Sie die Databricks CLI mit Databricks Asset Bundles, um Die Ausführung in Ihren Azure Databricks-Arbeitsbereichen zu automatisieren.
  7. Überwachen: Überwachen Sie die Leistung Ihrer Code- und Produktionsworkloads in Azure Databricks mithilfe von Tools wie der Auftragsüberwachung. Auf diese Weise können Sie Probleme identifizieren und beheben, die in Ihrer Produktionsumgebung auftreten.

Verfügbare Tools

Die folgenden Tools unterstützen CI/CD-Kernprinzipien: Version aller Dateien und Vereinheitlichen der Ressourcenverwaltung, Definieren der Infrastruktur als Code, Isolieren von Umgebungen, Automatisieren von Tests und Überwachen und Automatisieren von Rollbacks.

Fläche Verwenden Sie diese Tools, wenn Sie möchten...
Databricks-Ressourcenbundles Definieren, Bereitstellen und Ausführen von Ressourcen programmatisch, einschließlich Lakeflow-Aufträgen, Lakeflow Spark Deklarative Pipelines und MLOps Stacks unter Verwendung bewährter CI/CD-Methoden und Prozesse.
Databricks-Terraform-Anbieter Bereitstellen und Verwalten von Databricks-Arbeitsbereichen und -Infrastruktur mithilfe von Terraform.
Kontinuierliche Integration und Bereitstellung in Azure Databricks mit Azure DevOps Entwickeln Sie eine CI/CD-Pipeline für Azure Databricks, die Azure DevOps verwendet.
Authentifizieren mit Azure DevOps auf Azure Databricks Authentifizieren mit Azure DevOps.
GitHub-Aktionen Schließen Sie eine GitHub-Aktion ein, die für Azure Databricks in Ihrem CI/CD-Fluss entwickelt wurde.
CI/CD mit Jenkins auf Azure Databricks Entwickeln Sie eine CI/CD-Pipeline für Azure Databricks, die Jenkins verwendet.
Orchestrieren von Lakeflow-Jobs mit Apache Airflow Verwalten und Planen einer Datenpipeline, die Apache Airflow verwendet.
Dienstprinzipale für CI/CD Verwenden Sie Dienstprinzipien anstelle von Benutzern im CI/CD-Prozess.
Authentifizieren des Zugriffs auf Azure Databricks mithilfe des OAuth-Tokenverbunds Verwenden Sie den Workload-Identitätsverbund für die CI/CD-Authentifizierung, wodurch die Notwendigkeit von Databricks-Geheimschlüsseln nicht mehr benötigt wird, sodass sie die sicherste Methode zur Authentifizierung bei Databricks ist.

Databricks-Asset-Pakete

Databricks Asset Bundles sind der empfohlene Ansatz für CI/CD auf Databricks. Verwenden Sie Databricks Asset Bundles, um Databricks-Ressourcen wie Aufträge und Pipelines als Quelldateien zu beschreiben, und bündeln Sie sie zusammen mit anderen Ressourcen, um eine End-to-End-Definition eines bereitstellungsfähigen Projekts bereitzustellen. Diese Sammlungen von Dateien können unter Quellcodeverwaltung stehen, und Sie können externe CI/CD-Automatisierung wie GitHub-Actions verwenden, um Bereitstellungen auszulösen.

Bündel umfassen viele Features wie benutzerdefinierte Vorlagen zum Erzwingen von Konsistenz und bewährten Methoden in Ihrer Organisation sowie umfassende Unterstützung für die Bereitstellung der Codedateien und -konfiguration für viele Databricks-Ressourcen. Für die Erstellung eines Bündels sind kenntnisse der Bündelkonfigurationssyntax erforderlich.

Empfehlungen zur Verwendung von Bundles in CI/CD finden Sie unter Bewährte Methoden und empfohlenen CI/CD-Workflows auf Databricks.

Weitere Tools für die Quellcodeverwaltung

Als Alternative zum Anwenden vollständiger CI/CD mit Databricks Asset Bundles bietet Databricks Optionen nur zur Quellcodeverwaltung und zum Bereitstellen von Codedateien und Notizbüchern.

  • Git-Ordner: Git-Ordner können verwendet werden, um den Status eines Remote-Git-Repositorys widerzuspiegeln. Sie können einen Git-Ordner für die Produktion erstellen, um quellgesteuerte Quelldateien und Notizbücher zu verwalten. Ziehen Sie dann den Git-Ordner manuell in den aktuellen Zustand, oder verwenden Sie externe CI/CD-Tools wie GitHub-Aktionen, um den Git-Ordner beim Zusammenführen abzurufen. Verwenden Sie diesen Ansatz, wenn Sie keinen Zugriff auf externe CI/CD-Pipelines haben.

    Dieser Ansatz funktioniert für externe Orchestratoren wie Airflow, beachten Sie jedoch, dass sich nur die Codedateien, z. B. Notizbücher und Dashboardentwürfe, in der Quellcodeverwaltung befinden. Konfigurationen für Aufträge oder Pipelines, die Objekte im Git-Ordner und Konfigurationen für Veröffentlichungsdashboards ausführen, befinden sich nicht in der Quellcodeverwaltung.

  • Git mit Aufträgen: Mit Git mit Aufträgen können Sie einige Auftragstypen konfigurieren, um ein Remote-Git-Repository als Quelle für Codedateien zu verwenden. Wenn ein Auftrag gestartet wird, erstellt Databricks eine Momentaufnahme des Repositories und führt alle Aufgaben gegen diese Version aus. Dieser Ansatz unterstützt nur eingeschränkte Auftragsaufgaben, und nur Codedateien (Notizbücher und andere Dateien) werden quellcodegesteuert. Auftragskonfigurationen wie Tasksequenzen, Computeeinstellungen und Zeitpläne werden nicht von der Quelle gesteuert, sodass dieser Ansatz für multi-umgebungsübergreifende Bereitstellungen weniger geeignet ist.