Microservices mit Java EE - am Beispiel von IBM Liberty

Michael Hofmann
Michael HofmannSoftware Architect
Microservices mit Java EE
am Beispiel von IBM Liberty
ARS Computer und Consulting GmbH
Michael Hofmann, Senior Softwarearchitekt
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
2
Agenda
Microservices – ein paar wichtige Charakteristika...
Microservices – mit Java
Microservices – mit Java EE
Microservices – mit Java EE und IBM WAS Liberty
Microservices – mit Java EE (Ausblick)
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
3
IBM Redbook: „Microservices Best Practices for Java“
Motivation:
Firmen mit Java EE Entwicklung wollen
Microservices nutzen
Anfänglich wenig Literatur zu Microservices
mit Java, die “roten Faden” aufzeigt
Noch weniger Literatur zu Microservices mit
Java EE
Ziel:
Microservices mit Java und Java EE von
Erstellung bis Produktion
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
4
Microservices – ein paar wichtige Charakteristika...
Polyglot Persistence (SQL, NoSQL)
Keine Transaktionen über Microservice-Grenzen hinweg (Messaging-
System)
Hoher Verteilungsgrad
 Kommunikation zwischen Microservices (Resilience, Latenz)
 Erhöhter Testaufwand (Verteilungsgrad, Schnittstellen)
Refactoring über Microservices-Grenzen hinweg
Hohe Ansprüche an Betriebsführung
 Packaging, Deployment und Konfiguration
 Logging von Aufrufverläufen zwischen Microservices
 Monitoring
 Unabhängige Skalierbarkeit
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
5
Agenda
Microservices – nur ein paar wichtige Charakteristika...
Microservices – mit Java
Microservices – mit Java EE
Microservices – mit Java EE und IBM WAS Liberty
Microservices – mit Java EE (Ausblick)
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
6
Microservices – mit Java (1|3)
Polyglot Persistence (SQL, NoSQL)
 SQL
 Java Persistence API (EclipseLink, Hibernate, …), Spring JDBC (JDBC Template), …
 NoSQL
 Spring Data (MongoDB, Neo4J, Elasticsearch, Solr, Redis, Gemfire, Couchbase, Cassandra)
 EclipseLink (JPA Support für MongoDB und Oracle NoSQL (weitere werden folgen))
Messaging-Systeme
 Java Messaging System (JMS) Client
 AMQP
 Spring AMQP, RabbitMQ mit eigenem Java Client
 MQTT
 Eclipse Paho MQTT Client
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
7
Microservices – mit Java (2|3)
Hoher Verteilungsgrad
 Kommunikation zwischen Microservices (Resilience, Latenz)
 CircuitBreaker
 Netflix Hystrix
 Erhöhter Testaufwand
 Consumer-driven Contract Testing
 JUnit, JMockit, Mockito, REST Assured
 Netflix SimianArmy (z.B. ChaosMonkey)
 Amalgam8
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
8
Microservices – mit Java (3|3)
Refactoring über Microservices-Grenzen hinweg
 Nicht Java spezifisch, wird aber erleichtert wenn kein polyglot programming vorliegt
 Keine Neuimplementierung von Business Code in anderer Sprache notwendig
 Durchlässigkeit der Entwickler zwischen den Teams höher
 Rad wird in jedem Microservice mit anderer Programmiersprache neu erfunden (Logging, Log-
Format, Security, Utils, ...)
 Entwicklerrichtlinien sind möglich
 Templates für die Erstellung von Microservices sind möglich
 Deployment wird vereinfacht, da es sich immer um ein identisches Deployment-Artefakt
handelt
 Leichtere Betriebsführung wenn identische Systeme verwendet werden (einheitliche Probleme,
einheitliches Skripting, einheitliches Patching, ...)
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
9
Agenda
Microservices – nur ein paar wichtige Charakteristika...
Microservices – mit Java
Microservices – mit Java EE
Microservices – mit Java EE und IBM WAS Liberty
Microservices – mit Java EE (Ausblick)
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
10
Microservices – mit Java EE (1|6)
Hohe Ansprüche an Betriebsführung
 Packaging, Deployment und Konfiguration
 Als singuläres ausführbares JAR File
 Spring Boot (Tomcat, Jetty, Undertow)
 Wildfly Swarm (JBoss)
 IBM WebSphere Liberty
 Alle 3 Varianten
 Anwendung zusammen mit
 externer Konfiguration (immutable artifact) und
 notwendiger Runtime (Servlet-Container/Java EE Server)
 in minimalisierter Form
 ergänzt um Funktionen für Metrics und Health Care
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
11
Microservices – mit Java EE (2|6)
Hohe Ansprüche an Betriebsführung
 Packaging, Deployment und Konfiguration
 Minimalisierung
 Spring Boot über Dependency Management (Maven, Gradle)
 Wildfly Swarm und Liberty
 Anwendung analog Spring Boot (Maven, Gradle)
 Zusätzlich Minimalisierung der notwendigen Java EE Runtime
