Pünktlich zum Jahresabschluss kommt das herbeigesehnte Major Update der Workflowmanagement-Plattform Airflow. Mit Apache Airflow 2.0 werden langjährige Benutzer durch eine noch schnellere Ausführung ihrer Workflows belohnt und Neueinsteiger profitieren an vielen Stellen von der gesteigerten Benutzerfreundlichkeit. Dabei bleibt die Open-Source Workflowmanagement-Plattform mit der hervorragenden Skalierbarkeit unter der Apache Lizenz stets kostenlos nutzbar.
In diesem Artikel präsentieren wir Ihnen die wichtigsten Neuerungen und helfen Ihnen zu einem State of the Art Workflowmanagement. Falls Sie Apache Airflow gerne von Grund auf kennenlernen wollen, empfehlen wir Ihnen die Lektüre unseres Whitepapers "Effektives Workflowmanagement mit Apache Airflow 2.0". Dort werden die wichtigsten Konzepte näher erklärt und Sie erhalten praktische Anwendungsideen bezüglich der neuen Funktionen im Major Release.
Vorab eine Zusammenfassung der wichtigsten Ideen der Workflowmanagement-Plattform. In Airflow dreht sich alles um Workflow-Objekte. Diese sind technisch als gerichtete, nicht zyklische Graphen (directed acyclic graph - DAG) implementiert. Ein solcher Workflow kann beispielsweise das Zusammenführen mehrerer Datenquellen und das anschließende Ausführen eines Analyseskriptes beinhalten. Airflow übernimmt dabei die Terminierung der Aufgaben unter Beachtung der Abhängigkeiten und orchestriert die beteiligten Systeme. Die Integrationen zu Amazon S3, Apache Spark, Google BigQuery, Azure Data Lake und vielen Weiteren sind direkt in der offiziellen Installation enthalten oder sind über produktionsreife Beiträge der Community ergänzt.
Im Gegensatz zu anderen Open-Source-Tools ist die Weboberfläche von Apache Airflow keine vernachlässigte Begleiterscheinung. Die grafische Oberfläche leitet den Anwender durch administrative Aufgaben wie die Verwaltung von Workflows und auch das Benutzermanagement. Zahlreiche Visualisierungen des Aufbaus eines Workflows und der zeitlichen Evaluation der Ausführungszeiten bieten seit jeher eine gute Übersicht über den aktuellen Status der Workflowläufe.
In der neuen Benutzeroberfläche von Apache Airflow 2.0 - im leichtgewichtigen Design - tauchen selten genutzte Funktionen in den Hintergrund und schaffen Platz für mehr Übersichtlichkeit. Beispielsweise ist das Pausieren, Starten und Löschen eines Workflows direkt von der Startseite aus möglich, während das detaillierte Monitoring und die Codeansicht in ein Kontextmenü rücken.
Ein weiteres Highlight der grafischen Benutzeroberfläche ist die Auto-Refresh-Option, die das Live-Monitoring wesentlich angenehmer gestaltet.
Auch die Programmierschnittstelle zu Airflow darf sich über ein Upgrade freuen. In der neuen Version ist diese aus dem experimentellen Status herausgewachsen. Zwar bleibt die alte Schnittstelle vorerst aktiv, jedoch lohnt sich der Blick in die neue API dank vieler zusätzlicher Funktionen mit durchgängiger OpenAPI Spezifikation. Insgesamt werden alle Funktionen der Weboberfläche des experimentellen Vorgängers und typische Funktionen des Command-Line-Interfaces abgedeckt. Während der Entwicklung standen auch Sicherheitsaspekte im Vordergrund und das Rechtemanagement rund um die API und die Weboberfläche wurde vereinheitlicht.
Eine architektonisch tiefgreifende Änderung im neuen Major Release betrifft die Scheduler Komponente. Der Scheduler überwacht alle Workflows und die darin enthaltenen Aufgaben und startet diese sobald der Zeitpunkt gekommen ist und interne Abhängigkeiten erfüllt sind.
In der Community besteht seit langen die Forderungen nach einer gesteigerten Performance. Diese wird endlich erfüllt. Der neue Scheduler überzeugt mit einer enormen Geschwindigkeitsverbesserung und der Möglichkeit, mehrere Scheduler-Instanzen in einem active/active Modell zu betreiben. Damit wurde die Erreichbarkeit und die Ausfallsicherheit in diesem Zuge ebenfalls erhöht.
Wiederverwendbare Codeteile sorgen für Effektivität in der Programmierung und verbessern die Wartbarkeit. Im vorherigen Konzept der SubDAGs konnten diese Vorteile genutzt werden, jedoch nur mit negativen Auswirkungen auf die Performance. Eingebundene Workflowteile unterstützten keine parallele Ausführung und wurden deshalb seltener als gewollt eingesetzt. In Airflow 2.0 steht dasselbe Konzept ohne Nachteile unter dem Begriff TaskGroups bereit.
Mit der Programmiersprache Python werden die Workflows leicht angelegt. Neben der Definition von Aufgaben und deren Abhängigkeiten (ergo der Konkretisierung des Workflows selbst), können auch einzelne Python-Funktionen als Workflowschritt ausgeführt werden. Dafür wird die Aufgabe mit dem sogenannten PythonOperator spezifiziert.
Werden mehrere Python-Operatoren nacheinander verwendet, sind diese nun besser verknüpfbar und können leichter den Output der vorhergehenden Funktion nutzen. Die Zuordnung des Outputs erfolgt automatisch im Hintergrund - auch auf verteilten Systemen - und die Aufgabenreihenfolge wird implizit abgeleitet statt explizit gefordert zu sein.
In Apache Airflow werden Aufgaben sequenziell ausgeführt. Dabei gibt es Fälle, in denen es sinnvoll ist, die Ausführung des Workflows vorübergehend zu unterbrechen, wenn bestimmte Bedingungen (z. B. Daten vorhanden) nicht erfüllt sind. Das geschieht durch die sogenannten Sensoren. Diese prüfen in festen Intervallen verschiedenste Voraussetzungen und setzen den Workflow erst nach Erfüllung dieser fort. Bei übermäßiger Nutzung binden die Sensoren jedoch einen wesentlichen Teil der verfügbaren Ressourcen im Airflow Cluster mit ihren häufigen Abfragen.
Im neuen Modus Smart Sensors werden die Sensoren gebündelt ausgeführt und verbrauchen deshalb weniger Ressourcen. Das early-access Feature wurde bereits ausgiebig getestet, jedoch kann es zu Kompatibilitätsproblemen in zukünftigen Versionen kommen, falls ungeplante strukturelle Änderungen auftreten.
Neben den vorgestellten Änderungen wurden auch weitere Schritte zur Steigerung der Benutzerfreundlichkeit unternommen. Beispielsweise wurde die Ausführung von Airflow in einem Kubernetes-Cluster vereinfacht und optimiert.
Es gibt viele gute Gründe für den Einsatz von Apache Airflow 2.0. - nutzen Sie das Potential des neuen Major Release!
Falls Sie Unterstützung bei der passgenauen Konfiguration benötigen oder Ihre bestehende Installation upgraden wollen, nehmen Sie gerne Kontakt mit uns auf. Wir geben unser Wissen ebenfalls in praxisnahen Workshops weiter - sprechen Sie uns gerne jederzeit an!