SlideShare ist ein Scribd-Unternehmen logo
Java EE meets
Microservices
Are U serious?
Lars Röwekamp
CIO New Technologies
#WISSENTEILEN
@mobileLarson 

@_openKnowledge
Microservices
Wo liegt das Problem?
Was sind Microservices?
Das geht mit Java EE?
Microservices
Wo liegt das Problem?
Was sind Microservices?
Das geht mit Java EE?
„Monolithic Design”
#WISSENTEILENOFFENKUNDIGGUT
Was ist das Problem?
Was ist das Problem?
‣ Umsetzung von Features dauert zu lange
‣ Technologische „Schulden“ sind bekannt
‣ Architektur-Qualität nimmt ab (an Bedeutung)
‣ „-ility“ Probleme wohin man schaut
‣ Deployment ist kompliziert und dauert lang
‣ Skalierung hat Limit erreicht
‣ Replacement/Refactoring ist zu teuer
#WISSENTEILENOFFENKUNDIGGUT
„For a monolithic to change
all must agree on each
change. 



Each change has
unanticipated effects
requiring testing beforehand.“
Was ist das Problem?
#WISSENTEILENOFFENKUNDIGGUT
Monolithic „Module“ Release
Was ist das Problem?
#WISSENTEILENOFFENKUNDIGGUT
Monolithic „Module“ Release
Was ist das Problem?
#WISSENTEILENOFFENKUNDIGGUT
Monolithic „Module“ Release
Was ist das Problem?
#WISSENTEILENOFFENKUNDIGGUT
Monolithic „Module“ Release
#WISSENTEILENOFFENKUNDIGGUT
Was ist das Problem?
Monolithic „Module“ Release
Was ist das Problem?
#WISSENTEILENOFFENKUNDIGGUT
Monolithic „Module“ Release
Scary!
Was ist das Problem?
#WISSENTEILENOFFENKUNDIGGUT
Was ist das Problem? „You want to be here.“
#WISSENTEILENOFFENKUNDIGGUT
Load Balancer M
ulti Tenancy
Microservices
Was ist das Problem? „You want to be here.“
#WISSENTEILENOFFENKUNDIGGUT
@Runtime
@
Runtim
e
a.k.a.„TimetoMarket“
Was ist das Problem? „You want to be here.“
#WISSENTEILENOFFENKUNDIGGUT
„Help; needed it is.”
Monolithic Design
‣ „one monolithic Application“
‣ „one monolithic Database“
‣ „one programming Language“
‣ „very huge and slow Test Suite“
‣ „logic is buried in Abstraction“
‣ „logic is hidden in generated Code“
‣ „deployment is kind of Scary“
#WISSENTEILENOFFENKUNDIGGUT
Microservices
Wo liegt das Problem?
Was sind Microservices?
Das geht mit Java EE?
#WISSENTEILENOFFENKUNDIGGUT
„Kind of Definition“
„Small autonomous services
that work together.”
by Sam Newman (thoughtworks)
„Microservices are a
self-contained and easily
understandable realization of
domain logic, highly independent
of each other.” by Adam Bien (Freelancer)
„Loosely coupled service oriented
architecture with bounded
contexts.” by Adrian Cockcroft (ehemals Netflix)
„btw: if every service has to
be updated at the same
time it’s not loosely
coupled.“
„Loosely coupled service oriented
architecture with bounded
contexts.” by Adrian Cockcroft (ehemals Netflix)
„btw: If you have to know
too much about
surrounding services you
don’t have a bounded
context.“
„Eine Einheit, die von einem
kleinen Team komplett – also
fachlich und technisch –
beherrscht werden kann.”
Oliver Wegner (OTTO)
a.k.a.
2 Pizza
Teams
„In short, the microservice architectural style is an
approach to developing a single application
as a suite of small services, each running in its
own process and communicating with lightweight
mechanisms, often an HTTP resource API.”
„As well as the fact that services are
independently deployable and scalable, each
service also provides a firm module boundary,
even allowing for different services to be written in
different programming languages. They can
also be managed by different teams.”
„Microservice Charakteristika
a.k.a. Lackmustest”
Charakteristika
„Componentization
via Services“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Organized via
Business Capabilities“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Organized via
Business Capabilities“
„Any organization that designs
a system (defined broadly) will
produce a design whose structure
is a copy of the organization's
communication structure.“
Conway Law (1967)
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Organized via
Business Capabilities“
Conway Law (1967)
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Organized via
Business Capabilities“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Products,
not Projects“
#WISSENTEILENOFFENKUNDIGGUT
„The traditional model is that you
take your software to the wall that
separates dev and ops, and throw
it over and then forget about it.”
by Werner Vogel (Amazon)
by Werner Vogel (Amazon)
„Not at Amazon. 

You build it, you run it!”
Charakteristika
Charakteristika
„Smart Endpoints,
dumb Pipes“
#WISSENTEILENOFFENKUNDIGGUT
„Smart Endpoints,
dumb Pipes“
Charakteristika
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Decentralized
Governance“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Decentralized
Data Management“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Decentralized
Data Management“
„App“ DBs
Single DB
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Decentralized
Data Management“
‣ a.k.a. Polyglot Persistence
‣ unterschiedliche Daten Modelle1)
‣ unterschiedliche Daten Storages
‣ Problemfeld „Updates“
‣ Distributed Transactions zu komplex
‣ Eventual Consistency
‣ Compensation Operation
1) Bounded Context
#WISSENTEILENOFFENKUNDIGGUT
„Starbucks does not use
Two-Phase Commit“
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html
Charakteristika
Charakteristika
„Design
for Failure“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Design
for Failure“
‣ fehlertolerante Services-Consumer
‣ wie beeinflusst ein Fehler die UX?
‣ Fehler als „Normalfall“ nicht als „Ausnahme“
‣ Netflix stellt regelmäßig Systeme ab
‣ Monitoring & Resilience
‣ Fehler schnell oder sogar vorab erkennen!
‣ Fehler - wenn möglich - automatisch beheben
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Evolutionary
Design“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Scalable
by Purpose“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
Charakteristika
„Infrastructure
Automation“
‣ Logging & Monitoring
‣ Dashboards (up/down Status)
‣ Dashboards (operational Metrics)
‣ Circuit Breaker Status
‣ Aktueller Durchsatz, Latency
‣ Check-Outs, Umsatz
‣ …
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
btw:Paperduty
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Aggregation
Charakteristika
„Infrastructure
Automation“
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Infrastructure
Automation“
Correlation IDs
#WISSENTEILENOFFENKUNDIGGUT
Wrap up
Wrap up
Charakteristika
#WISSENTEILENOFFENKUNDIGGUT
Microservices
Wo liegt das Problem?
Was sind Microservices?
Das geht mit Java EE?
Microservice & JEE
Management Monitoring Availability Managment Security
#WISSENTEILENOFFENKUNDIGGUT
Microservice & JEE
Passt das zusammen?
‣ „Maximal Cohesion, Minimal Coupling“1)
‣ Java EE Business Component
‣ Boundary Entity Control Pattern
‣ in einem eigenen WAR
‣ deployed in einer eigenen „Domain“
‣ Kommunikation via JAX-RS 1) Blog von Adam Bien
#WISSENTEILENOFFENKUNDIGGUT
Microservice & JEE
http://techblog.net.lix.com/2013/01/announcing-ribbon-tying-net.lix-mid.html
#WISSENTEILENOFFENKUNDIGGUT
Die Idee „Micro Java EE“
‣ viele sind mit Java EE sehr zufrieden,
‣ robust, skalierbar, standard, integriert gut
‣ aber muss es immer der „Full/Web Stack“ sein?
‣ oder besser „Just enough Application Server“?
‣ Self-contained Java Microservices (jar)
‣ Java EE Komponenten on demand
Microservice & JEE
#WISSENTEILENOFFENKUNDIGGUT
Wildfly Swarm
#WISSENTEILENOFFENKUNDIGGUT
Dropwizard
#WISSENTEILENOFFENKUNDIGGUT
Spring Boot & Cloud
#WISSENTEILENOFFENKUNDIGGUT
Boot
Autoconfigure
Starters
CLI
Actuator
Tools
Samples
Main Library
@EnableAutoConfiguration
Convenient Dependency
Descriptors
Compile & Run
Groovy
Non-functional
Features
Build & Run self-
contained JAR/WAR
Tons of Samples
Spring Boot & Cloud
#WISSENTEILENOFFENKUNDIGGUT
Einige Micro JEE Server
‣ Wildfly Swarm
‣ TomEE Shades
‣ Payara Micro Glassfish
‣ KumuluzEE
‣ Dropwizard
‣ Spring Boot 1) JSR 111 (Service Framework)
Microservice & JEE
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Decentralized
Governance“
Microservice & JEE
#WISSENTEILENOFFENKUNDIGGUT
#WISSENTEILENOFFENKUNDIGGUT
#WISSENTEILENOFFENKUNDIGGUT
Charakteristika
„Decentralized
Governance“
Microservice & JEE
#WISSENTEILENOFFENKUNDIGGUT
Java EE meets Microservices
Ein „subjektives“ Fazit
„subjektives“ Fazit
‣ gutes Konzept zu Modularisierung
‣ gutes Konzept zur Entkopplung
‣ gutes Konzept zu Skalierung
‣ gutes Konzept zur Evolution
‣ fachliche Komplexität beherrschbar
‣ technologische Komplexität automatisierter
‣ geht natürlich (auch) mit Java EE ;-)
#WISSENTEILENOFFENKUNDIGGUT
„subjektives“ Fazit
#WISSENTEILENOFFENKUNDIGGUT
„Ein Microservice 

