Slide 1

Slide 1 text

EE Micro Fault Tolerance JUG Mainz, 24.01.2018

Slide 2

Slide 2 text

Tim Zöller Senior IT Consultant Seit 2014 bei ilum:e informatik ag in Mainz, vorher Softwareentwickler in der Chemieindustrie Ich wohne in Freiburg, vorher Mainz, vorher Remagen, vorher (bei) Koblenz Java begeistert seit 2008, Clojure-Fan seit 2015, Blockchain-Fanboy seit 2016 • Softwareentwicklung • Musik machen Interessen Über mich Clojure 40 % Business Process Management 80 % Java 90 % Architektur 70 % Blockchain 60 % Hallo! 2

Slide 3

Slide 3 text

Applikationen werden als Single-Jar ausgeliefert. Das aufwändige Konfigurieren von Application Servern sowie das deployment darauf entfallen Leicht Im Gegensatz zu Spring gibt es bei EE Microprofile keinen Vendor-Lock in. Das Projekt wird von der Eclipse Foundation geführt. Frei JEE Know How ist weit verbreitet unter Entwicklern. Der JEE Standard wird seit vielen Jahren benutzt um robuste Webanwendungen zu entwickeln. Standard EE Microprofile JEE (nicht nur) für Microservices EE M icro 3

Slide 4

Slide 4 text

• jax-rs • cdi-1.2 • jsonp-1.0 1.0 • mpConfig-1.0 1.1 • mpConfig-1.1 • mpFaultTolerance-1.0 • mpHealth-1.0 • mpMetrics-1.0 • mpJwt-1.0 1.2 • mpTracing-1.0 • mpOpenApi-1.0 • mpRestClient-1.0 • mpMetrics-1.1 • mpConfig-1.2 1.3 • jaxrs-2.1 • cdi-2.0 • jsonp-1.1 • jsonb-1.0 2.0 10/2016 08/2017 10/2017 01/2018 ????? TIMELINE Entwicklungsstand und Roadmap 4

Slide 5

Slide 5 text

Wer macht mit? Die größten Contributoren 5

Slide 6

Slide 6 text

Retry Versucht nach einem (definierten) Fehler einen erneuten Serviceaufruf. Maximale Retryanzahl, Intervallgröße und Art der Exception welche einen Retry auslöst kann festgelegt werden. Timeout Beschränkt die maximale Wartezeit, die für einen Service erlaubt ist. Dieser Wert kann konfiguriert werden. Fallback Definiert einen Fallbackhandler oder eine Fallbackmethode. Ist mit allen anderen Fault Tolerance Mechanismen kombinierbar, kann beispielsweise Fehlercodes oder Daten aus Caches besorgen. Circuitbreaker Schützt nach vordefinierten Regeln instabile Services. Einstellbar sind, bei welchem Anteil von nicht erfolgreichen Servicecalls der Service “offline” geschaltet wird, wie lange dieses Intervall dauert und unter welchen Bedingungen der Service wieder aktiviert wird. Bulkhead Beschränkt die maximale Anzahl gleichzeitiger Verbindungen gegen einen Service, um ihn vor Überlastung zu schützen. Die Anzahl der Verbindungen kann festgelegt werden. Fault Tolerance Mechanismen Recovery und Schutz von Services 6

Slide 7

Slide 7 text

Retry Denselben Call noch einmal versuchen 7

Slide 8

Slide 8 text

Timeout Begrenzung der Aufrufdauer 8

Slide 9

Slide 9 text

Fallback Ausweichszenario im Ernstfall 9

Slide 10

Slide 10 text

Circuitbreaker Schutz vor Überlastung 10

Slide 11

Slide 11 text

Bulkhead Begrenzung paralleler Calls 11

Slide 12

Slide 12 text

https://microprofile.io Offizielle Webseite des Eclipse Projekts. Informationen zur Roadmap, aktuellen Releases, Dokumentation und Spezifikation. https://openliberty.io Webseite des Open Liberty Projekts, mit vielen Tutorials und Ressourcen zur Verwendung von MicroProfile, Informationen zur Roadmap, Dokumentation und Spezifikation. http://wildfly-swarm.io Webseite des Wildfly Swarm Projekts, mit Beispielen und einem Dependency Generator für neue Swarm Projekte. https://www.payara.fish/payara_micro Webseite für Payara Micro, inklusive Guide “Demystifying Microservices for Java EE Developers” Links und RessourceN … falls ihr euch alles noch mal in Ruhe ansehen wollt 12

Slide 13

Slide 13 text

https://github.com/javahippie/FaultToleranceTest Beispielprojekt auf Github Zum Nachvollziehen und spielen 13

Slide 14

Slide 14 text

Vielen Dank! Fragen später nach dem Vortragsblock 14