Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Legacy-Systeme mit Microservices, Hystrix und RxJava modernisieren

Holger Kraus
November 04, 2015

Legacy-Systeme mit Microservices, Hystrix und RxJava modernisieren

WJAX, 4.November 2015 in München

Als Softwareentwickler ist man nur sehr selten in der Situation, ein völlig neues System auf der Basis neuester Technologien entwickeln zu dürfen. Oft sollen bestehende Systeme nur um viele kleinere Features erweitert werden. Die Renovierung der grundlegenden Systemarchitektur und die Einführung neuer Programmierparadigmen ist in diesem Umfeld schwierig. Umso wichtiger ist es, dass man die Modernisierung von Altsystemen zu einem fortlaufenden Bestandteil auch des featuregetriebenen Entwicklungsprozesses macht. In diesem Vortrag möchten wir zeigen, wie auch größere, monolithische Altsysteme mithilfe der offenen Netflix-Bibliotheken schrittweise in Richtung einer Microservice-Achitektur weiterentwickelt werden können. Hystrix kann dabei einen wertvollen Beitrag zur Gesamtstabilität des entstehenden verteilten Systems leisten. Der Einsatz von RxJava ist eine gute Möglichkeit, den Anteil von asynchronen Prozessen innerhalb der Legacy-Architektur zu erhöhen. Der Vortrag wird anhand von Beispielen demonstrieren, wie der hier angedeutete Modernisierungsprozess umgesetzt werden kann.

Holger Kraus

November 04, 2015
Tweet

More Decks by Holger Kraus

Other Decks in Technology

Transcript

  1. Current problems > Maintenance is difficult > New features need

    a lot of time > Very unstable > Outdated technology > Doesn’t scale + frustrated developers :(
  2. Current problems > Maintenance is difficult > New features need

    a lot of time > Very unstable > Outdated technology > Doesn’t scale Microservices FTW ! not yet …
  3. Stability patterns > Timeouts > Circuit Breaker > Bulkhead …

    Fail Fast, Steady State, Handshaking, Test Harness, Decoupling Middleware
  4. Search Products 2. find external products 1. search products 3.

    find internal products 4. return internal + external products
  5. Current Problems > Maintenance is difficult > New features need

    a lot of time > Very unstable => enables further distribution > Outdated technology > Doesn’t scale
  6. Macro Architecture > Integration > Deployment > Formats > Protocols

    > Reduce Choices what’s the same for all boxes ? = API + UI = Docker = JSON = HTTP + AMQP = Java, Go Monozon: pick your own!
  7. Time for RxJava > Reactive Extensions for the JVM >

    Asynchronous streams > Elements of > Iterator pattern > Observable pattern > Functional programming
  8. Summary > Use Hystrix to stabilize your system! > Use

    RxJava to increase the amount of async/ parallel processes in an easy way! > Introduce Microservices to get control over your system again! > Have fun :)