(Analyse der verwendeten Java EE APIs im enthaltenen EAR/WAR)
 Beispiel anhand IBM WAS Liberty (exemplarisch):
 wlp/bin/server package <serverName> --include=minify,runnable --archive=<fileName>.jar
 java -jar <fileName>.jar
 JAR ca. 50-60MB für umfangreiche Anwendung mit versch. Java EE Frameworks
 Liberty Kernel: ca. 11MB
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
12
Microservices – mit Java EE (3|6)
Hohe Ansprüche an Betriebsführung
 Logging von Aufrufverläufen zwischen
Microservices
 Bei dynamischer Provisionierung können Logs
durch Vernichtung der VM verloren gehen
 Guter Ansatz: Elastic Stack (ELK-Stack)
 Log-Auswertung über Microservice-Grenzen
hinweg notwendig
 einheitliches Log-Format und Log-Level
 Erstellung einer Correlation-ID mit UUID
<featureManager>
<feature>
logstashCollector-1.0
</feature>
</featureManager>
<logstashCollector
source=
"message,trace,garbageCollection,ff
dc,accessLog"
hostName="localhost"
port="5043„
sslRef="mySSLConfig"
/>
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
13
Microservices – mit Java EE (4|6)
Hohe Ansprüche an Betriebsführung (am Beispiel WAS Liberty)
 Monitoring mit grundsätzlichem Wirkprinzip:
 Bei welchem Schwellwert wird welche Aktion auf welches Target ausgeführt
 Monitoring (healthManager-1.0/healthAnalyzer-1.0)
 Maximaler Prozentsatz an Request-Timeouts
 Maximale Response-Zeit
 Exzessive Speichernutzung (% von max. Heap-Size über gewissen Zeitraum)
 Potentielle Memory-Leaks
 Führen zu folgenden automatischen Aktionen
 Server Neustart
 Erzeugung Heap oder Thread Dump
 Server zwischen Maintenance Mode hin- und herschalten
 Auf folgenden Targets: Host, Cluster oder Server
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
14
Microservices – mit Java EE (5|6)
Hohe Ansprüche an Betriebsführung (am Beispiel WAS Liberty)
 Weitere Monitoring Möglichkeiten (monitor-1.0)
 Sammelt Performanz-Daten zur Laufzeit
 Zur Abfrage mittels JMX oder REST
 Weiteres Feature: adminCenter-1.0 zur Web-Anzeige von
 used heap memory
 loaded classes
 active JVM threads
 CPU usage
 and other metrics, depending on the resource
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
15
Microservices – mit Java EE (6|6)
Unabhängige Skalierbarkeit
 Liegt in der Architektur der Microservices
 Kommt aber erst voll zum Tragen, wenn das System von Microservices
automatisch skaliert (autoscaling, dynamic provisioning)
 Nachteil einer statischen Provisionierung
 Anzahl Microservice Instanzen ausgelegt auf peak load (wie oft tritt dieser pro Zeitraum
auf?)
 Microservice Instanzen müssen permanent laufen (load < 10%)
 und mit ihnen die Hosts auf denen sie betrieben werden
 Verschwendung von Speicher, CPU, Energie, Betriebskosten und evtl. Lizenzkosten
 Spring Boot und Wildfly Swarm verlassen sich hier auf die Infrastruktur
(Virtualisierung, Container, Cloud)
 IBM WebSphere Liberty bietet darüber hinaus eigene Zusatzdienste an
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
16
Agenda
Microservices – nur ein paar wichtige Charakteristika...
Microservices – mit Java
Microservices – mit Java EE
Microservices – mit Java EE und IBM WAS Liberty
Microservices – mit Java EE (Ausblick)
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
17
Microservices – mit Java EE + IBM WAS Liberty (1|6)
IBM WAS Liberty Features zur Unterstützung von Microservices
Skalierung
 Schnelle Startzeit
 Liberty startet in <5s (Features werden über OSGI bei Bedarf geladen)
 Geänderte Konfiguration zur Laufzeit nachgeladen und angewandt
 Geringer Arbeitsspeicher-Bedarf
 weniger als 60MB für typische Web-Anwendung
 IBM bietet Support für Liberty im Docker Container
 Liberty Collectives und Cluster mit Autoscaling und Dynamic-Routing
 bei Lastspitzen werden automatisch neue Server gestartet/beendet
 und zugleich beim HTTP-Server registriert/deregistriert
Automatische Skalierung im Liberty mit Bordmitteln möglich
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
18
Microservices – mit Java EE + IBM WAS Liberty (2|6)
IBM WAS Liberty Collective
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
19
Microservices – mit Java EE + IBM WAS Liberty (3|6)
IBM WAS Liberty Collective mit Dynamic Routing
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
20
Microservices – mit Java EE + IBM WAS Liberty (4|6)
IBM WAS Liberty Features zur Unterstützung von Microservices
Skalierungsbeispiel:
 10.000 Members in 50 VMs, somit ~200 Members pro VM
 5 Collective Controllers in eigenen VMs jeweils: 20GB RAM mit 6 CPUs
 Member VM: 64GB RAM mit 16 CPUs (d.h. ~ 320MB RAM pro Member)
 Richtlinie: ca. 50 Hosts pro Collective Controller
 Applikationen pro Server:
 Eine Applikation pro Server: Single Failure, einfaches Tunen der Applikation
 Mehrere Applikationen pro Server: Amortisation der Server Runtime, kleinere Topologie
möglich
 Fazit: „configure as much isolation as you can afford“
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
21
Microservices – mit Java EE + IBM WAS Liberty (5|6)
IBM WAS Liberty Features zur Unterstützung von Microservices
Liberty elasticity
 Scaling Controller kann Liberty Software auf vorher registrierten Host installieren
und neue Liberty Server bei Bedarf dort erstellen
 Minimales Installationspaket: Liberty Server mit Anwendung (entsprechend
vorheriger Packaging Empfehlung)
 Mehrere Member auf einem Host „wählen“ Host Leader, der als Vertreter mit dem
Scaling Controller kommuniziert
 Host Leader misst Workload des Host und der anderen Member und informiert
Scaling Controller
 Host Leader informiert Member auf seinem Host über Skalierungs-entscheidungen
des Scaling Controllers
 Polyglot Environments: Collective Controller verwaltet:
 StrongLoop Server
 Liberty Server
 Liberty Docker Container
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
22
Microservices – mit Java EE + IBM WAS Liberty (6|6)
<server description="controllerServer">
<featureManager>
<feature>collectiveController-1.0</feature>
<feature>scalingController-1.0</feature>
<feature>dynamicRouting-1.0</feature>
</featureManager>
<collectiveController>
Definition Replica mit allen Controllern
</collectiveController>
<scalingDefinitions>
nach welcher Policy soll wie verfahren werden
</scalingDefinitions>
<dynamicRouting>
Routinginfo wie/wie oft an HTTP-Server
</dynamicRouting>
<server description=„memberServer">
<featureManager>
<feature>collectiveMember-1.0</feature>
<feature>scalingMember-1.0</feature>
<feature>clusterMember-1.0</feature>
</featureManager>
<collectiveMember>
Connect-Info zu Controller
</collectiveMember>
<clusterMember>
Clustername definiert Zugehörigkeit
</clusterMember>
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
23
Agenda
Microservices – nur ein paar wichtige Charakteristika...
Microservices – mit Java
Microservices – mit Java EE
Microservices – mit Java EE und IBM WAS Liberty
Microservices – mit Java EE (Ausblick)
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
24
Microservices – mit Java EE (Ausblick)
http://MicroProfile.io
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
28
Diskussion und Fragen
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
29
Kontaktinformationen
Für Fragen und weitere Informationen stehe ich Ihnen gerne
zur Verfügung:
Michael Hofmann
michael.hofmann@ars.de
+49 89 32468-2075
ARS Computer und Consulting GmbH
Ridlerstraße 37
80339 München
www.ars.de
© ARS Computer und Consulting GmbH 2016
Microservices mit Java EE
30
ARS Computer und Consulting GmbH
ARS Computer und Consulting GmbH ist ein traditionsreiches
IT- und Beratungshaus mit Hauptsitz im Herzen der
bayerischen Landeshauptstadt München.
Mit der Erfahrung seit 1992 unterstützt ARS Kunden bei der
Lösung individueller, komplexer, fachlicher und technischer
Herausforderungen.
Dabei steht der Erfolg der Kunden im Mittelpunkt.
Werthaltig arbeiten, Werte schaffen
– in einer vertrauensvollen Geschäftsbeziehung.
Die Basis dafür bilden die vielfältigen
ARS Beratungs- und Lösungskompetenzen
sowie das tief-technische Know-how.
1 of 27

Recommended

Citrix Fit4Cloud Reihe: Citrix XenServer in der Cloud by
Citrix Fit4Cloud Reihe: Citrix XenServer in der CloudCitrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
Citrix Fit4Cloud Reihe: Citrix XenServer in der CloudDigicomp Academy AG
813 views46 slides
Amazon Web Services: Flaggschiff des Cloud Computings by
Amazon Web Services: Flaggschiff des Cloud ComputingsAmazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud ComputingsLothar Wieske
266 views10 slides
Jug nbg containerplattform dcos by
Jug nbg containerplattform dcosJug nbg containerplattform dcos
Jug nbg containerplattform dcosRalf Ernst
494 views64 slides
What is new in xen Server by
What is new in xen ServerWhat is new in xen Server
What is new in xen ServerDigicomp Academy AG
612 views39 slides
DWX Developer Week 2015 - Microservice architecture applied by
DWX Developer Week 2015 - Microservice architecture appliedDWX Developer Week 2015 - Microservice architecture applied
DWX Developer Week 2015 - Microservice architecture appliedRamon Anger
290 views21 slides
German .NEXT on Tour Keynote and Technical Slidedeck by
German .NEXT on Tour Keynote and Technical SlidedeckGerman .NEXT on Tour Keynote and Technical Slidedeck
German .NEXT on Tour Keynote and Technical SlidedeckNEXTtour
647 views60 slides

More Related Content

Viewers also liked

