JAX-Interview mit Felix Braun und Benjamin Wilms

„Jeder Entwickler sollte sich mit Frameworks wie Hystrix und Resilience-Pattern beschäftigen“

Redaktion JAXenter

Wer sich intensiver mit dem Netflix-Stack befasst hat, wird vielleicht schon einmal etwas von Hystrix gehört haben. In diesem Interview von der JAX 2016 erklären die beiden JAX-Speaker Felix Braun und Benjamin Wilms, was genau Hystrix ist und worauf man beim Einsatz achten sollte.

JAXenter: Euer Thema auf der JAX ist Hystrix. Könnt ihr den Lesern zunächst einmal kurz beschreiben, was Hystrix ist?

Braun / Wilms: Hystrix ist ein Java-Framework aus dem Netflix Open Source Stack: Die Entkopplung einzelner Services in verteilten Systemen ist die Kernaufgabe von Hystrix. Dies ermöglicht es, ein robustes und fehlertolerantes System aufzubauen.

JAXenter: Nun habt ihr zwei verschiedene Hystrix-Projekte aufgesetzt – worum ging es dabei?

Braun / Wilms Wir haben zwei sehr verschiedene Projekte ausgewählt: Anhand des ersten Projektes erzählen wir ein paar generelle Erfahrungen des Entwicklerteams und stellen einen “Integration-Day” vor, der mit Hilfe des Hystrix-Dashboard durchgeführt wurde. Anhand des zweiten Projekts gehen wir in technische Details. Ein Demo-Projekt-Setup kann danach von allen Session-Teilnehmern auf GitHub heruntergeladen werden. In der Demo simulieren wir ein paar Legacy-Backend-Services, die wir mit Hilfe eines Chaos Monkeys in Hysterie versetzen.

JAXenter: Im Talk ging es um Lessons Learned – kannst du vielleicht eine kleines Beispiel geben? Was sollte man bei der Arbeit mit Hystrix beachten?

Hystrix ist schnell eingebaut, aber es gibt doch eine gewisse Lernkurve, die man einplanen sollte.

Braun / Wilms: Hystrix ist schnell eingebaut, aber es gibt doch eine gewisse Lernkurve, die man einplanen sollte. Die Konfiguration zum Beispiel: Die Möglichkeiten der Konfiguration sind umfangreich. Der Ansatz von Netflix ist es, die Kommandos in der Standardkonfiguration zu starten und dann im Betrieb zu messen, beobachten und feinzujustieren. Dafür braucht man zwingend dynamische Konfiguration und jemanden, der das Hystrix-Dashboard im Auge behält.

Auch langfristig sollte man die Metriken von Hystrix überwachen und die sehr umfangreichen Informationen nicht ungenutzt lassen. So kann man zum Beispiel die Hystrix Streams, bzw. deren aggregierte Informationen, in Elasticsearch speichern und langfristig aus den Metriken lernen. Mit diesem Metrics-Thema könnte man alleine einen eigenen Talk füllen.

JAXenter: Wie ist denn aktuell der Entwicklungsstand bei Hystrix – an welchen neuen Features wird derzeit gearbeitet?

Braun / Wilms: Das aktuelle Hystrix-Release 1.5.x beinhaltet Erweiterungen im Bereich der Metriken. Die Metric-Streams werden auch unaggregiert angeboten und können dadurch deutlich flexibler konsumiert werden. Für Hystrix 2.0 ist das Update auf Java 8 geplant – das wird die Verwendung von Hystrix deutlich kompakter machen.

JAXenter: Worauf kam es Euch in Eurer Session besonders an?

Braun / Wilms: In komplexen verteilten Systemen sind Ausfälle und Fehler immanent; Systeme, die nicht fehlertolerant sind, werden keine zufriedenstellende User Experience bieten können. Daher sollte sich jeder Entwickler mit Frameworks wie Hystrix und den grundlegenden Resilience-Pattern beschäftigen. Der Einsatz von Hystrix sensibilisiert Entwickler beim Einbinden von externen Diensten über den möglichen Einfluss auf das eigene System nachzudenken.

braunFelix Braun ist Senior Agile IT-Consultant bei codecentric. Seine Schwerpunkte sind Microservices, cloud-native Architekturen und agile Entwicklung. Er kämpft gegen starre und unflexible Monolithen und für leichtgewichtige, agile Architekturen. In einem seiner letzten Projekte half er einer Berliner Firma, einen über 12 Jahre gewachsenen, Monolith in 13 Microservices aufzuteilen.
wilmsBenjamin Wilms ist IT-Consultant und Software Developer bei der codecentric und verfügt über langjährige Erfahrung in der Entwicklung von Java-Enterprise-Applikationen. Seine Schwerpunkte liegen dabei im Bereich Spring, REST und der Erstellung von modernen Webanwendungen auf Basis von Spring MVC oder Vaadin.

Verwandte Themen:

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: