SlideShare a Scribd company logo
1 of 27
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.

More Related Content

Viewers also liked

vodQA Pune - Innovations in Testing - Agenda
vodQA Pune - Innovations in Testing - AgendavodQA Pune - Innovations in Testing - Agenda
vodQA Pune - Innovations in Testing - AgendavodQA
 
Microservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and ZipkinMicroservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and ZipkinMarcin Grzejszczak
 
How to Keep Students Motivated During Winter
How to Keep Students Motivated During WinterHow to Keep Students Motivated During Winter
How to Keep Students Motivated During WinterRobert Peters, Ed.D
 
Logs Don't Lie Or Do They?
Logs Don't Lie Or Do They?Logs Don't Lie Or Do They?
Logs Don't Lie Or Do They?Alan K'necht
 
Whats 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 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
 
Application Development on Metapod
Application Development on MetapodApplication Development on Metapod
Application Development on MetapodCisco DevNet
 
Internationale clusters in vergelijkend perpsectief
Internationale  clusters in vergelijkend perpsectiefInternationale  clusters in vergelijkend perpsectief
Internationale clusters in vergelijkend perpsectiefAnika Snel
 
Turn Data Into Actionable Insights - StampedeCon 2016
Turn Data Into Actionable Insights - StampedeCon 2016Turn Data Into Actionable Insights - StampedeCon 2016
Turn Data Into Actionable Insights - StampedeCon 2016StampedeCon
 
Amazon Elastic Block Store for Application Storage
Amazon Elastic Block Store for Application StorageAmazon Elastic Block Store for Application Storage
Amazon Elastic Block Store for Application StorageAmazon Web Services
 
Monitoring & 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, 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, 2016grecsl
 
Russian Hunting | Special offer
Russian Hunting | Special offerRussian Hunting | Special offer
Russian Hunting | Special offerMoloshnikov.com
 
Amazon Military Talent Program
Amazon Military Talent ProgramAmazon Military Talent Program
Amazon Military Talent Programbrianraymonddolan
 
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...
Smart Factory Technology Road Mapping Initiative_The Intent of Things and Ana...Paul Fechtelkotter
 
Human Capital in de 21e eeuw
Human Capital in de 21e eeuwHuman Capital in de 21e eeuw
Human Capital in de 21e eeuwhan mesters
 
One Click Deploys using Rundeck
One Click Deploys using RundeckOne Click Deploys using Rundeck
One Click Deploys using RundeckSai Kothapalle
 
Comparison: VNS3 and Openswan
Comparison: VNS3 and OpenswanComparison: VNS3 and Openswan
Comparison: VNS3 and OpenswanCohesive Networks
 

Viewers also liked (20)

vodQA Pune - Innovations in Testing - Agenda
vodQA Pune - Innovations in Testing - AgendavodQA Pune - Innovations in Testing - Agenda
vodQA Pune - Innovations in Testing - Agenda
 
Setex Brochure by Matrax Bulgaria
Setex Brochure by Matrax BulgariaSetex Brochure by Matrax Bulgaria
Setex Brochure by Matrax Bulgaria
 
Microservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and ZipkinMicroservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and Zipkin
 
How to Keep Students Motivated During Winter
How to Keep Students Motivated During WinterHow to Keep Students Motivated During Winter
How to Keep Students Motivated During Winter
 
Logs Don't Lie Or Do They?
Logs Don't Lie Or Do They?Logs Don't Lie Or Do They?
Logs Don't Lie Or Do They?
 
Whats 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 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
 
Application Development on Metapod
Application Development on MetapodApplication Development on Metapod
Application Development on Metapod
 
Internationale clusters in vergelijkend perpsectief
Internationale  clusters in vergelijkend perpsectiefInternationale  clusters in vergelijkend perpsectief
Internationale clusters in vergelijkend perpsectief
 
Turn Data Into Actionable Insights - StampedeCon 2016
Turn Data Into Actionable Insights - StampedeCon 2016Turn Data Into Actionable Insights - StampedeCon 2016
Turn Data Into Actionable Insights - StampedeCon 2016
 
Amazon Elastic Block Store for Application Storage
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
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
 
CF Summit: Skilling Up
CF Summit: Skilling UpCF Summit: Skilling Up
CF Summit: Skilling Up
 
Russian Hunting | Special offer
Russian Hunting | Special offerRussian Hunting | Special offer
Russian Hunting | Special offer
 
Amazon Military Talent Program
Amazon Military Talent ProgramAmazon Military Talent Program
Amazon Military Talent Program
 
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...
Smart Factory Technology Road Mapping Initiative_The Intent of Things and Ana...
 
Human Capital in de 21e eeuw
Human Capital in de 21e eeuwHuman Capital in de 21e eeuw
Human Capital in de 21e eeuw
 
One Click Deploys using Rundeck
One Click Deploys using RundeckOne Click Deploys using Rundeck
One Click Deploys using Rundeck
 
Santo Rosario Completo
Santo Rosario CompletoSanto Rosario Completo
Santo Rosario Completo
 
Book of Fauna and Flora
Book of Fauna and FloraBook of Fauna and Flora
Book of Fauna and Flora
 
Comparison: VNS3 and Openswan
Comparison: VNS3 and OpenswanComparison: VNS3 and Openswan
Comparison: VNS3 and Openswan
 

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

