Am Samstag, den 6. Juli, um 13 Uhr bei heißen 30°C fand unser neues Meetup in München statt. Wir setzten unser Programm aus den Meetup-Gruppen OC-Expert-Camp und München Coding Dojo dieses Mal mit einen spannenden Hackathon rund um die Big Data-Technologie Apache NiFi fort.
In der Münchner Niederlassung empfingen wir die Teilnehmer, unter denen sich sogar ein Kind befand, mit erfrischenden Getränken. Damit der Einstieg in NiFi so schnell und so einfach wie möglich erfolgte, gaben wir den Teilnehmer eine etwa 30-minütige Einführung in die wichtigsten Grundlagen der Technologie. Anschließend gruppierten sich die Teilnehmer in Teams und fanden sich in dem Use-Case, den wir uns für den Hackathon ersonnen hatten, in der Rolle eines Entwicklers für einen Online-Shop wieder. Ihre E-Commerce-Plattformen bekamen von uns durch Kafka-Topics Kundenbestellungen und bearbeiteten diese dann, um Lieferungen in einem weiteren Kafka-Topic zu produzieren. Für diese Prozedur nutzten sie Apache NiFi. Diese von der NSA entwickelte Technologie besitzt eine in Prozesse und Datenströme gegliederte Web-UI, die das Implementieren von Stream-Processing-Applikationen ermöglicht.
Ziel für die Teams war es den höchsten Gewinn zu erwirtschaften. Jede erfolgreiche Lieferung erhöhte den Umsatz. Was dabei echt tricky war: Manche Bestellungen kamen von Betrügern, die die Teilnehmer erstmal identifizieren mussten. Ansonsten wurde der Betrag dem Online-Shop vom Gewinn abgezogen. Die Teilnehmer waren mit Einsatz dabei und hatten viel Spaß bei der Entwicklung der „besten“ Lösung. Sie nahmen die Herausforderung dann schnell in die Hand und zeigten rasch gute Fortschritte. Als Energie-Booster versorgten wir die fleißigen Hacker mit Pizza und Getränken.
Die ersten Lieferungen gingen in unserem Kafka-Topic nach etwa einer Stunde ein. Allerdings wurden sie zunächst nicht von unserer Go-Applikation, die die Validierung verantwortete, akzeptiert – die Lieferungen brauchten nämlich ein bestimmtes Format. Dieses hatten wir natürlich in einer Dokumentation angegeben, doch anscheinend hatten die Teams sie nicht komplett gelesen „¦ 😉
An dieser Stelle haben wir bei uns noch Verbesserungspotential entdeckt: Es wäre schön, wenn die Teams die Möglichkeit gehabt hätten, zu sehen, wie die Lieferungen aus ihrem Shop aussehen. Dies würde insbesonder bei so einem kurzen Hackathon das Debugging erheblich erleichtern.
Dank unserer Metriken-Dashboards behielten die Teilnehmer (und auch wir :)) während der gesamten Zeit die Übersicht über die relevanten Kennzahlen wie etwa Gewinn, Verlust oder verbleibende Zeit. Die eingehenden Lieferungen trackten wir mit unserer App in Echtzeit. Sobald die erste Bestellung erfolgreich abgeschlossen wurde, sahen die Teams ihre Score in Bewegung:
Anhand dieser Metriken war es auch möglich, die Betrugsfälle zu identifizieren und so schnell wie möglich in NiFi auszusieben, damit nicht zu viel Geld verloren geht.
Der Endstand betrug schließlich 7,37 Millionen Euro Gewinn zu 0,89 Millionen Euro. Das Sieger-Team war zudem sehr schnell und setzte mit fast 30 Minuten Vorsprung ihr Minimal Viable Product um. Die Gewinner erhielten eine Siegerurkunde inklusive eines Einkaufsgutscheins für AWS.
Nach der Siegerehrung gaben wir den Hackern noch einen Blick hinter die Kulissen. Alle Applikationen hatten wir im Vorfeld auf AWS deployt, nachdem wir diese lokal programmiert hatten. Das hatte den Vorteil, einen stabilen, performanten und vor allem skalierbaren Big-Data Hackathon für viele Teilnehmer anzubieten. Es kamen viele unterschiedliche AWS-Services zum Einsatz, wie unten in der Architektur-Skizze gezeigt.
Die Vorbereitung für den Hackathon hat uns allen viel Spaß gemacht und wir haben viel dabei gelernt. Auch haben uns die Teilnehmer wertvolles Feedback zu unserer Veranstaltung gegeben, um den Hackathon beim nächsten Mal noch besser zu machen.
Aktuell arbeiten wir daran, das Aufbauen der AWS-Infrastruktur mit Terraform zu automatisieren, um die verschiedenen Installationen und Deployments zu erleichtern. Unser Ziel dabei ist den Hackathon möglichst einfach wieder zu veranstalten. So ist es denkbar ihn im Rahmen einer Schulung durchzuführen, bei einem Community Day oder bei einem Meetup in einer anderen Niederlassung. Hast du Interesse? Dann wende dich gerne an Pascal Humbert.
Wir bedanken uns sehr herzlich bei Nathalie Kirches für ihre freundliche Unterstützung beim Schreiben des Artikels.