#QConLondon

Spannende Talks auf der QCon 2019 in London

Steffen berichtet von der QCon.

Präsentation auf der QCon 2019
Präsentation auf der QCon 2019 (Bild: subshell/CC BY)

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.

Berichte aus der Praxis

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.

Organisation der QCon

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.

Interessant: Track "Architectures you've always wondered about"

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. Die San Francisco-Version ihres Talks findet sich hier: https://www.infoq.com/presentations/airbnb-soa-migration/.

Immer noch viel diskutiert: Microservice Architekturen

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.

Experimente mit Java

Besonders interessieren mich auf solchen Konferenzen Talks aus Bereichen, mit denen ich sonst keinerlei Berührungspunkte habe.

Visualisierung von Flugbahnen von Satelliten und Sonden

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.

Robotergetriebene Warenhäuser

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.

Zu wenig Kubernetes

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 sind die Aufzeichnungen zu fast allen Talks online verfügbar:

Praxisrelevant: "Writing Reliable End to End Tests"

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.

Fazit

Vermutlich war ich nicht das letzte Mal auf einer QCon.

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.

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.

Steffen Kuche
Steffen Kuche
05.04.19
Icon