SlideShare ist ein Scribd-Unternehmen logo
#WISSENTEILEN
Java EE meets Microservices
Microprofile 2.x to the Rescue
Lars Röwekamp
CIO New Technologies
@mobileLarson
@_openknowledge
#WISSENTEILEN
#WISSENTEILEN
ÜBER OPEN KNOWLEDGE
Branchenneutrale Softwareentwicklung & IT-Beratung
#WISSENTEILEN
ÜBER MICH
Wer bin ich - und wenn ja, wie viele?
• CIO New Technologies
• Enterprise & Mobile
• Autor, Speaker, Coach & Mentor
• Snowboard & MTB Enthusiast (a.k.a. “stets bemüht“)
Lars Röwekamp (a.k.a. @mobileLarson)
#WISSENTEILEN
Mein Freund der Microservice
#WISSENTEILEN
#WISSENTEILEN
Das geht
mit JEE?
#WISSENTEILEN
Technologisch?
Auf jeden Fall!
#WISSENTEILEN
Management Monitoring Availability Security
(* Java EE 7 APIs)
#WISSENTEILEN
Ok, das geht mit JEE.
Aber passt das auch?
#WISSENTEILEN
„Max cohesion, min coupling.“
JEE Business Component
Boundary Entity Control Pattern
je Service ein eigenes WAR
Kommunikation via REST
#WISSENTEILEN
#WISSENTEILEN
Unabhängig?
#WISSENTEILEN
JEE
#WISSENTEILEN
App Server?
#WISSENTEILEN
#WISSENTEILEN
Ich will meinen
Monolithen
zurück!
#WISSENTEILEN
Don‘t panic!
#WISSENTEILEN
Folks, we must talk …
#WISSENTEILEN
#WISSENTEILEN
„Just enough Server“
• Self-Contained Java Microservices (.jar)
• Java EE Komponenten on demand
• Embedded Servlet / Web Engine
• more to come …
Das geht mit Java EE?
JEE
#WISSENTEILEN
#WISSENTEILEN
Die Mission:
„An open forum to optimize Enterprise Java
for a microservices architecture by innovating
across multiple implementations and
collaborating on common areas of interest
with a goal of standardization.“
MicroProfile
#WISSENTEILEN
Brücke zwischen Community und Standard
• breite Kooperation von Herstellern
• Portabel zwischen Implementierungen
• Förderung von Experimentierfreudigkeit
• Risikominimierung
• zügige Innovationen
MicroProfile
#WISSENTEILEN
Der Weg in die MicroProfile Zukunft:
• Schritt 1: Den „Hebel“ Java EE nutzen
• Schritt 2: Organische Innovationen
• Schritt 3: Zusammenarbeit via Open Source
MicroProfile
(*aktuelle Planung: 2-4 Releases/Jahr)
#WISSENTEILEN
Q4
2016
Move to
(*MicroProfile 1.0: JAX-RS 2.0, CDI 1.2, JSON-P 1.0)
MP
v. 1.4 & 2.0
Q3
2018
MP
v. 2.2
Q1
2019
MP
v. 2.1
Q2
2017
MP
v. 1.1
Q2
2018
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Weniger ist mehr
#WISSENTEILEN
Was brauche ich mindestens um einen
Microservice auf Basis von Java EE APIs
implementieren zu können?
• JAX-RS 2.1
• CDI 2.0
• JSON-P 1.1
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
verteilte Konfigurationen
#WISSENTEILEN
Wie kann ich auf einheitliche Art und Weise
in meinen Services unterschiedlichste
Konfigurationsmechanismen nutzen?
• MicroProfile Config 1.3
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
MicroProfile Config 1.3
• Default ConfigSources*
System Properties, Env Vars & Config File
• Custom ConfigSources*
z.B. DB oder ConfigServer
• Startup vs. Laufzeit
ConfigProperty vs Provider
MicroProfile
*inkl. ordinal
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Wie geht‘s, wie steht‘s
#WISSENTEILEN
Wie kann ich auf einheitliche Art und Weise
den Health Status und weitere Metriken
meines Microservices abfragen?
• MicroProfile HealthCheck 1.0
• MicroProfile Metrics 1.1
MicroProfile
#WISSENTEILEN
MicroProfile HealthCheck 1.0
• M2M, e.g Kuberentes Liveness & Readiness
• terminate, shutdown, replace?
• Single HC Endpoint pro MP Runtime (/health)
• logisches UND (gesund, wenn alle gesund)
• REST/HTTP (andere optional z.B. JMX)
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
http://myHost.com:8080/health
*optional secured
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
MicroProfile Metrics 1.1
• deutlich mehr als nur UP/DOWN Info für
Scopes „base“, „vendor“, „application“
• Datentrends für Kapazitätsplanung
• Auslastung für automatisches Scalling
• proaktives Feststellen von Problemen*
MicroProfile
(z.B. Disk-Usage Anomalie)
#WISSENTEILEN
MicroProfile Metrics 1.1
• Pflicht- und Optional-Metrics
• Tags via Metric Description & Config API
• Metadaten (unit, type, description, …)
• Reusable Metrics (default ist false)
• JSON & Prometheus Format (mehr geplant)
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
https://myhost.com:9443/metrics/application/...
*A server SHOULD implement TLS encryption by default.
#WISSENTEILEN
MicroProfile Metrics 1.1
• @ Timer
• @ Counter
• @ Gauge
• @ Meter
• @ Histogram
MicroProfile
#WISSENTEILEN
Toleranz ist gefragt
#WISSENTEILEN
Wie kann ich mein System so aufbauen,
dass es auch bei temporäre Ausfälle und
Problemsituation einzelner Microservices
stabil läuft (a.k.a. Resilient)?
• MicroProfile Fault Tolerance 2.0
MicroProfile
#WISSENTEILEN
MicroProfile Fault Tolerance 2.0
• Business Logik um Fehlertoleranz erweitern
• Trennung der Logik von deren Ausführung
• Ausführung erlaubt Resilience Patterns
• CDI Interceptor als Mittel zum Zweck
• Hystrix/Failsafe als Vorbilder für Standard API
MicroProfile
#WISSENTEILEN
MicroProfile Fault Tolerance 2.0
• @Timeout
• @ Retry
• @ Fallback
• @ CircuitBreaker
• @ Bulkhead
MicroProfile
(Konfiguration via Config API möglich)
#WISSENTEILEN
#WISSENTEILEN
Fault Tolerance via @Retry und @Fallback
#WISSENTEILEN
Fault Tolerance via @Timeout und @Fallback
#WISSENTEILEN
Circuit
Breaker
#WISSENTEILEN
Circuit
Breaker
#WISSENTEILEN
Circuit
Breaker
#WISSENTEILEN
Fault Tolerance via @CircuitBreaker und @Fallback
#WISSENTEILEN
Bulkheads
#WISSENTEILEN
Bulkheads
#WISSENTEILEN
Bulkheads
#WISSENTEILEN
Fault Tolerance via @Bulkhead und @Fallback
#WISSENTEILEN
Sicher ist sicher! Sicher?
#WISSENTEILEN
Wie sichere ich meine Microservices gegen
unbefugten Zugriff ab OHNE dass bei jedem
Service eine neue Authentifizierung und
Authorisierung stattfinden muss?
• MicroProfile JWT Auth 1.1
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
MicroProfile JWT Auth 1.1
• Security Token aus Request extrahieren
• Validierung des Tokens vornehmen
• Claims aus Token extrahieren
• (JEE) Security Context erzeugen
MicroProfile
#WISSENTEILEN
MicroProfile JWT Auth 1.1
• type, alg, kid (header)
• iss, sub, exp, iat, jti, (payload IANA*)
• upn, groups (payload mp jwt auth)
• etliche optionale Claims
MicroProfile
(*Internet Assigend Number Authority)
#WISSENTEILEN
JWT Auth Step 1: MS als „requires MP-JWT“ markieren
#WISSENTEILEN
JWT Auth Step 2: Token / Claims injecten
#WISSENTEILEN
JWT Auth Step 3: Role-based Access Control hinzufügen
#WISSENTEILEN
Was geht ab?
#WISSENTEILEN
Wie lässt sich ein Request-Flow über
Servicegrenzen hinaus verfolgen?
• MicroProfile Open Tracing 1.3
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
MicroProfile Open Tracing 1.3
• verteiltes Tracing über Servicegrenzen hinweg
• Correlation ID als gemeinsamer Nenner
• OpenTracing Standard als Basis
• Achtung: KEIN eigener Tracing Service
sondern lediglich dessen Support
MicroProfile
#WISSENTEILEN
Tracing für JAX-RS Methoden aktivieren
#WISSENTEILEN
Tracing für einzelne Methoden deaktivieren
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Sesam öffne dich …
#WISSENTEILEN
Wie kann ich meine Microservices APIs
so dokumentieren, dass sie von anderen
verstanden und genutzt werden können.
• MicroProfile Open API 1.1
MicroProfile
#WISSENTEILEN
(Quelle: MicroProfile Open Api 1.0 Specifikation)
#WISSENTEILEN
MicroProfile Open API 1.1
• OpenAPI v3 Standard (abgeleitet von Swagger)
• Scan- und Annotationen-basiert (fast 50 @s)
• frei konfigurierbar (Scanpath etc.)
• mit YAML, JSON kombinierbar (in META-INF)
• Filter setzen via Config API
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Back to the Future
#WISSENTEILEN
(based on Java EE 8)
#WISSENTEILEN
Quelle: https://github.com/eclipse/microprofile/milestones/
#WISSENTEILEN
MicroProfile Ramp-Up
MicroProfile.io
bit.ly/MicroProfileForum
github.com/microprofile/microprofile-samples
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
„Ein Microservice
kommt selten allein!“
by Lars Röwekamp
#WISSENTEILEN
#WISSENTEILEN
„Komplexität
wird durch Microservices
verlagert, nicht verringert!
by Lars Röwekamp
#WISSENTEILEN
#WISSENTEILEN
„BFF“
Best Friends Forever!
#WISSENTEILEN
FRAGEN
? ? ?
#WISSENTEILEN
Kontakt
LARS RÖWEKAMP
CIO NEW TECHNOLOGIES
lars.roewekamp@openknowledge.de
+49 (0)441 4082 – 0
@mobileLarson
@_openknowledge
OFFENKUNDIGGUT
#WISSENTEILEN
Bildnachweise
#03 © Daniel Steger – openphoto.net
#06,17 © Andrew Rich – istockphoto.com
#15 © Netflix Techblock - techblog.netflix.com
#28 © print10 – istockphoto.com
#98 ©MichaelJayBerlin - shutterstock.com
All other pictures inside this presentation orginate
from pixabay.com or were created by my own.

