„Microsoft“ verwendet es genauso wie „Uber“, „Airbnb“ analysiert mit ihm die Performance von über 40 Millionen Ereignissen pro Minute, und auch „Netflix“ vertraut ihm die Verarbeitung seiner drei Trillionen täglicher Events sowie 12 Petabytes an Daten an: Die Rede ist von der, in Berlin entwickelten, Real-Time-Data-Stream Processing Engine „Apache Flink”. Von Anomalie-Erkennung bei Cloud-Aktivitäten bis zur „intelligenten" Stadtverkehrsüberwachung, von Risikobewertung im Handel bis hin zu Performance- und Fehleranalyse für serviceorientierte Architekturen mit verteilten Tracing-Techniken – so unterschiedlich die Anwendungsmöglichkeiten von Apache Flink sind, haben sie doch eines gemeinsam: Es handelt sich dabei um Real-Time-Data-Streaming. „Klassische Datenbanken basieren auf dem Ansatz, dass Daten zunächst abgespeichert werden müssen, bevor Unternehmen rückblickend Einblicke durch Geschäftsanalysen gewinnen und entsprechende Maßnahmen ergreifen können“, erklärt Fabian Hueske, als Co-Founder des Startups „data Artisans“ für die Weiterentwicklung von Apache Flink zuständig. „Die Stream-Verarbeitung ist ein neues Paradigma in der Datenverarbeitung, bei dem kontinuierlich Ereignisse wie Finanztransaktionen, Website-Verhalten, Daten von IoT-Sensoren mit sehr geringer Verzögerung verarbeitet werden. Moderne Unternehmen können davon profitieren, weil sie in der Lage sind, unmittelbar auf diese Ereignisse zu reagieren, sobald sie generiert werden, also, wenn sie am kritischsten sind.“
Erfolgreicher Lückenfüller
Mit steigenden Datenmengen, immer komplexeren Prozessen und dem Übergang von einem produktzentrischen Geschäftsmodell zu einem kunden- und serviceorientierten Ansatz, der Agieren in Echtzeit notwendig macht, ist der Bedarf an Real-Time-Data-Streaming hoch. Bis zum Jahr 2025 soll der globale Markt für Streaming-Analytik ein Volumen von knapp 48 Milliarden Dollar erreichen, so der „Global Streaming Analytics Market Report 2018“. Das entspricht einer kontinuierlichen jährlichen Wachstumsrate von 35 Prozent zwischen 2017 und 2025. Systeme, die die Lücken zwischen klassischen Datenbanksystemen und Big-Data-Analyseframeworks füllen, sind gefragt. Zwar ist Apache Flink, der aus einem Ableger des 2009 gestarteten Forschungsprojektes „Stratosphere“ der „TU Berlin“ hervorgegangen ist, nicht der einzige dieser „Lückenfüller“. „Apache Flink weist jedoch die am schnellsten wachsende Akzeptanz unter vielen anderen Open-Source-Projekten auf“, freut sich Fabian Hueske zurecht, dass sich seine Technologie im wachsenden Data-Stream-Umfeld gegen Mitbewerber wie „Apache Kafka“ und „Apache Spark“ zunehmend durchsetzt. Der Grund dafür liegt für den Software Engineer auf der Hand: „Im Vergleich zu Apache Kafka und Apache Spark wurde Apache Flink als Stream-Processing-Framework mit hohem Durchsatz, geringer Latenzzeit und exakter Semantik entworfen und entwickelt“, erklärt er, „während andere Frameworks ihre Ursprünge in der Batch-Verarbeitung (Spark) oder der Speicherung und Verteilung von Nachrichten (Kafka) haben und später um die Fähigkeit der Datenstrom-Verarbeitung ergänzt wurden.“ Der quelloffene Streamprozessor zeichnet sich unter anderem dadurch aus, dass er Streaming-Daten fehlertolerant skalierbar für große Rechner-Pools speichert, und äußerst zuverlässig ist. Somit lassen sich Nutzerverhalten oder Finanztransaktionen mit sehr geringer Verzögerung zuverlässig und unmittelbar verarbeiten. Verschiedene Schnittstellen erlauben außerdem die Implementierung von Datenanalyseabläufen für unterschiedlichste Anwendungsfälle.
Lernen & Netzwerken
Wie vielfältig die Einsatzmöglichkeiten tatsächlich sind, das wurde Anfang September im Rahmen der seit 2015 alljährlich stattfindenden „Flink Foward“-Konferenz in Berlin deutlich unter Beweis gestellt. Zwei Tage lang versammelten sich Experten von Microsoft, Uber, ING oder Lyft sowie andere Anwender aus allen Bereichen, um ihre Erfahrungen und Anwendungsfälle von Apache Flink zu präsentieren und zu diskutieren. Um die 350 Entwickler, DevOps-Ingenieure, System- und Data-Architekten, Wissenschafter aus 28 Nationen kamen für die rund 50 Sessions zu Techniken und Anwendungsbeispielen zusammen. Bei der Konferenz, die in diesem Jahr bereits zum vierten Mal über die Bühne ging, wurden darüber hinaus Innovationen wie „data Artisans Streaming Ledger“ vorgestellt, die das Spektrum der Anwendungsfälle mit Apache Flink zusätzlich erhöht. „Mit der Einführung von Streaming Ledger als Teil der data-Artisans-Plattform können Stream-Processing Anwendungen erstellt werden, die mehrere verteilt gespeicherte Dateneinträge mit ACID-Garantien lesen und aktualisieren“, so Fabian Hueske, der auch als Veranstalter von Flink Forward fungiert, „damit sind erstmals die stärksten Konsistenzgarantien für Stream-Processing-Anwendungen verfügbar, die auch von den meisten (aber nicht allen) relationalen Datenbanken geboten werden.“ Neben diesen Sessions zu Techniken und Anwendungsbeispielen standen bei der zweitägigen Konferenz, die mittlerweile Ableger in Beijing und San Francisco hat, auch praktische Schulungen zum Einsatz der Lösung fürs Stream Processing sowie zur Datenanalyse in Echtzeit im Vordergrund.
Dass dabei das Netzwerken nicht zu kurz kam, versteht sich von selbst. Schließlich ist die heterogene, internationale Community ein essentieller Erfolgsfaktor der Open-Source-Plattform, die bereits zum zweiten Mal in Folge mit dem „Datanami Editors’ Choice Award for Top 5 Open Source Projects to Watch“ ausgezeichnet wurde. Durch ständige Weiterentwicklung sorgen die tausenden aktiven Community-Mitglieder dafür, dass die Erfolgsgeschichte von Apache Flink noch längst nicht zu Ende ist. Es gibt noch viel zu tun: „Wie auf der Flink Forward Berlin vorgestellt, wird die Apache Flink Community das Framework in Bezug auf Interoperabilität, Unterstützung für SQL auf Datenströmen, Skalierung und Robustheit weiterentwickeln“, weiß Fabian Hueske. Darüber hinaus werde die Unterstützung für SQL weiterentwickelt, um die Nutzergruppe von Apache Flink um Anwender mit SQL Kenntnissen zu vergrößern und den Implementierungsaufwand für viele häufige Anwendungsfälle zu reduzieren, plaudert der Software Engineer aus dem Nähkästchen. Auch die Vereinfachung des Umgangs mit verschiedenen Datenquellen – ob Echtzeit oder historische Daten – stehe auf der Agenda der Community. Dabei soll die Verarbeitung verschiedener Datenquellen und -formate aus demselben System möglich werden, während gleichzeitig bestehende Garantien und Semantiken beibehalten werden.
Eines ist klar: Die Landschaft von Data-Stream Processing ist auch in naher Zukunft nicht in Stein gemeißelt, sie entwickelt sich ständig weiter … flink forward.