Suchen

Definition Was ist Apache Airflow?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Apache Airflow ist eine Open-Source-basierte Workflow-Management-Plattform. Workflows lassen sich mit der Software erstellen, verwalten und überwachen. Die Workflows sind mit gerichteten azyklischen Graphen abgebildet. Airflow ist in Python geschrieben und stellt eine grafischen Benutzeroberfläche zur Verfügung. Die Software hat sich als De-facto-Standard für das Workflow-Management etabliert.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Apache Airflow wurde 2014 ursprünglich von Airbnb entwickelt. Es handelt sich um eine Open-Source-basierte Plattform für das Management von Workflows. Mit der Software lassen sich Workflows beschreiben, erstellen, verwalten, starten und überwachen. Airflow ist von Beginn an als Open Source Software konzipiert und wurde im Jahr 2016 ein Inkubator-Projekt der Apache Software Foundation (ASF). Im Jahr 2019 stieg Apache Airflow zu einem Top Level Projekt der ASF auf.

Airflow ist in Python geschrieben und stellt eine grafischen Benutzeroberfläche zur Verfügung, auf der der Status der einzelnen Workflows live mitverfolgt werden kann. Zahlreiche Programmiersprachen und verschiedene Datenbanken werden in Form von sogenannten Operatoren unterstützt. Bei den Operatoren handelt es sich um Tasks, die die Verbindung zu den Datenbanken oder Sprachen herstellen. Die Workflows selbst sind ebenfalls in Python beschrieben und über azyklische gerichtete Graphen (Directed Acyclic Graphs – DAGs) abgebildet. Obwohl es sich bei Apache Airflow um eine noch recht junge Software handelt, hat sie sich bereits weltweit als De-facto-Standard für das Workflow-Management etabliert.

Apache Workflow wird von Entwicklern und Datenwissenschaftlern in vielen Unternehmen und Organisationen eingesetzt. Unter anderem nutzen Unternehmen wie Adobe, Google, PayPal, Twitter, Lyft, Airbnb und viele weitere die Software für das Management ihrer Workflows. Darüber hinaus ist Apache Airflow als voll gemanagte Cloud-Lösung bei verschiedenen Providern erhältlich. Die aktuelle Version der Software ist Airflow 1.10.10 (Stand April 2020). Sie steht unter Apache License 2.0 und kann über GitHub heruntergeladen werden.

Prinzipielle Funktionsweise von Apache Airflow

Für das Management der Workflows und die Bereitstellung der Funktionen verwendet Apache Airflow folgende grundlegenden Funktionskomponenten:

  • gerichtete azyklische Graphen (Directed Acyclic Graphs – DAGs)
  • Scheduler
  • Worker
  • Webserver-Benutzeroberfläche
  • Meta-Datenbank
  • Log-Dateien

Workflows werden mithilfe von gerichteten azyklischen Graphen abgebildet. Sie bestehen aus Knoten, die miteinander verbunden sind. Die Knoten stellen die einzelnen Arbeitsaufgaben (Tasks) dar und die Verbindungen die Abhängigkeiten der Tasks untereinander. Die Tasks sind so miteinander verbunden, dass sie nacheinander abgearbeitet werden und keine Endlosschleifen entstehen. Die Graphen bilden eine Art Einbahnstraße vom Beginn eines Workflows bis zu dessen vollständiger Abarbeitung. Definiert und beschrieben sind die Tasks und ihre Abhängigkeiten in Python.

Apache Airflow managt und steuert die Workflows über Scheduler. Scheduler können sowohl parallel als auch sequenziell arbeiten. Die einzelnen Tasks lassen sich auf mehrere Worker parallel verteilen. Workflows laufen nach einem festgelegten Zeitplan oder abhängig von Trigger-Events ab. Die Worker sind für die Bearbeitung der einzelnen Tasks zuständig. Sie bekommen die Tasks vom Scheduler zugewiesen und erledigen die Einzelaufgaben entsprechend der jeweiligen Python-Beschreibung des Tasks.

Über den Webserver steht eine grafische Benutzeroberfläche zur Verfügung, die das Monitoring, Management und die Interaktion mit den Workflows erlaubt. Es lässt sich der detaillierte Status jedes einzelnen Workflows anzeigen. In der Meta-Datenbank sind alle Informationen der Tasks gespeichert. Log-Dateien sind zur Fehlersuche und Fehleranalyse oder Dokumentation nutzbar.

Vorteile von Apache Airflow

Das Workflow-Management mit Apache Airflow bietet ein Vielzahl an Vorteilen. Zur Beschreibung der Workflows lassen sich vielseitige Python-Funktionen nutzen. Selbst sehr komplexe Abläufe sind abbildbar. Bei Bedarf können dynamische Pipelines und Workflows generiert werden. Jeder, der sich mit Python auskennt, kann relativ schnell eigene Workflows beschreiben und implementieren. Die grafische Weboberfläche ermöglicht es, Workflows zu überwachen, zu managen und zu planen, ohne dass Kenntnisse kryptischer Kommandos notwendig sind.

Der Status der Workflows ist live nachverfolgbar. Zahlreiche fertige Operatoren zur Einbindung unterschiedlicher Services, Datenbanken und Cloud-Plattformen sind verfügbar. Darüber hinaus können eigene Operatoren entworfen werden. Die modulare Architektur von Apache Airflow sorgt für nahezu unbegrenzte Skalierungsmöglichkeiten. Die Software ist frei verfügbar und hat eine große Community im Web, die Fragen beantwortet oder bei Problemen weiterhilft. Nochmals kurz zusammengefasst sind dies die wichtigsten Vorteile von Apache Airflow:

  • Beschreibung der Workflows in Python mit Unterstützung des kompletten Funktionsumfangs
  • komplexe und dynamische Workflows realisierbar
  • zahlreiche fertige Plug-and-Play-Operatoren verfügbar
  • individuelle Operatoren können entworfen werden
  • grafische Weboberfläche zum Überwachen, Managen und Planen der Workflows
  • Status der Workflows live nachverfolgbar
  • modulare Architektur mit nahezu unbegrenzter Skalierbarkeit
  • frei verfügbare Software
  • viele Anwender weltweit und Top-Level-Projekt der Apache Software Foundation
  • große Community im Web verfügbar

(ID:46714748)

Über den Autor