kommt selten allein!“
by Lars Röwekamp (CIO New Technologies)
Drei Thesen zum Schluß
#WISSENTEILENOFFENKUNDIGGUT
Drei Thesen zum Schluß
#WISSENTEILENOFFENKUNDIGGUT
„Komplexität 

wird durch Microservices 

verlagert, nicht verringert“
Drei Thesen zum Schluß
#WISSENTEILENOFFENKUNDIGGUT
„Das Finden der richtigen
Bounded Contexts ist der
Schlüssel zum Erfolg“
Drei Thesen zum Schluß
#WISSENTEILENOFFENKUNDIGGUT
„Transaktionen 

sind ein Zeichen für einen 

fehlenden Plan B“
Charakteristika
? ? ?
#WISSENTEILENOFFENKUNDIGGUT
Java EE meets
Microservices
Are U serious?
Lars Röwekamp
CIO New Technologies
#wissenteilen
@mobileLarson 

@_openKnowledge
Charakteristika
#WISSENTEILENOFFENKUNDIGGUT
Bildnachweise
‣ #1: iStock.com / Andrew Rich (000029536120)
‣ #4: © Daniel Steger for openphoto.net
‣ #14: The Art of Scalability / theartofscalability.com
‣ #17: iStock.com / jpgfactory (000059091620)
‣ #20: iStock.com / VisualField (3096596)
‣ #21: https://pbs.twimg.com/profile_images/585298659589267456/xAPhHpWz.jpg
‣ #22: http://www.jugh.de/files/jugh_content/Referenten/Adam%20Bien.jpg
‣ #23: aws.amazon.com/de/heroes/usa/adrian-cockcroft/
‣ #25: twitter.com/olliwegner
‣ #29: pixabay,con
‣ #31: Wikimedia / Webysther 20150414193208
‣ #35: Guido van Nispen / via WIkiepedia
‣ #43: pixabay.com
‣ …
Charakteristika
#WISSENTEILENOFFENKUNDIGGUT
Bildnachweise
‣ …
‣ #64: http://www.programering.com/
‣ #66: http://techblog.netflix.com/2013/01/announcing-ribbon-tying-netflix-mid.html
‣ #82: http://projects.spring.io/spring-boot/
‣ #74, #75: © embarc
‣ #76: https://netflix.github.io

Weitere ähnliche Inhalte

PPTX
iOS: einheitliche Oberflächen mit Auto Layout
PDF
Herausforderung „Multi-Channel“-Architektur
PDF
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
PDF
App-Delivery-Pipeline
PDF
CQRS, der etwas andere Architekturansatz
PDF
Der perfekte Microservice
PDF
Der Enterprise-Java-Architekt – eine aussterbende Gattung!?
PDF
Aus der Rubrik "Spaß mit Microservices": Transaktionen
iOS: einheitliche Oberflächen mit Auto Layout
Herausforderung „Multi-Channel“-Architektur
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
App-Delivery-Pipeline
CQRS, der etwas andere Architekturansatz
Der perfekte Microservice
Der Enterprise-Java-Architekt – eine aussterbende Gattung!?
Aus der Rubrik "Spaß mit Microservices": Transaktionen

Was ist angesagt? (12)