vodQA Pune - Innovations in Testing - Agenda by
vodQA Pune - Innovations in Testing - AgendavodQA Pune - Innovations in Testing - Agenda
vodQA Pune - Innovations in Testing - AgendavodQA
1K views9 slides
Setex Brochure by Matrax Bulgaria by
Setex Brochure by Matrax BulgariaSetex Brochure by Matrax Bulgaria
Setex Brochure by Matrax BulgariaВеселка Дамянова
294 views8 slides
Microservices Tracing with Spring Cloud and Zipkin by
Microservices Tracing with Spring Cloud and ZipkinMicroservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and ZipkinMarcin Grzejszczak
8.5K views57 slides
How to Keep Students Motivated During Winter by
How to Keep Students Motivated During WinterHow to Keep Students Motivated During Winter
How to Keep Students Motivated During WinterRobert Peters, Ed.D
682 views7 slides
Logs Don't Lie Or Do They? by
Logs Don't Lie Or Do They?Logs Don't Lie Or Do They?
Logs Don't Lie Or Do They?Alan K'necht
2K views22 slides
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD by
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CDWhats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CDDavid Ware
3.3K views56 slides

Viewers also liked(20)

vodQA Pune - Innovations in Testing - Agenda by vodQA
vodQA Pune - Innovations in Testing - AgendavodQA Pune - Innovations in Testing - Agenda
vodQA Pune - Innovations in Testing - Agenda
vodQA1K views
Microservices Tracing with Spring Cloud and Zipkin by Marcin Grzejszczak
Microservices Tracing with Spring Cloud and ZipkinMicroservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and Zipkin
Marcin Grzejszczak8.5K views
Logs Don't Lie Or Do They? by Alan K'necht
Logs Don't Lie Or Do They?Logs Don't Lie Or Do They?
Logs Don't Lie Or Do They?
Alan K'necht2K views
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD by David Ware
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CDWhats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
David Ware3.3K views
Application Development on Metapod by Cisco DevNet
Application Development on MetapodApplication Development on Metapod
Application Development on Metapod
Cisco DevNet486 views
Internationale clusters in vergelijkend perpsectief by Anika Snel
Internationale  clusters in vergelijkend perpsectiefInternationale  clusters in vergelijkend perpsectief
Internationale clusters in vergelijkend perpsectief
Anika Snel962 views
Turn Data Into Actionable Insights - StampedeCon 2016 by StampedeCon
Turn Data Into Actionable Insights - StampedeCon 2016Turn Data Into Actionable Insights - StampedeCon 2016
Turn Data Into Actionable Insights - StampedeCon 2016
StampedeCon1.9K views
Amazon Elastic Block Store for Application Storage by Amazon Web Services
Amazon Elastic Block Store for Application StorageAmazon Elastic Block Store for Application Storage
Amazon Elastic Block Store for Application Storage
Monitoring & Analysis 101 - N00b to Ninja in 60 Minutes at ISSW on April 9, 2016 by grecsl
Monitoring & Analysis 101 - N00b to Ninja in 60 Minutes at ISSW on April 9, 2016Monitoring & Analysis 101 - N00b to Ninja in 60 Minutes at ISSW on April 9, 2016
Monitoring & Analysis 101 - N00b to Ninja in 60 Minutes at ISSW on April 9, 2016
grecsl798 views
Smart Factory Technology Road Mapping Initiative_The Intent of Things and Ana... by Paul Fechtelkotter
Smart Factory Technology Road Mapping Initiative_The Intent of Things and Ana...Smart Factory Technology Road Mapping Initiative_The Intent of Things and Ana...
Smart Factory Technology Road Mapping Initiative_The Intent of Things and Ana...
Paul Fechtelkotter1.4K views
Human Capital in de 21e eeuw by han mesters
Human Capital in de 21e eeuwHuman Capital in de 21e eeuw
Human Capital in de 21e eeuw
han mesters3.4K views
One Click Deploys using Rundeck by Sai Kothapalle
One Click Deploys using RundeckOne Click Deploys using Rundeck
One Click Deploys using Rundeck
Sai Kothapalle2.3K views

Similar to Microservices mit Java EE - am Beispiel von IBM Liberty

Steinzeit war gestern! Wege der Cloud-nativen Evolution. by
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
402 views49 slides
Java EE Microservices ohne Server by
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Servergedoplan
272 views30 slides
Introduction to JEE by
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
4.3K views89 slides
Modernes Rechenzentrum - Future Decoded by
Modernes Rechenzentrum - Future DecodedModernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future DecodedMicrosoft Österreich
950 views50 slides
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß by
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß DanielHillinger
656 views20 slides
Blueprints bei E-Commerce Workloads mit AWS by
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSroot360 GmbH
50 views12 slides

Similar to Microservices mit Java EE - am Beispiel von IBM Liberty(20)

