Die Geschäftswelt spricht, lebt und reagiert in Form von Daten. Die neue Lebensessenz, die das Morgen mit dem Heute verbindet muss dabei gekonnt in Bewegung gehalten werden. Dabei hilft ein state-of-the-art Workflowmanagement. Digitale Prozesse werden ausgeführt, verschiedenste Systeme orchestriert und dabei die Datenverarbeitung automatisiert. Wir präsentieren Ihnen in diesem Artikel, wie das alles mit der open-source Workflowmanagement-Plattform Apache Airflow komfortabel möglich ist. Hier finden Sie wichtige Funktionalitäten, Komponenten und die wichtigsten Begriffe für einen problemlosen Einstieg erklärt.
Das manuelle Ausführen von Workflows und das reine Starten mit Cron Jobs ist nicht länger zeitgemäß. Viele Unternehmen suchen deshalb nach einer Cron Alternative. Sobald digitale Aufgaben - oder ganze Prozesse - wiederkehrend und verlässlich ausgeführt werden sollen, muss eine automatisierte Lösung her. Neben der reinen Ausführung von Arbeitsschritten sind weitere Aspekte von Bedeutung:
Aufgrund der Herausforderungen wurde Airflow 2014 als interne Workflowmanagement-Plattform von AirBnB entwickelt, um die komplexen zahlreichen Workflows erfolgreich zu managen. Dabei war Apache Airflow von Beginn an open-source und steht inzwischen unter der Apache License, den Nutzern kostenlos zur Verfügung.
Seit Airflow 2019 ein Top-Level-Projekt der Apache Software Foundation geworden ist, bekam die beitragende Community einen gigantischen Wachstumsschwung. Im Laufe der Zeit ist der Funktionsumfang deshalb stark gewachsen und erfüllt mit regelmäßigen Releases die aktuellen Herzenswünsche der Anwender.
Im Vergleich zu anderen Workflowmanagement-Plattformen kann vor allem die reichhaltige Weboberfläche überzeugen. Der Status der Ausführungsprozesse, die resultierenden Laufzeiten und natürlich auch die Logfiles sind über das elegant gestaltete Web-Interface direkt zugänglich. Wichtige Funktionen für die Verwaltung von Workflows, wie das Starten, Pausieren und Löschen eines Workflows sind direkt aus dem Startmenü ohne Umwege realisierbar. Das sorgt für eine intuitive Bedienbarkeit, auch ohne Programmierkenntnisse. Der Zugriff geschieht am besten über einen Desktop, ist jedoch auch über mobile Endgeräte - allerdings mit Komforteinschränkungen - möglich.
Apache Airflow gibt es nicht nur zum Klicken. Für technische Anwender gibt es ein Command-Line-Interface (CLI) welches ebenfalls die Hauptfunktionen abdeckt. Durch die generalüberholte REST-API greifen sogar andere Systeme mit einer sicheren Authentifizierung über die Schnittstelle auf Airflow zu. Somit werden eine Reihe an neuen Anwendungsfällen und Systemintegrationen ermöglicht.
In Apache Airflow werden die Workflows durch Python Code definiert. Die Reihenfolge der Aufgaben lässt sich leicht anpassen. Dabei sind Vorgänger, Nachfolger und parallele Aufgaben definierbar. Neben diesen internen Abhängigkeiten sind auch externe Abhängigkeiten realisierbar. Beispielsweise kann mit der Fortsetzung des Workflows gewartet werden, bis eine Datei auf einem Cloud-Speicher auftaucht oder ein SQL-Statement ein valides Ergebnis liefert. Fortgeschrittene Funktionen, wie das Wiederverwenden von Workflowteilen (TaskGroups) und die bedingte Verzweigung (Branching) erfreuen auch anspruchsvolle Nutzer.
Im Zuge der Einführung kann Apache Airflow zuerst auf einem einzigen Server laufen und dann mit wachsenden Aufgaben horizontal skaliert werden. Der Einsatz auf verteilten Systemen ist ausgereift und es werden verschiedene Architekturvarianten (Kubernetes, Celery, Dask) unterschtützt.
Viele Integrationen zu Apache Hive, Hadoop Distributed File System (HDFS), Amazon S3 etc. stehen in der Standardinstallation bereit. Andere lassen sich durch benutzerdefinierte Aufgabenklassen hinzufügen. Durch den open-source Charakter ist selbst der Kern der Anwendung anpassbar und die Community stellt für die meisten Anforderungen gut dokumentierte Plug-Ins bereit.
Die vielen Funktionen von Airflow werden durch das perfekte Zusammenspiel seiner Komponenten bestimmt. Die Architektur kann dabei je nach Anwendungsfall unterschiedlich ausfallen. So ist es möglich, flexibel von einer einzelnen Maschine auf ein ganzes Cluster zu skalieren. In der Grafik ist eine Multi-Node-Architektur mit mehreren Maschinen zu sehen.
Das Bild zeigt eine Multi-Node Architektur von Airflow. Im Vergleich zu einer Single Node Architektur sind die Worker in eigenen Nodes platziert
Mit diesem Aufbau gelingt es Airflow, Ihre Datenprozesse zuverlässig auszuführen. In Kombination mit der Programmiersprache Python lässt sich nun auf einfachem Weg bestimmen, was im Workflow wie ablaufen soll. Vor dem Anlegen der ersten Workflows sollten Sie bestimmte Begriffe gehört haben.
In Verbindung mit Apache Airflow wird oft der Begriff DAG (Directed Acyclic Graph) verwendet. Dies ist die interne Speicherform eines Workflows als gerichtetes, nicht-zyklisches Diagramm. Der Begriff DAG wird synonym zu Workflow verwendet und ist der wohl zentralste Begriff in Airflow. Ein DAG-Run bezeichnet entsprechend einen Workflowlauf und im DAG-Bag sind die Workflowdateien abgelegt. In der folgenden Grafik ist ein solcher DAG dargestellt. Dieser beschreibt schematisch einen einfachen Extract-Transform-Load (ETL) Workflow.
Mit Python werden die zusammengehörigen Aufgaben (Tasks) zu einem DAG zusammengefasst. Dieser dient programmiertechnisch als Container, um die Aufgaben, deren Reihenfolge und Informationen zur Ausführung (Intervall, Startzeitpunkt, Wiederholungen bei Fehlern etc.) zusammenzuhalten. Mit der Definition der Beziehungen (Vorgänger, Nachgänger, Parallel) sind selbst komplexe Workflows abbildbar. Dabei kann es mehrere Start- und Endpunkte geben. Lediglich Zyklen sind nicht erlaubt. Mit dem Branching können selbst bedingte Verzweigungen innerhalb eines DAGs erfolgen.
Im code-technischen Organisationsgerüst DAG können die Tasks entweder als Operator oder als Sensor formuliert sein. Während Operator die eigentlichen Befehle ausführen, unterbricht ein Sensor die Ausführung bis zu einem bestimmten Ereignis. Beide Grundtypen werden in zahlreichen Entwicklungen der Community für bestimmte Anwendungen spezialisiert. Die Plug-and-Play Operatoren sind essentiell für die einfache Integration von Amazon Web Service, Google Cloud Plattform und Microsoft Azure und viele mehr. Die Spezialisierung geht vom einfachen BashOperator für die Ausführung von Bash Kommandos bis hin zum GoogleCloudStorageToBigQueryOperator. Die lange Liste der verfügbaren Operatoren ist im Github-Repository einzusehen.
In der Weboberfläche sind die DAGs grafisch dargestellt. In der Graphview (obere Grafik) sind die Tasks und deren Beziehungen gut sichtbar. Die Status-Farben der Ränder symbolisieren den Zustand der Task im ausgewählten Workflow-Lauf. In der Treeview (folgende Grafik) werden auch vergangene Läufe angezeigt. Das eingängige Farbschema zeigt auch hier mögliche Fehler direkt beim zugehörigen Task an. Mit nur zwei Klicks können die Log Files bequem ausgelesen werden. Das Monitoring und die Fehlersuche gehörten definitiv zu Airflows Stärken.
Ob Machine Learning Workflow oder ETL Prozess, ein Blick auf Airflow lohnt sich in jedem Fall. Nehmen Sie gerne Kontakt mit uns auf, falls Sie Unterstützung bei der passgenauen Konfiguration benötigen oder Ihre bestehende Installation aufrüsten wollen. Gerne geben wir unser Wissen auch in praxisnahen Workshops weiter.