Weitere ähnliche Inhalte

PDF
Microservices mit dem MicroProfile
PDF
Enterprise Java auf Diät
PDF
MicroProfile 2.x: Der alternative Standard
PDF
Java EE meets Microservices
PDF
Modern Lightweight Enterprise Architectures mit Java
PDF
Herausforderung „Multi-Channel“-Architektur
PDF
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
PDF
Microservices Migration: Vom Monolithen zu Microservices
Microservices mit dem MicroProfile
Enterprise Java auf Diät
MicroProfile 2.x: Der alternative Standard
Java EE meets Microservices
Modern Lightweight Enterprise Architectures mit Java
Herausforderung „Multi-Channel“-Architektur
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
Microservices Migration: Vom Monolithen zu Microservices

Ähnlich wie Java EE meets Microservices: MicroProfile 2.x to the Rescue (20)

PDF
Hilfe, ich will meinen Monolithen zurück!
PDF
App-Delivery-Pipeline
PDF
Java EE goes Microservices. Are you serious?
PDF
Microservices Architecture: Architektur und Patterns
PDF
Mobile- & Offline-First: Mehr als nur Buzzword-Bingo
PDF
Enterprise Java on Steroids
PDF
Die Matrix: Enterprise-Architekturen jenseits von Microservices
PDF
Token statt Cookies dank JWT (Java Land 2016)
PDF
Mehr Sicherheit durch Automatisierung
PDF
Offline-first Architekturen: Wer bitte braucht schon Internet
PDF
Herausforderung „Multi-Channel Architecture”
PDF
Anatomie von Microservice Landschaften
PPTX
Microprofile.io - Cloud Native mit Java EE
PPTX
Windows Azure Mobile Services
PPTX
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
PDF
Web APIs jenseits von REST & Request/Response
PDF
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
PPTX
micro services
PDF
BATbern41 Microservices@Enterprise
PDF
The Day after – nach dem Release ist vor dem Release
Hilfe, ich will meinen Monolithen zurück!
App-Delivery-Pipeline
Java EE goes Microservices. Are you serious?
Microservices Architecture: Architektur und Patterns
Mobile- & Offline-First: Mehr als nur Buzzword-Bingo
Enterprise Java on Steroids
Die Matrix: Enterprise-Architekturen jenseits von Microservices
Token statt Cookies dank JWT (Java Land 2016)
Mehr Sicherheit durch Automatisierung
Offline-first Architekturen: Wer bitte braucht schon Internet
Herausforderung „Multi-Channel Architecture”
Anatomie von Microservice Landschaften
Microprofile.io - Cloud Native mit Java EE
Windows Azure Mobile Services
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
Web APIs jenseits von REST & Request/Response
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
micro services
BATbern41 Microservices@Enterprise
The Day after – nach dem Release ist vor dem Release
Anzeige