Steinzeit war gestern! Wege der Cloud-nativen Evolution. by QAware GmbH
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
QAware GmbH402 views
Java EE Microservices ohne Server by gedoplan
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Server
gedoplan272 views
Introduction to JEE by guestc44b7b
Introduction to JEEIntroduction to JEE
Introduction to JEE
guestc44b7b4.3K views
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß by DanielHillinger
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
DanielHillinger656 views
Blueprints bei E-Commerce Workloads mit AWS by root360 GmbH
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWS
root360 GmbH50 views
Java oberflächlich betrachtet - Welche GUI ist die richtige? by GFU Cyrus AG
Java oberflächlich betrachtet - Welche GUI ist die richtige?Java oberflächlich betrachtet - Welche GUI ist die richtige?
Java oberflächlich betrachtet - Welche GUI ist die richtige?
GFU Cyrus AG1.2K views
Skalierung & Performance by glembotzky
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
glembotzky1.7K views
Wie Azure Jakarta EE Nutzt by Edward Burns
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE Nutzt
Edward Burns19 views
JBoss AS / EAP Clustering by hwilming
JBoss AS / EAP  ClusteringJBoss AS / EAP  Clustering
JBoss AS / EAP Clustering
hwilming1.9K views
Tipps und Skripts aus dem Leben eines Connections Admins by Klaus Bild
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections Admins
Klaus Bild3.5K views
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins by ICS User Group
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
ICS User Group1.3K views
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud by AWS Germany
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die CloudSQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
AWS Germany1.4K views
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros... by Ramon Anger
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Ramon Anger2.7K views
Suse in der neuen Welt des Rechenzentrums - ein Beispiel by ATIX AG
Suse in der neuen Welt des Rechenzentrums - ein BeispielSuse in der neuen Welt des Rechenzentrums - ein Beispiel
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
ATIX AG299 views
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ... by Bernd Zuther
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Bernd Zuther8K views
On the Portability of Applications in Platform as a Service by Stefan Kolb
On the Portability of Applications in Platform as a ServiceOn the Portability of Applications in Platform as a Service
On the Portability of Applications in Platform as a Service
Stefan Kolb82 views

More from Michael Hofmann

Service Specific AuthZ In The Cloud Infrastructure by
Service Specific AuthZ In The Cloud InfrastructureService Specific AuthZ In The Cloud Infrastructure
Service Specific AuthZ In The Cloud InfrastructureMichael Hofmann
81 views23 slides
New Ways To Production - Stress-Free Evolution Of Your Cloud Applications by
New Ways To Production - Stress-Free Evolution Of Your Cloud ApplicationsNew Ways To Production - Stress-Free Evolution Of Your Cloud Applications
New Ways To Production - Stress-Free Evolution Of Your Cloud ApplicationsMichael Hofmann
78 views22 slides
Developer Experience Cloud Native - Become Efficient and Achieve Parity by
Developer Experience Cloud Native - Become Efficient and Achieve ParityDeveloper Experience Cloud Native - Become Efficient and Achieve Parity
Developer Experience Cloud Native - Become Efficient and Achieve ParityMichael Hofmann
94 views21 slides
The Easy Way to Secure Microservices by
The Easy Way to Secure MicroservicesThe Easy Way to Secure Microservices
The Easy Way to Secure MicroservicesMichael Hofmann
94 views25 slides
Service Mesh vs. Frameworks: Where to put the resilience? by
Service Mesh vs. Frameworks: Where to put the resilience?Service Mesh vs. Frameworks: Where to put the resilience?
Service Mesh vs. Frameworks: Where to put the resilience?Michael Hofmann
39 views19 slides
Service Mesh vs. Frameworks: Where to put the resilience? by
Service Mesh vs. Frameworks: Where to put the resilience?Service Mesh vs. Frameworks: Where to put the resilience?
Service Mesh vs. Frameworks: Where to put the resilience?Michael Hofmann
295 views19 slides

More from Michael Hofmann(13)