Steinzeit war gestern! Wege der Cloud-nativen Evolution.
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
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Servergedoplan
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
 
Modernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future DecodedModernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future DecodedMicrosoft Österreich
 
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ß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß DanielHillinger
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSroot360 GmbH
 
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?
Java oberflächlich betrachtet - Welche GUI ist die richtige?GFU Cyrus AG
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performanceglembotzky
 
ANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat AnsibleANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat AnsibleCarolineAuerMarcher
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztEdward Burns
 
JBoss AS / EAP Clustering
JBoss AS / EAP  ClusteringJBoss AS / EAP  Clustering
JBoss AS / EAP Clusteringhwilming
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
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-adminsICS User Group
 
Tipps und Skripts aus dem Leben eines Connections Admins
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 AdminsKlaus Bild
 
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
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 CloudAWS Germany
 
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...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...Ramon Anger
 
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
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 BeispielATIX AG
 
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 ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Bernd Zuther
 
On the Portability of Applications in Platform as a Service
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 ServiceStefan Kolb
 

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

Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Server
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
Modernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future DecodedModernes Rechenzentrum - Future Decoded
Modernes Rechenzentrum - Future Decoded
 
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ß
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWS
 
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?
Java oberflächlich betrachtet - Welche GUI ist die richtige?
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
 
profil_2017
profil_2017profil_2017
profil_2017
 
ANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat AnsibleANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat Ansible
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE Nutzt
 
JBoss AS / EAP Clustering
JBoss AS / EAP  ClusteringJBoss AS / EAP  Clustering
JBoss AS / EAP Clustering
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
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
 
Tipps und Skripts aus dem Leben eines Connections Admins
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
 
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
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
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
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...
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
 
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
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
 
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 ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
 
On the Portability of Applications in Platform as a Service
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
 

More from Michael Hofmann

Service Specific AuthZ In The Cloud Infrastructure
Service Specific AuthZ In The Cloud InfrastructureService Specific AuthZ In The Cloud Infrastructure
Service Specific AuthZ In The Cloud InfrastructureMichael Hofmann
 
New Ways To Production - Stress-Free Evolution Of Your Cloud Applications
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
 
Developer Experience Cloud Native - Become Efficient and Achieve Parity
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
 
The Easy Way to Secure Microservices
The Easy Way to Secure MicroservicesThe Easy Way to Secure Microservices
The Easy Way to Secure MicroservicesMichael 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?
Service Mesh vs. Frameworks: Where to put the resilience?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?
Service Mesh vs. Frameworks: Where to put the resilience?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/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...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...
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...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?
Service Mesh mit Istio und MicroProfile - eine harmonische Kombination?Michael Hofmann
 
Service Mesh - kilometer 30 in a microservice marathon
Service Mesh - kilometer 30 in a microservice marathonService Mesh - kilometer 30 in a microservice marathon
Service Mesh - kilometer 30 in a microservice marathonMichael Hofmann
 
Service Mesh - Kilometer 30 im Microservices-Marathon
Service Mesh - Kilometer 30 im Microservices-MarathonService Mesh - Kilometer 30 im Microservices-Marathon
Service Mesh - Kilometer 30 im Microservices-MarathonMichael Hofmann
 
API-Economy bei Financial Services – Kein Stein bleibt auf dem anderen
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 anderenMichael Hofmann
 
Microprofile.io - Cloud Native mit Java EE
Microprofile.io - Cloud Native mit Java EEMicroprofile.io - Cloud Native mit Java EE
Microprofile.io - Cloud Native mit Java EEMichael Hofmann
 

More from Michael Hofmann (13)

Service Specific AuthZ In The Cloud Infrastructure
Service Specific AuthZ In The Cloud InfrastructureService Specific AuthZ In The Cloud Infrastructure
Service Specific AuthZ In The Cloud Infrastructure
 
New Ways To Production - Stress-Free Evolution Of Your Cloud Applications
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
 
Developer Experience Cloud Native - Become Efficient and Achieve Parity
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
 
The Easy Way to Secure Microservices
The Easy Way to Secure MicroservicesThe Easy Way to Secure Microservices
The Easy Way to Secure Microservices
 
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?
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?Service Mesh vs. Frameworks: Where to put the resilience?
Service Mesh vs. Frameworks: Where to put the resilience?
 
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/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
 
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...
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
 
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?
Service Mesh mit Istio und MicroProfile - eine harmonische Kombination?
 
Service Mesh - kilometer 30 in a microservice marathon
Service Mesh - kilometer 30 in a microservice marathonService Mesh - kilometer 30 in a microservice marathon
Service Mesh - kilometer 30 in a microservice marathon
 
Service Mesh - Kilometer 30 im Microservices-Marathon
Service Mesh - Kilometer 30 im Microservices-MarathonService Mesh - Kilometer 30 im Microservices-Marathon
Service Mesh - Kilometer 30 im Microservices-Marathon
 
API-Economy bei Financial Services – Kein Stein bleibt auf dem anderen
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
 
Microprofile.io - Cloud Native mit Java EE
Microprofile.io - Cloud Native mit Java EEMicroprofile.io - Cloud Native mit Java EE
Microprofile.io - Cloud Native mit Java EE
 

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.