Apache Kafka: Architektur und Einführung – Keynote von Ben Stopford
Im Jahr 2006 kam das Agile Manifest gerade ins Kindergartenalter: Es wurde gerade fünf Jahre alt. Die Agile Software-Entwicklung gelangte zur Blüte. Der junge Ben Stopford arbeitete bei ThoughtWorks, dem Unternehmen, für das auch Martin Fowler seit 1999 tätig war und in dem dieser 2001 Chef Scientist wurde. Stopford entwickelte dort Software in einem Projekt, das Dave Farley leitete, ein energischer und fröhlicher Mensch, dessen Wesen das Projekt maßgeblich prägte. Es ging um eine relativ standardisierte, mittelgroße Unternehmensanwendung: Ein Webportal, über das Kunden verschiedene Transportdienstleistungen anfordern konnten. Das System führte danach einige synchrone und asynchrone Prozesse aus, um die Anforderungen in die Tat umzusetzen.
In diesem Projekt gab es eine ganze Reihe recht spannender Elemente. Was Stopford aber wirklich faszinierte, war die Art, wie die Dienste kommunizierten. Es war das erste System, an dem er entwickelte, das ausschließlich auf Ereignissen basierte. Nachdem er zuvor mit einigen service-orientierten Systemen zu tun hatte, die alle mit RPCs (Remote Prozedure Calls) oder Request-Response-Messaging arbeiteten, fühlte sich dieses System ganz anders an: Diese Services erzählten mit ihrem Ereignisstrom und ihrer Bewegung von Daten eine Geschichte.
LinkedIn: Vom Monolithen zu Microservices
LinkedIn kennt nahezu jeder. Dass das Unternehmen einiges an Schmerzen zu verkraften hatte, als es sich von seiner ursprünglich monolithischen Java-Anwendung zu 800 - 1.100 Diensten entwickelte, wissen nur wenige. Komplexe Abhängigkeiten führten zu Instabilität, Probleme bei der Versionierung verursachten schmerzhafte Lockstep-Releases. Anfangs war nicht klar, dass die neue Architektur tatsächlich eine Verbesserung darstellte. LinkedIn suchte einen neuen Ansatz unter Verwendung eines im Hause gebauten Nachrichtensystems: Kafka war geboren! Entwickelt wurde der neue Stream-Prozessor von Jay Kreps, Neha Narkhede und Jun Rao. Jay Kreps ist Autor einiger Open-Source-Software, darunter Apache Kafka, Apache Samza, Voldemort sowie Azkaban. Die Passion seiner Kollegin Neha Narkhede sind Konzeption und Bau hochskalierbarer Datensysteme. Auch Jun Rao hat sich auf verteilte System und Datenbanken spezialisiert. Er arbeitete an Apache Kafka und Apache Cassandra.
Kafka fügte der Architektur ein asynchrones Publish-Subscribe-Modell hinzu, das den Transport von Milliarden Nachrichten pro Tag im Unternehmen ermöglichte. Dies war für ein Unternehmen im extremen Wachstum wie LinkedIn enorm wichtig: Neue Anwendungen konnten jederzeit angeschlossen werden, ohne dass fragile Netz der synchronen Interaktionen im Frontend zu stören.
Kafka wird Open Source
Kafka wurde Ende 2010 als Open-Source-Projekt auf GitHub veröffentlicht. Da es in der Open-Source-Community zunehmend Beachtung fand, wurde es im Juli 2011 als Incubator Project der Apache Software Foundation vorgeschlagen und kurze Zeit später akzeptiert. 2012 wurde Kafka dann Teil der Apache Software Foundation.
Im Herbst 2014 verließen Jay Kreps, Neha Narkhede und Jun Rao LinkedIn, um Confluent zu gründen. Das Unternehmen konzentriert sich nun auf Entwicklung, Support und Training rund um Apache Kafka. Im August 2015 stieß Ben Stopford zu Confluent.
Inzwischen ist Apache Kafka ein hoch-skalierbares Nachrichtensystem und es gibt ein ganzes Ökosystem rund um Kafka. Die Open-Source-Software wird heute in einigen der größten Datenpipelines der Welt eingesetzt und agiert als verteiltes System, das skalierbar und fehlertolerant und somit für Big-Data-Anwendungen geeignet ist.
Apache Kafka: Take only the data you need, nothing more
"The Future of Applications is Streaming" sagte Ben Stopford in seiner Keynote bei den IT-Tagen 2018 in Frankfurt am Main. Der smarte Brite entwickelte am Core von Apache Kafka mit. Heute ist er bei Confluent tätig. Das Unternehmen steht hinter Kafka und treibt dessen Weiterentwicklung voran. Es supportet Kafka-Nutzer und schult Anwender.
In seiner Keynote während der IT-Tage zeigte Ben Stopford, wie in Zukunft über Streaming-Plattformen ermöglicht wird, event-getriebene Daten in Echtzeit auszutauschen. Er erläutert die Motivation für diese Neuerungen, zeigt die Internals von Streaming-Plattformen wie Apache Kafka sowie Use-Cases, für die dieses Modell gut geeignet ist. Seine Keynote kann man hier im Kanal der Informatik Aktuell sehen.
Im Anschluss an seine Keynote gab der Buchautor von "Designing Event Driven Systems" zudem eine Signierstunde direkt am Ausstellungsstand von Confluent. Confluent verloste zudem an seinem Stand jeden Tag fünf Exemplare von "Kafka: The Definitive Guide: Real-time data and stream processing at scale". Dessen Autoren wissen, worüber sie schreiben: Neha Narkhede ist Mitbegründerin und CTO bei Confluent. Zuvor war sie für die Streams-Infrastruktur bei LinkedIn verantwortlich, die auf Apache Kafka und Apache Samza aufgebaut war. Sie ist eine der ersten Autoren von Apache Kafka, zudem Committer und PMC-Mitglied des Projekts. Ihre Co-Autorin Gwen Shapira ist Systemarchitektin bei Confluent und hilft Kunden bei der Implementierung von Apache Kafka. Sie hat 15 Jahre Erfahrung in der Arbeit mit Code und Kunden, um skalierbare Datenarchitekturen aufzubauen und relationale Technologien und Big-Data-Technologien zu integrieren. Auch Todd Paliono ist Entwickler, unter anderem des Open-Source-Projekts Burrow, eines Tools zur Überwachung von Verbrauchern von Kafka, und teilt sein Know-how zu Apache Kafka auf Konferenzen und Meetups.
Confluent, das Unternehmen hinter Apache Kafka
Das Unternehmen Confluent wurde von dem Team gegründet, das Apache Kafka bei LinkedIn entwickelt hat. Kafka zeigt dabei eine hohe Verarbeitungsgeschwindigkeit und bietet Konnektoren zur Datenintegration sowie ein Framework für Stream-Verarbeitung. Inzwischen ist Kafka eine der zentralen Komponenten in modernen, event-getriebenen Systemarchitekturen und in der Kommunikation von Microservices.
Die Open-Source-Version bietet eine Vielzahl von Clients und Konnektoren sowie einen REST-Proxy. Die per Subskription erhältliche Enterprise-Variante bietet zusätzliche Enterprise Features wie ein GUI-gestütztes Control Center, dynamisches Loadbalancing, Multi-RZ-Replikation und weitere Sicherheitsfunktionen. Dazu gibt es auch direkten Support durch Confluent.
Der Stand von Confluent war während der IT-Tage dementsprechend gut besucht. Zudem gab es am Vorabend der Konferenz, am Montag, ein Meetup zu Kafka.
IT-Tage: Konferenz für Software-Architektur, Entwicklung, Betrieb
Die IT-Tage als Konferenz für Software-Architektur, Entwicklung, IT-Betrieb und DevOps geben umfassende Informationen: Sie bietet zu allen Themen rund um Architekturen, Software-Entwicklung und IT-Betrieb eigene Thementage.
Die Jahreskonferenz des Fachmagazins Informatik Aktuell findet traditionell in der zweiten Dezemberwoche in Frankfurt am Main statt. Der Termin für 2019 steht bereits fest: 9. bis 12. Dezember 2019 im Kongresshaus Kap Europa in Frankfurt am Main. Weitere Informationen zu den IT-Tagen finden Sie hier:
Der Call for Papers (CfP) der nächsten Konferenz wird voraussichtlich am 12. März 2019 geöffnet. Die Teilnehmer-Anmeldung wird ab dem Frühjahr verfügbar sein. Das Programm der Konferenz wird Anfang Juni veröffentlicht. Und im Dezember sehen wir uns dann im Kongresshaus Kap Europa in Frankfurt!
AH
Sie möchten zukünftig per Newsletter der Informatik Aktuell informiert werden? Hier können Sie sich anmelden.