Service Specific AuthZ In The Cloud Infrastructure by Michael Hofmann
Service Specific AuthZ In The Cloud InfrastructureService Specific AuthZ In The Cloud Infrastructure
Service Specific AuthZ In The Cloud Infrastructure
Michael Hofmann81 views
New Ways To Production - Stress-Free Evolution Of Your Cloud Applications by Michael Hofmann
New Ways To Production - Stress-Free Evolution Of Your Cloud ApplicationsNew Ways To Production - Stress-Free Evolution Of Your Cloud Applications
New Ways To Production - Stress-Free Evolution Of Your Cloud Applications
Michael Hofmann78 views
Developer Experience Cloud Native - Become Efficient and Achieve Parity by Michael Hofmann
Developer Experience Cloud Native - Become Efficient and Achieve ParityDeveloper Experience Cloud Native - Become Efficient and Achieve Parity
Developer Experience Cloud Native - Become Efficient and Achieve Parity
Michael Hofmann94 views
The Easy Way to Secure Microservices by Michael Hofmann
The Easy Way to Secure MicroservicesThe Easy Way to Secure Microservices
The Easy Way to Secure Microservices
Michael Hofmann94 views
Service Mesh vs. Frameworks: Where to put the resilience? by Michael Hofmann
Service Mesh vs. Frameworks: Where to put the resilience?Service Mesh vs. Frameworks: Where to put the resilience?
Service Mesh vs. Frameworks: Where to put the resilience?
Michael Hofmann39 views
Service Mesh vs. Frameworks: Where to put the resilience? by Michael Hofmann
Service Mesh vs. Frameworks: Where to put the resilience?Service Mesh vs. Frameworks: Where to put the resilience?
Service Mesh vs. Frameworks: Where to put the resilience?
Michael Hofmann295 views
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/... by Michael Hofmann
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Michael Hofmann84 views
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi... by Michael Hofmann
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
Michael Hofmann133 views
Service Mesh mit Istio und MicroProfile - eine harmonische Kombination? by Michael Hofmann
Service Mesh mit Istio und MicroProfile - eine harmonische Kombination?Service Mesh mit Istio und MicroProfile - eine harmonische Kombination?
Service Mesh mit Istio und MicroProfile - eine harmonische Kombination?
Michael Hofmann313 views
Service Mesh - kilometer 30 in a microservice marathon by Michael Hofmann
Service Mesh - kilometer 30 in a microservice marathonService Mesh - kilometer 30 in a microservice marathon
Service Mesh - kilometer 30 in a microservice marathon
Michael Hofmann132 views
Service Mesh - Kilometer 30 im Microservices-Marathon by Michael Hofmann
Service Mesh - Kilometer 30 im Microservices-MarathonService Mesh - Kilometer 30 im Microservices-Marathon
Service Mesh - Kilometer 30 im Microservices-Marathon
Michael Hofmann302 views
API-Economy bei Financial Services – Kein Stein bleibt auf dem anderen by Michael Hofmann
API-Economy bei Financial Services – Kein Stein bleibt auf dem anderenAPI-Economy bei Financial Services – Kein Stein bleibt auf dem anderen
API-Economy bei Financial Services – Kein Stein bleibt auf dem anderen
Michael Hofmann59 views
Microprofile.io - Cloud Native mit Java EE by Michael Hofmann
Microprofile.io - Cloud Native mit Java EEMicroprofile.io - Cloud Native mit Java EE
Microprofile.io - Cloud Native mit Java EE
Michael Hofmann248 views