Mehr von OPEN KNOWLEDGE GmbH (20)

PPTX
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
PDF
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
PDF
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
PDF
Der Spagat zwischen BIAS und FAIRNESS (2024)
PDF
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
PPTX
Nie wieder Log-Files!
PDF
Cloud-native and Enterprise Java? Hold my beer!
PPTX
From Zero to still Zero: The most beautiful mistakes going into the cloud.
PDF
API Expand Contract
PDF
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
PDF
Shared Data in verteilten Architekturen
PDF
Machine Learning mit TensorFlow.js
PDF
KI und Architektur
PDF
It's not Rocket Science: Neuronale Netze
PDF
Shared Data in verteilten Systemen
PDF
Business-Mehrwert durch KI
PDF
API-Design, Microarchitecture und Testing
PDF
Supersonic Java für die Cloud: Quarkus
PDF
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
PDF
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
Der Spagat zwischen BIAS und FAIRNESS (2024)
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
Nie wieder Log-Files!
Cloud-native and Enterprise Java? Hold my beer!
From Zero to still Zero: The most beautiful mistakes going into the cloud.
API Expand Contract
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Shared Data in verteilten Architekturen
Machine Learning mit TensorFlow.js
KI und Architektur
It's not Rocket Science: Neuronale Netze
Shared Data in verteilten Systemen
Business-Mehrwert durch KI
API-Design, Microarchitecture und Testing
Supersonic Java für die Cloud: Quarkus
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Anzeige

Java EE meets Microservices: MicroProfile 2.x to the Rescue