Spannende Talks auf der QCon 2019 in London

05.04.2019

Die QCon ist eine internationale Konferenz für Software-Entwickler, die von den Machern von infoq.com veranstaltet wird. Sie findet jährlich in sechs Städten rund um den Globus statt. Im März 2019 war ich in London dabei – drei Jahre nach meinem ersten Besuch 2016.

Webclient Upload

Bildquelle*

Das Hauptmerkmal der QCon besteht darin, dass alle Speaker von ihren praktischen Erfahrungen berichten. So berichtet Ron Pressler, Technical Lead von Oracle, von "Project Loom", ein neues leichtgewichtiges Threading Model für Java. Solche Talks bieten einen Einblick in die aktuellen Entwicklungen von Java und das direkt von den treibenden Kräften, die die Sprache voranbringen.

Jede QCon dauert fünf Tage. An den ersten drei Konferenztagen gibt es jeweils acht Tracks mit je sechs Talks, an den beiden anderen Tagen finden Workshops statt. In einem Track wird ein Thema aus mehreren Perspektiven beleuchtet. Der Track "Architectures you've always wondered about" war in einer ähnlichen Form bereits 2016 dabei – und auch 2019 wieder interessant. Zum Beispiel berichtete hier Jessica Tai von Airbnb über deren Migration hin zu einer Microservice Architektur. Generell waren Microservice Architekturen wieder ein viel diskutiertes Thema auf der QCon. Ein Fokus lag auf den Themen Traceability und Observability – und das, obwohl Microservices laut den InfoQ "Architecture and Design Trends 2019" schon in der "Late Majority" Phase angekommen sind.

Besonders interessieren mich auf solchen Konferenzen Talks aus Bereichen, mit denen ich sonst keinerlei Berührungspunkte habe. So zum Beispiel der Vortrag "Otherworldly Java: Gateway to the Moon and Beyond von Diana Davis. Hier stellt sie das auf JavaFx basierende Tool Deep Space Trajectory Explorer vor, das es ermöglicht, Flugbahnen von Satelliten und Sonden zu visualisieren. So lässt sich die optimale Flugbahn innerhalb eines sehr großen Lösungsbereichs bestimmen.

Die QCon 2019 in London

Sehenswert war auch der Talk von Matthew Cornford. Er berichtete von den neuen robotergetriebenen Warenhäusern von Ocado, einem britischen Online-Supermarkt. Hierbei handelt es sich nicht mehr um klassische Hochregallagerhallen, sondern um ein riesiges Grid-System, auf dem würfelartige Roboter hin und her fahren und über mehrere Etagen die Einkaufskörbe zusammenstellen. Dabei greifen die Robotor über mehrere Etagen unterhalb des Grids in Körbe und sammeln so die einzelnen Artikel. Sowohl die Roboter als auch die zentrale Koordinierungsstelle, die z.B. für die optimale Wegberechnung zuständig ist, werden mit Java gesteuert. Besonders überraschend fand ich hier, dass die zentrale Koordinierungseinheit, die pro Roboter mehrere Anfragen pro Sekunde bearbeitet, single threaded in einer busy loop läuft. Das hat sich bei Ocado im Benchmark mit alternativen Ansätzen als die performanteste Lösung herausgestellt. So ist es möglich, mit einer sehr geringen Latenz auf Events zu reagieren. Die 100% CPU Auslastung nehmen sie dabei in Kauf.

Bei allen ScheduledThreadPoolExecutoren und L-Max Disruptoren und sonstigen ausgefeilten Lösungen, die es für Event-Verarbeitungen gibt, finde ich die busy loop überraschend. Das fanden übrigens auch die Ocado-Entwickler, als sie die Benchmarks ausgewertet haben. Bei der Entscheidungsfindung kam ihnen da Donald Knuth mit dem Zitat "Premature optimization is the root of all evil" gerade recht.

Etwas schade fand ich, dass es nicht so viel zu Kubernetes gab. Leider fand parallel zu den beiden Kubernetes-Talks "Powering Flexible Payments in the Cloud With Kubernetes" und "Develop Hundreds of Kubernetes Services at Scale With Airbnb" noch spannendere Veranstaltungen statt, zu denen ich lieber gegangen bin. Zum Glück werden ab Juni unter dem Link https://www.infoq.com die Aufzeichnungen zu fast allen Talks online verfügbar sein.

Wie das immer so ist, waren auch ein paar Talks dabei, die so allgemein gehalten waren, dass nicht viel rübergekommen ist, und auch einige, die extrem speziell waren und ohne den nötigen Hintergrund in genau jenem speziellen Problem auch nicht viel gebracht haben.

Auch, wenn nicht jeder Talk so inspiriert, ist die QCon super, um über den Tellerrand zu schauen und sich mit den aktuell heißen Themen zu beschäftigen.

Der praxisrelevanteste Talk war für mich "Writing Reliable End to End Tests" von Zabil Cheriya Maliackal, der für Thoughtworks das End to End Testing Tool gauge entwickelt. Hier war spannend zu sehen, dass gauge genau die Probleme lösen möchte, die auch wir bei subshell mit unseren bisherigen End-to-End-Tests für den Webclient mit Protractor hatten. Diese waren für uns so gravierend, dass wir diese Tests letztlich sogar aufgeben mussten. Seitdem sind wir auf der Suche nach alternativen Ansätzen. gauge ist da ein vielversprechender Kandidat.

Vermutlich war ich nicht das letzte Mal auf einer QCon. Besonders angenehm ist, dass die Veranstaltung gut organisiert ist und sich die Marketing-Attacken von diversen Unternehmen, die sich üblicherweise auf solchen Konferenzen tummeln, sehr in Grenzen halten.

Zum Schluss noch ein Tipp: Der infoq-Podcast ist inhaltlich einfach gut und lässt sich super nebenbei hören.

*Bildquelle: pexels.com, als gemeinfrei gekennzeichnet, Details auf Creative Commons

Webclient Upload

Steffen Kuche