Microservices mit Java EE - am Beispiel von IBM Liberty

  • 1. Microservices mit Java EE am Beispiel von IBM Liberty ARS Computer und Consulting GmbH Michael Hofmann, Senior Softwarearchitekt
  • 2. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 2 Agenda Microservices – ein paar wichtige Charakteristika... Microservices – mit Java Microservices – mit Java EE Microservices – mit Java EE und IBM WAS Liberty Microservices – mit Java EE (Ausblick)
  • 3. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 3 IBM Redbook: „Microservices Best Practices for Java“ Motivation: Firmen mit Java EE Entwicklung wollen Microservices nutzen Anfänglich wenig Literatur zu Microservices mit Java, die “roten Faden” aufzeigt Noch weniger Literatur zu Microservices mit Java EE Ziel: Microservices mit Java und Java EE von Erstellung bis Produktion
  • 4. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 4 Microservices – ein paar wichtige Charakteristika... Polyglot Persistence (SQL, NoSQL) Keine Transaktionen über Microservice-Grenzen hinweg (Messaging- System) Hoher Verteilungsgrad  Kommunikation zwischen Microservices (Resilience, Latenz)  Erhöhter Testaufwand (Verteilungsgrad, Schnittstellen) Refactoring über Microservices-Grenzen hinweg Hohe Ansprüche an Betriebsführung  Packaging, Deployment und Konfiguration  Logging von Aufrufverläufen zwischen Microservices  Monitoring  Unabhängige Skalierbarkeit
  • 5. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 5 Agenda Microservices – nur ein paar wichtige Charakteristika... Microservices – mit Java Microservices – mit Java EE Microservices – mit Java EE und IBM WAS Liberty Microservices – mit Java EE (Ausblick)
  • 6. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 6 Microservices – mit Java (1|3) Polyglot Persistence (SQL, NoSQL)  SQL  Java Persistence API (EclipseLink, Hibernate, …), Spring JDBC (JDBC Template), …  NoSQL  Spring Data (MongoDB, Neo4J, Elasticsearch, Solr, Redis, Gemfire, Couchbase, Cassandra)  EclipseLink (JPA Support für MongoDB und Oracle NoSQL (weitere werden folgen)) Messaging-Systeme  Java Messaging System (JMS) Client  AMQP  Spring AMQP, RabbitMQ mit eigenem Java Client  MQTT  Eclipse Paho MQTT Client
  • 7. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 7 Microservices – mit Java (2|3) Hoher Verteilungsgrad  Kommunikation zwischen Microservices (Resilience, Latenz)  CircuitBreaker  Netflix Hystrix  Erhöhter Testaufwand  Consumer-driven Contract Testing  JUnit, JMockit, Mockito, REST Assured  Netflix SimianArmy (z.B. ChaosMonkey)  Amalgam8
  • 8. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 8 Microservices – mit Java (3|3) Refactoring über Microservices-Grenzen hinweg  Nicht Java spezifisch, wird aber erleichtert wenn kein polyglot programming vorliegt  Keine Neuimplementierung von Business Code in anderer Sprache notwendig  Durchlässigkeit der Entwickler zwischen den Teams höher  Rad wird in jedem Microservice mit anderer Programmiersprache neu erfunden (Logging, Log- Format, Security, Utils, ...)  Entwicklerrichtlinien sind möglich  Templates für die Erstellung von Microservices sind möglich  Deployment wird vereinfacht, da es sich immer um ein identisches Deployment-Artefakt handelt  Leichtere Betriebsführung wenn identische Systeme verwendet werden (einheitliche Probleme, einheitliches Skripting, einheitliches Patching, ...)
  • 9. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 9 Agenda Microservices – nur ein paar wichtige Charakteristika... Microservices – mit Java Microservices – mit Java EE Microservices – mit Java EE und IBM WAS Liberty Microservices – mit Java EE (Ausblick)
  • 10. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 10 Microservices – mit Java EE (1|6) Hohe Ansprüche an Betriebsführung  Packaging, Deployment und Konfiguration  Als singuläres ausführbares JAR File  Spring Boot (Tomcat, Jetty, Undertow)  Wildfly Swarm (JBoss)  IBM WebSphere Liberty  Alle 3 Varianten  Anwendung zusammen mit  externer Konfiguration (immutable artifact) und  notwendiger Runtime (Servlet-Container/Java EE Server)  in minimalisierter Form  ergänzt um Funktionen für Metrics und Health Care
  • 11. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 11 Microservices – mit Java EE (2|6) Hohe Ansprüche an Betriebsführung  Packaging, Deployment und Konfiguration  Minimalisierung  Spring Boot über Dependency Management (Maven, Gradle)  Wildfly Swarm und Liberty  Anwendung analog Spring Boot (Maven, Gradle)  Zusätzlich Minimalisierung der notwendigen Java EE Runtime (Analyse der verwendeten Java EE APIs im enthaltenen EAR/WAR)  Beispiel anhand IBM WAS Liberty (exemplarisch):  wlp/bin/server package <serverName> --include=minify,runnable --archive=<fileName>.jar  java -jar <fileName>.jar  JAR ca. 50-60MB für umfangreiche Anwendung mit versch. Java EE Frameworks  Liberty Kernel: ca. 11MB
  • 12. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 12 Microservices – mit Java EE (3|6) Hohe Ansprüche an Betriebsführung  Logging von Aufrufverläufen zwischen Microservices  Bei dynamischer Provisionierung können Logs durch Vernichtung der VM verloren gehen  Guter Ansatz: Elastic Stack (ELK-Stack)  Log-Auswertung über Microservice-Grenzen hinweg notwendig  einheitliches Log-Format und Log-Level  Erstellung einer Correlation-ID mit UUID <featureManager> <feature> logstashCollector-1.0 </feature> </featureManager> <logstashCollector source= "message,trace,garbageCollection,ff dc,accessLog" hostName="localhost" port="5043„ sslRef="mySSLConfig" />
  • 13. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 13 Microservices – mit Java EE (4|6) Hohe Ansprüche an Betriebsführung (am Beispiel WAS Liberty)  Monitoring mit grundsätzlichem Wirkprinzip:  Bei welchem Schwellwert wird welche Aktion auf welches Target ausgeführt  Monitoring (healthManager-1.0/healthAnalyzer-1.0)  Maximaler Prozentsatz an Request-Timeouts  Maximale Response-Zeit  Exzessive Speichernutzung (% von max. Heap-Size über gewissen Zeitraum)  Potentielle Memory-Leaks  Führen zu folgenden automatischen Aktionen  Server Neustart  Erzeugung Heap oder Thread Dump  Server zwischen Maintenance Mode hin- und herschalten  Auf folgenden Targets: Host, Cluster oder Server
  • 14. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 14 Microservices – mit Java EE (5|6) Hohe Ansprüche an Betriebsführung (am Beispiel WAS Liberty)  Weitere Monitoring Möglichkeiten (monitor-1.0)  Sammelt Performanz-Daten zur Laufzeit  Zur Abfrage mittels JMX oder REST  Weiteres Feature: adminCenter-1.0 zur Web-Anzeige von  used heap memory  loaded classes  active JVM threads  CPU usage  and other metrics, depending on the resource
  • 15. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 15 Microservices – mit Java EE (6|6) Unabhängige Skalierbarkeit  Liegt in der Architektur der Microservices  Kommt aber erst voll zum Tragen, wenn das System von Microservices automatisch skaliert (autoscaling, dynamic provisioning)  Nachteil einer statischen Provisionierung  Anzahl Microservice Instanzen ausgelegt auf peak load (wie oft tritt dieser pro Zeitraum auf?)  Microservice Instanzen müssen permanent laufen (load < 10%)  und mit ihnen die Hosts auf denen sie betrieben werden  Verschwendung von Speicher, CPU, Energie, Betriebskosten und evtl. Lizenzkosten  Spring Boot und Wildfly Swarm verlassen sich hier auf die Infrastruktur (Virtualisierung, Container, Cloud)  IBM WebSphere Liberty bietet darüber hinaus eigene Zusatzdienste an
  • 16. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 16 Agenda Microservices – nur ein paar wichtige Charakteristika... Microservices – mit Java Microservices – mit Java EE Microservices – mit Java EE und IBM WAS Liberty Microservices – mit Java EE (Ausblick)
  • 17. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 17 Microservices – mit Java EE + IBM WAS Liberty (1|6) IBM WAS Liberty Features zur Unterstützung von Microservices Skalierung  Schnelle Startzeit  Liberty startet in <5s (Features werden über OSGI bei Bedarf geladen)  Geänderte Konfiguration zur Laufzeit nachgeladen und angewandt  Geringer Arbeitsspeicher-Bedarf  weniger als 60MB für typische Web-Anwendung  IBM bietet Support für Liberty im Docker Container  Liberty Collectives und Cluster mit Autoscaling und Dynamic-Routing  bei Lastspitzen werden automatisch neue Server gestartet/beendet  und zugleich beim HTTP-Server registriert/deregistriert Automatische Skalierung im Liberty mit Bordmitteln möglich
  • 18. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 18 Microservices – mit Java EE + IBM WAS Liberty (2|6) IBM WAS Liberty Collective
  • 19. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 19 Microservices – mit Java EE + IBM WAS Liberty (3|6) IBM WAS Liberty Collective mit Dynamic Routing
  • 20. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 20 Microservices – mit Java EE + IBM WAS Liberty (4|6) IBM WAS Liberty Features zur Unterstützung von Microservices Skalierungsbeispiel:  10.000 Members in 50 VMs, somit ~200 Members pro VM  5 Collective Controllers in eigenen VMs jeweils: 20GB RAM mit 6 CPUs  Member VM: 64GB RAM mit 16 CPUs (d.h. ~ 320MB RAM pro Member)  Richtlinie: ca. 50 Hosts pro Collective Controller  Applikationen pro Server:  Eine Applikation pro Server: Single Failure, einfaches Tunen der Applikation  Mehrere Applikationen pro Server: Amortisation der Server Runtime, kleinere Topologie möglich  Fazit: „configure as much isolation as you can afford“
  • 21. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 21 Microservices – mit Java EE + IBM WAS Liberty (5|6) IBM WAS Liberty Features zur Unterstützung von Microservices Liberty elasticity  Scaling Controller kann Liberty Software auf vorher registrierten Host installieren und neue Liberty Server bei Bedarf dort erstellen  Minimales Installationspaket: Liberty Server mit Anwendung (entsprechend vorheriger Packaging Empfehlung)  Mehrere Member auf einem Host „wählen“ Host Leader, der als Vertreter mit dem Scaling Controller kommuniziert  Host Leader misst Workload des Host und der anderen Member und informiert Scaling Controller  Host Leader informiert Member auf seinem Host über Skalierungs-entscheidungen des Scaling Controllers  Polyglot Environments: Collective Controller verwaltet:  StrongLoop Server  Liberty Server  Liberty Docker Container
  • 22. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 22 Microservices – mit Java EE + IBM WAS Liberty (6|6) <server description="controllerServer"> <featureManager> <feature>collectiveController-1.0</feature> <feature>scalingController-1.0</feature> <feature>dynamicRouting-1.0</feature> </featureManager> <collectiveController> Definition Replica mit allen Controllern </collectiveController> <scalingDefinitions> nach welcher Policy soll wie verfahren werden </scalingDefinitions> <dynamicRouting> Routinginfo wie/wie oft an HTTP-Server </dynamicRouting> <server description=„memberServer"> <featureManager> <feature>collectiveMember-1.0</feature> <feature>scalingMember-1.0</feature> <feature>clusterMember-1.0</feature> </featureManager> <collectiveMember> Connect-Info zu Controller </collectiveMember> <clusterMember> Clustername definiert Zugehörigkeit </clusterMember>
  • 23. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 23 Agenda Microservices – nur ein paar wichtige Charakteristika... Microservices – mit Java Microservices – mit Java EE Microservices – mit Java EE und IBM WAS Liberty Microservices – mit Java EE (Ausblick)
  • 24. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 24 Microservices – mit Java EE (Ausblick) http://MicroProfile.io
  • 25. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 28 Diskussion und Fragen
  • 26. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 29 Kontaktinformationen Für Fragen und weitere Informationen stehe ich Ihnen gerne zur Verfügung: Michael Hofmann michael.hofmann@ars.de +49 89 32468-2075 ARS Computer und Consulting GmbH Ridlerstraße 37 80339 München www.ars.de
  • 27. © ARS Computer und Consulting GmbH 2016 Microservices mit Java EE 30 ARS Computer und Consulting GmbH ARS Computer und Consulting GmbH ist ein traditionsreiches IT- und Beratungshaus mit Hauptsitz im Herzen der bayerischen Landeshauptstadt München. Mit der Erfahrung seit 1992 unterstützt ARS Kunden bei der Lösung individueller, komplexer, fachlicher und technischer Herausforderungen. Dabei steht der Erfolg der Kunden im Mittelpunkt. Werthaltig arbeiten, Werte schaffen – in einer vertrauensvollen Geschäftsbeziehung. Die Basis dafür bilden die vielfältigen ARS Beratungs- und Lösungskompetenzen sowie das tief-technische Know-how.