PDF
Enterprise Java on Steroids
PDF
Herausforderung „Multi-Channel Architecture”
PDF
Less Server vs. Serverless?
PDF
Web-API-Design jenseits von REST und Request/Response
PDF
Modern Lightweight Enterprise Architectures mit Java
PDF
Shared Data in verteilten Systemen
PDF
Cloud Architekturen - von "less Server" zu Serverless
PDF
Zukunftssichere Architekturen mit Microservices
PDF
Web APIs jenseits von REST & Request/Response
PDF
Mehr Sicherheit durch Automatisierung
PDF
Enterprise Java auf Diät
PDF
Serverless Survival Guide
Enterprise Java on Steroids
Herausforderung „Multi-Channel Architecture”
Less Server vs. Serverless?
Web-API-Design jenseits von REST und Request/Response
Modern Lightweight Enterprise Architectures mit Java
Shared Data in verteilten Systemen
Cloud Architekturen - von "less Server" zu Serverless
Zukunftssichere Architekturen mit Microservices
Web APIs jenseits von REST & Request/Response
Mehr Sicherheit durch Automatisierung
Enterprise Java auf Diät
Serverless Survival Guide
Anzeige

Andere mochten auch (15)

PDF
PLENARY - Building High Performance Teams - By Steven Lock
ODT
Cartes SVQ
PPTX
P. hacia una nueva visión de lo rural.ppsx
PDF
Micro, Nano, Mono - Microservices verständlich erklärt.
PPTX
Top Ten Percent Seniors
DOCX
OccupationalStressanditsEffectsonProductivity
PDF
Jak wydaliśmy wiedźmina, GOG.com IT
PDF
CDI expliqué aux parents
PPTX
Comunità CTA Sant'Antonio, un modello di Comunita Terapeutica Democratica
PDF
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
PPTX
Lease Management System
PDF
Mis Strategy Redacted
KEY
Competenze di counseling i° parte
DOCX
Green building vs conventional building
PDF
Catalogue Idwatt 2016
PLENARY - Building High Performance Teams - By Steven Lock
Cartes SVQ
P. hacia una nueva visión de lo rural.ppsx
Micro, Nano, Mono - Microservices verständlich erklärt.
Top Ten Percent Seniors
OccupationalStressanditsEffectsonProductivity
Jak wydaliśmy wiedźmina, GOG.com IT
CDI expliqué aux parents
Comunità CTA Sant'Antonio, un modello di Comunita Terapeutica Democratica
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
Lease Management System
Mis Strategy Redacted
Competenze di counseling i° parte
Green building vs conventional building
Catalogue Idwatt 2016
Anzeige

Ähnlich wie Java EE meets Microservices (20)

PDF
Microservices Migration: Vom Monolithen zu Microservices
PDF
Java EE goes Microservices. Are you serious?
PDF
Hilfe, ich will meinen Monolithen zurück!
PDF
Kaps - Es muss nicht immer Kubernetes sein
PDF
Microservices mit dem MicroProfile
PDF
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
PDF
Java EE meets Microservices: MicroProfile 2.x to the Rescue
PDF
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
PDF
Nanoservice Architekturen
PPTX
2007 - Basta!: Nach soa kommt soc
PDF
BATbern41 Microservices@Enterprise
PDF
E-Commerce vs Architektur CodeTalks.Commerce_2018
PDF
Microservices – die Architektur für Agile-Entwicklung?
PDF
Die Matrix: Enterprise-Architekturen jenseits von Microservices
PDF
Offline-first Architekturen: Wer bitte braucht schon Internet
ODP
Microservice-Architektur in der Praxis
PDF
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
PDF
Steinzeit war gestern! Wege der cloud-nativen Evolution
PDF
Client Technologien - Ein Überblick für Usability Professionals
PDF
DWX Developer Week 2015 - Microservice architecture applied
Microservices Migration: Vom Monolithen zu Microservices
Java EE goes Microservices. Are you serious?
Hilfe, ich will meinen Monolithen zurück!
Kaps - Es muss nicht immer Kubernetes sein
Microservices mit dem MicroProfile
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
Java EE meets Microservices: MicroProfile 2.x to the Rescue
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Nanoservice Architekturen
2007 - Basta!: Nach soa kommt soc
BATbern41 Microservices@Enterprise
E-Commerce vs Architektur CodeTalks.Commerce_2018
Microservices – die Architektur für Agile-Entwicklung?
Die Matrix: Enterprise-Architekturen jenseits von Microservices
Offline-first Architekturen: Wer bitte braucht schon Internet
Microservice-Architektur in der Praxis
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
Steinzeit war gestern! Wege der cloud-nativen Evolution
Client Technologien - Ein Überblick für Usability Professionals
DWX Developer Week 2015 - Microservice architecture applied

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
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!“
PDF
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
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
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!“
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...

Java EE meets Microservices