Die richtigen Daten zum richtigen Zeitpunkt am richtigen Ort, für die jeweiligen Adressaten passend aufbereitet. So könnte man die ideale Vision einer funktionierenden Business Intelligence Infrastruktur beschreiben. Um dies zu erreichen, braucht es in der Realität häufig eine Vielzahl von Systemkomponenten, die im richtigen Takt miteinander harmonieren müssen. Wenn die Zahl der Quellsysteme und Abnehmer eines Analyse-Data-Warehouse steigt, werden allein die Koordination und das Monitoring der korrekten und planmäßigen Abläufe zu einer Herausforderung. Ein Orchestrierungsdienst wie Apache Airflow kann das passende Instrument sein, um den Überblick zu behalten. Airflow bietet nicht nur eine Vielzahl von Funktionen zur Steuerung, Sicherung und Nachverfolgung von geplanten Aufgaben an, sondern kann als Open Source Projekt auch lizenzkostenfrei betrieben werden. Doch für viele Unternehmen stellt sich schnell die Frage: Lässt sich Apache Airflow auf einem Windows Server betreiben? Wir möchten heute die Möglichkeiten, Vor- und Nachteile darstellen.
Uns begegnen immer wieder Unternehmen, die einen passenden Dienst für die Definition und das Management von Workflows und Daten-Pipelines suchen. NextLytics rät dabei aus Überzeugung zu Apache Airflow. Airflow setzt vollständig auf einen Code-basierten Ansatz für die Definition von Workflows und Abläufen, das schafft große Verlässlichkeit und ermöglicht einen vollständig nachvollziehbaren Betriebsprozess für dieses schlagende Herz einer Business Intelligence Infrastruktur. Airflow setzt weiterhin auf Erweiterbarkeit, ist mit Python in der populärsten Programmiersprache der Gegenwart verankert und ist mit unzähligen Erweiterungsmodulen hochgradig anpassbar. Dass Apache Airflow primär für den Betrieb auf Linux-Betriebssystemen, in einer Container-Virtualisierungplattform oder der Cloud ausgelegt ist, stellt mitunter eine Hürde dar: Daten sollen nur im eigenen Rechenzentrum verarbeitet werden oder es gibt noch keine umsetzungsreife Cloud-Strategie. Und schließlich: die hauseigene IT-Abteilung bietet nur Windows Server als Betriebssystem an.
Apache Airflow setzt auf eine Micro-Services-Architektur, d.h. verschiedene, einzeln skalierbare Dienste übernehmen unterschiedliche Aufgaben und kommunizieren per Webservice-Schnittstellen miteinander. Eine solche Architektur lässt sich mittels Containervirtualisierung mit wenig Aufwand betreiben, sofern die passende Infrastruktur zur Verfügung steht. Für kleine bis mittlere Größenordnungen reicht hier oft ein virtueller Server mit Docker Engine. Mächtigere Systeme fühlen sich in einem Kubernetes Cluster besonders wohl. Insbesondere Docker hat in den letzten Jahren viel Aufwand betrieben, um als Virtualisierungsschicht auch auf Windows Server Betriebssystemen lauffähig zu sein. Auf den ersten Blick scheint der Fall damit klar: Windows Server mit Docker Engine bereitstellen, die Airflow Container ausrollen und es kann losgehen.
In der Praxis ist man schnell mit verschiedenen Varianten und Problemen konfrontiert. Die gängigen Betriebsvarianten für Airflow mittels Docker auf einem Windows System sind:
Für beide Varianten finden sich eine Vielzahl von Anleitungen und Best Practices im Netz, doch Vorsicht: wirklich reibungslos funktioniert es nicht!
Die vermutlich einfachste Möglichkeit, Airflow auf einem Windows Betriebssystem laufen zu lassen, setzt auf das Programm “Docker Desktop”. Docker Desktop bietet eine grafische Benutzeroberfläche, um die Docker Engine zu aktivieren und Docker Container zu starten. Die aktuelle Version von Docker Desktop nutzt das Windows Subsystem for Linux v2, um für den Anwender völlig unbemerkt eine virtuelle Linux-Umgebung im Hintergrund aufzubauen und darin die Docker Engine zu betreiben. Das Command Line Interface der Docker Engine wird dann ins Windows Betriebssystem durchgereicht und ist über die bekannten Befehle wie “docker run” oder auch “docker compose” direkt aus Powershell erreichbar.
In dieser Variante erfolgt eine weitestgehend nahtlose Integration in den Windows Server. Basisverzeichnisse für eine Compose-basierte Installation von Airflow liegen direkt im Windows Dateisystem und können mit den üblichen Tools wie Powershell, Git for Windows und Explorer verwaltet werden.
Ein weiterer großer Pluspunkt ist, dass Docker Desktop die Port-Weiterleitung zwischen Betriebssystem und Docker Containern automatisiert und hier keinerlei Zusatzaufwand und Konfiguration anfallen. Auch ein Betrieb des Systems nach Continuous Integration / Continuous Delivery Prinzipien kann mit einem beliebigen Werkzeug problemlos erreicht werden, wie zum Beispiel GitLab CI/CD oder Azure DevOps Pipelines.
Docker Desktop ist als grafisches Programm konzipiert, das von einem angemeldeten Benutzer ausgeführt wird. Wenn Apache Airflow als dauerhaft laufenden Dienst betrieben werden soll, ist das zunächst hinderlich. Über ein zusätzliches Start-Skript, das per Windows Diensteverwaltung beim Serverstart ausgeführt wird, kann das gewünschte Verhalten trotzdem erreicht werden. Auch die Docker Engine lässt sich mittels Konfigurationsparameter so einrichten, dass sie beim Reboot automatisch gestartet wird.
In dieser Variante haben unsere Tests gezeigt, dass das Einbinden von Airflow-Verzeichnissen aus dem Windows Dateisystem in die Docker Container problematisch ist. Offensichtlich werden Datei-Sperrmechanismen anders verhandelt als auf Linux-basierten Servern, sodass das Einlesen von Airflow DAG-Definitionsdateien fehleranfällig ist. Es empfiehlt sich daher, Airflow Docker Images so zu konfigurieren, dass die üblicherweise vom Hostsystem eingebundenen Verzeichnisse vollständig in das Image eingebunden sind.
Welches Hindernis steht dem Betrieb von Apache Airflow auf diese Weise im Wege? Aus technischer Sicht keines, allein der Umstand, dass Docker Desktop ein lizenzpflichtiges Produkt ist. Für Testbetrieb und kleine Unternehmen kann die Nutzung kostenfrei sein. Ab einem bestimmten Jahresumsatz oder mehr als 500 Mitarbeitenden müssen jedoch Lizenzen erworben werden. Preislich liegen diese zwischen 60 Dollar und ein paar hundert Dollar pro Jahr für wenige Nutzer.
Gibt es eine Möglichkeit, das Open Source System Airflow auch ohne zusätzliche Lizenzkosten auf Windows Server zu betreiben? Wir haben die folgende Variante ebenfalls für Sie getestet:
Seit einigen Jahren ist das Windows Subsystem for Linux praktisch flächendeckend in die Betriebssysteme aus dem Hause Microsoft integriert. Es ermöglicht den Betrieb von leichtgewichtigen virtuellen Betriebssystemumgebungen auf Linux-Basis innerhalb eines laufenden Windows Betriebssystems. Sollte es damit nicht auch möglich sein, Apache Airflow mittels Docker in einer solchen WSL Umgebung komplett wie auf einem nativen Linux-Server zu betreiben?
Wir haben die Variante mit einer Ubuntu WSL Umgebung getestet. Die WSL Umgebung wird gemäß üblicher Anleitungen erzeugt und per Kommandozeile gesteuert, ganz wie ein vollwertiger Ubuntu Server. Die Docker Engine in der WSL Umgebung wird wiederum ganz herkömmlich installiert und eine handelsübliche lokale Betriebsumgebung für Apache Airflow mit Git und docker-compose vorbereitet.
Kompliziert wird diese Variante an der Schnittstelle von Windows Betriebssystem und der WSL Linux-Umgebung. WSL Umgebungen sind darauf ausgelegt, von einem angemeldeten Benutzer zur Laufzeit gestartet und bedient zu werden. Der automatische Start mit dem Host-Betriebssystem ist zunächst nicht vorgesehen und muss über Skripte konstruiert werden. Auch eine Integration der Benutzerkennungen zwischen den beiden Umgebungen existiert nicht, sodass in der WSL Umgebung ein eigenes lokales Benutzermanagement erfolgen muss. Schließlich fehlt auch die Kommunikation des Host-Betriebssystems mit der Docker Engine in der WSL Umgebung, sodass Portfreigaben händisch gesetzt werden müssen.
Fazit unserer Tests für diese Variante ist, dass das benötigte Linux-Server Know How sogar größer ist, als für den Betrieb eines vollwertigen Servers. Auch die Anzahl der komplexen Workarounds aufgrund der mangelnden automatischen Integration mit dem Windows Server Betriebssystem spricht gegen einen ernsthaften Produktivbetrieb von Airflow.
Im Vergleich der beiden aussichtsreichsten Varianten, Apache Airflow auf Windows Server Betriebssystemen zu installieren, gewinnt trotz zusätzlicher Lizenzkosten eindeutig der Weg über Docker Desktop. Ideal ist diese Variante trotzdem nicht, wirkt sie doch eher für den Test und die Entwicklung von System im Einzelbenutzermodus optimiert.
Aufgrund unserer langjährigen Erfahrung empfehlen wir auch Kunden mit Windows-Serverlandschaft den Betrieb von Apache Airflow auf einem nativen Linux-Betriebssystem. Die Integration von etablierten Distributionen wie Ubuntu, Red Hat Enterprise Linux oder OpenSuse mit Microsoft Active Directory Domänen geht mittlerweile leicht von der Hand. Identity Management und Zugriffskontrolle lassen sich so auch gut auf einen Linux-Server übertragen. Support für das Betriebssystem selbst gibt es bei vielen Anbietern als Dienstleistung; wir selbst bieten diesen Service gerne im Rahmen von Airflow Supportverträgen direkt mit an. Im Betrieb der Docker Engine von der Airflow Systemumgebung selbst entfallen viele Workarounds und ein stabiler Betrieb ist weltweit unzählige Male erprobt und bewiesen.
Wenn die Compliance auf keinen Fall einen Server mit Linux Betriebssystem in der hauseigenen Verantwortung zulässt, ist der Bezug von Apache Airflow als Cloud Service eine gute Alternative. Hier gibt es die schlüsselfertigen Angebote von Amazon Web Services (“Amazon Managed Workflows for Apache Airflow”, MWAA) oder Google Cloud Platform (“Cloud Composer”). Wenn die Anforderungen spezieller sind oder ein direkter Kontakt und kundennaher technischer Support gewünscht wird, betreiben wir von NextLytics auch gerne eine Airflow-Instanz auf der Infrastruktur Ihrer Wahl. Voraussetzung ist in jedem Fall eine Cloud Strategie und Definition von Datenschutzrichtlinien.
Apache Airflow auf Windows Server - Unser Fazit
Apache Airflow bietet als Orchestrierungsdienst für Data Warehouse und Business Intelligence Plattformen viele Vorteile, die auch von Unternehmen mit einer Windows-basierten Serverlandschaft gerne genutzt werden. Der Betrieb von Airflow direkt auf Windows Server Betriebssystemen ist grundsätzlich möglich, aber immer mit komplexen technischen Kniffen und/oder zusätzlichen Lizenzkosten verbunden.
Apache Airflow funktioniert am besten auf Linux-Servern oder direkt als Cloud Service und lässt sich auch in diesen Varianten in der Regel gut in Windows-Umgebungen integrieren. Wir beraten Sie gerne bei der Auswahl der besten Lösung - NextLytics möchte jedem die Möglichkeiten von Apache Airflow eröffnen.