Wie liefert man kugelsichere DAGs wie ein Chef? Lokale Entwicklung mit Apache Airflow und Docker Compose

Milena Kapciak
Milena Kapciak
May 6, 2025
5 min read
Loading the Elevenlabs Text to Speech AudioNative Player...

In einer Welt, in der immer mehr Unternehmen datengesteuert sind, das Datenvolumen stark wächst und Analyseplattformen in die Cloud wechseln und deren Bereitstellung immer komplexer wird, wollen Dateningenieure immer noch Antworten auf Geschäftsfragen in bester Qualität liefern.Apache Airflow ist ein bekanntes Tool zum Erstellen, Planen und Überwachen von Datenworkflows. In diesem Artikel beschreibe ich eine Verbesserung, die in unserem Projekt eingeführt wurde und die es uns ermöglicht, DAGs von besserer Qualität schneller bereitzustellen.

  1. Warum brauchen wir ein lokales Umfeld?
  2. Lokale Umgebung für Apache Airflow
  3. Docker Compose als Lösung
  4. Vorteile einer lokalen Airflow-Umgebung auf Basis von Docker Compose im Vergleich zur Remote-Umgebung
  5. Anwendungsfälle für lokale Airflow-Umgebungen auf Basis von Docker Compose

Warum brauchen wir ein lokales Umfeld?

Als Entwickler und Dateningenieure wollen wir qualitativ hochwertige Produkte liefern, die sofort einsatzbereit sind, ohne Fehler und Leistungsprobleme. Um dieses Ziel zu erreichen, verwenden wir lokale Umgebungen, um unseren Code zu entwickeln, zu testen und zu optimieren.

Lokale Umgebung für Apache Airflow

Manchmal sind Produktionsumgebungen sehr komplex, zum Beispiel verwenden sie Kubernetes Cluster und Verbindungen zu Cloud-Diensten, und die Bereitstellung nimmt viel Zeit in Anspruch. Wie können Sie eine angemessene Vereinfachung vornehmen und Ihren Code testbar machen? Lernen wir ein Beispiel für Apache Airflow.Im vorherigen Artikel haben wir über Anwendungsfälle und den allgemeinen Zweck des Apache Airflow geschrieben. Wenn Sie mit diesem Thema noch nicht vertraut sind, empfehle ich dringend, einen Blick auf https://dsstream.com/when-should-you-consider-using-apache-airflow-use-cases/Ich gehe davon aus, dass Sie mit Airflow vertraut sind, es ständig verwenden und sich fragen, wie Sie DAGs besser schreiben und testen können. Du bist nicht allein, wir haben das gleiche Thema bei unseren Retro-Meetings zur Sprache gebracht 😊 Unsere Produktions- und Preprod-Umgebung funktioniert in der Cloud mit Kubernetes Engine, für die DAGs-Synchronisierung benötigten wir jedes Mal etwa 2 bis 5 Minuten, daher ist sie für eine effiziente Entwicklung viel zu lang.Um qualitativ hochwertige Pipelines schneller bereitstellen zu können, haben wir beschlossen, lokale Airflow-Umgebungen einzurichten. Die lokale Verwendung von Kubernetes war für uns zu viel Aufwand, da wir uns auf die DAG-Entwicklung und nicht auf die Konfiguration konzentrieren wollen. Wir haben uns für eine einfachere Lösung entschieden und Docker Compose verwendet.

Docker Compose als Lösung

Docker Compose ist ein Tool zum Definieren und Ausführen von Docker-Anwendungen mit mehreren Containern. Mit Compose können Sie die gewünschte Anzahl von Containern, ihre Builds und Speicherdesigns festlegen, und dann können Sie mit einem einzigen Befehlssatz alle Container erstellen, ausführen und konfigurieren. Es ist eine großartige Lösung für Entwicklung und Testen. Es gibt eine offizielle Docker Compose-Datei, die uns die Airflow Community zur Verfügung gestellt hat, aber um die Produktionseinstellungen besser widerzuspiegeln, passen wir sie ein wenig an. Wir haben Bibliotheken wie Black, Pylint und Pytest hinzugefügt, um Code und Skripte zu überprüfen, die uns bei der Image-Neuerstellung und den Cloud-Verbindungseinstellungen helfen.

Vorteile einer lokalen Airflow-Umgebung auf Basis von Docker Compose im Vergleich zur Remote-Umgebung

Die Hauptvorteile, die wir mithilfe der lokalen Airflow-Umgebung auf Docker-Compose entdeckt haben, sind: - schnelles DAG-Update — Katalog mit DAGs wird als Volume gemountet, das Update von DAGs erfolgt so schnell wie die Werte des SCHEDULER_DAG_DIR_LIST_INTERVAL EASY LOGS ACCESS-Parameters, der Sekunden dauern kann - einfacher Zugriff auf Protokolle - der Katalog mit Protokollen wird auch als Volume gemountet und gibt uns die Möglichkeit, Protokolldateien schnell zu finden, zu lesen oder einfach die Konfiguration zu ändern — wir Verwenden Sie die Konfiguration in der ENV-Datei. Dadurch können wir Parameter transparent ändern, ohne dass airflow.cfg überschrieben wird, und geben uns die Möglichkeit, habe viele ENV-Dateien und kann problemlos zwischen den Setups wechseln.- Das Image lässt sich einfach erneut bereitstellen — wir haben die volle Kontrolle über die UmgebungLesen Sie mehr über das Airflow 2.0-Setup mit der DAG-Versionierung und -Serialisierung hier.

Anwendungsfälle für lokale Airflow-Umgebungen auf Basis von Docker Compose

Die lokale Airflow-Umgebung mit Docker-Compose war für uns nicht nur bei der Entwicklung von DAGs hilfreich, sondern war auch eine große Hilfe, wenn wir: - die Airflow-Version aktualisieren, - Python-Abhängigkeiten hinzufügen, - neue Versionen von Bibliotheken testen - neue Integrationen (wie BigQuery) testen wollten, als wir uns fragten, wo wir anfangen sollten, haben wir das Cloud SDK mit persönlichen Anmeldeinformationen verwendet und die Entwicklung schnell und effizient gestaltet.Wenn Sie bei Ihrer Arbeit auf ähnliche Herausforderungen stoßen und Erfahrungen austauschen oder nutzen möchten unsere Unterstützung bitte Kontaktiere uns.

Share this post
Cloud Computing
Milena Kapciak
MORE POSTS BY THIS AUTHOR
Milena Kapciak

Curious how we can support your business?

TALK TO US