SlideShare ist ein Scribd-Unternehmen logo
1 von 85
Downloaden Sie, um offline zu lesen
#WISSENTEILEN
Enterprise Java
auf eXtreme Diät
Lars Röwekamp
CIO New Technologies
@mobileLarson
@_openknowledge
#WISSENTEILEN
#WISSENTEILEN
ÜBER OPEN KNOWLEDGE
Branchenneutrale Softwareentwicklung & IT-Beratung
#WISSENTEILEN
ÜBER MICH
Wer bin ich - und wenn ja, wie viele?
• CIO New Technologies
• Enterprise & Mobile
• Autor, Speaker, Coach & Mentor
• Snowboard & MTB Enthusiast
• Mehrfacher Vater, einfacher Ehemann
Lars Röwekamp (a.k.a. @mobileLarson)
LR
#WISSENTEILEN#WISSENTEILEN
Der böse Monolith
Der gute Microservice
Das geht mit Java EE
#WISSENTEILEN
#WISSENTEILEN
Monolith?
Eigentlich ganz cool!
#WISSENTEILEN
bekannte Architektur
IDE freundlich
DB als „Source of Truth“
einfach zu verteilen
einfach zu testen
einfach zu deployen
#WISSENTEILEN
Monolith?
Eigentlich ganz cool, aber!
#WISSENTEILEN
#SOC:
#API:
#DRY:
#LOD:
#DDD:
#YAGNI:
Separation of Concerns
High Cohesion & Low Coupling
Don‘t repeat yourself
Law of Demeter
Domain Driven Design
You aren‘t going to need it
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN#WISSENTEILEN
„For a monolith to change
all must agree on
each change.“
„Each change can has
unanticipated effects
requiring testing beforehead.“
#WISSENTEILEN
Der böse Monolith
#WISSENTEILEN
„For a monolith to change
all must agree on
each change.
Each change can has
unanticipated effects
requiring testing beforehead.“
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Der gute Microservice
#WISSENTEILEN
Der gute Microservice
#WISSENTEILEN
„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.”
#WISSENTEILEN
„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.”
#WISSENTEILEN
Functional
Decompensation
#WISSENTEILEN
Single
Responsibility
Pattern
#WISSENTEILEN
Explicitly
published
Interfaces
#WISSENTEILEN
Independently
deploy, upgrade
scale, replace
#WISSENTEILEN
Heterogeneous
a.k.a. Polyglot
#WISSENTEILEN
Lightweight
Communication
#WISSENTEILEN
Business
Driven
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Microservices
vs. Monoliths
#WISSENTEILEN
„easier to understand & maintain“
„starts faster than a monolith“
„local changes can be easily deployed“
„improves fault isolation“
„not tech driven but business focused“
#WISSENTEILEN
Das geht
mit JEE?
#WISSENTEILEN
Technologisch?
Auf jeden Fall!
#WISSENTEILEN
Management Monitoring Availability Security
(* Java EE 7 APIs)
#WISSENTEILEN
Das geht mit JEE
Aber passt das wirklich?
#WISSENTEILEN
„Max cohesion, min coupling.“1)
JEE Business Component
Boundary Entity Control Pattern
je Service ein eigenes WAR
Kommunikation via REST
#WISSENTEILEN
#WISSENTEILEN
Unabhängig?
#WISSENTEILEN
JEE
#WISSENTEILEN
App Server?
#WISSENTEILEN
#WISSENTEILEN
Alternative: „Just enough Server“
• Self-Contained Java Microservices (.jar)
• Java EE Komponenten on demand
• Embedded Servlet / Web Engine
• Health Checks, Metrics, Security
• externe Konfiguration via CommandLine & Co
Das geht mit Java EE?
JEE
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Es könnte
alles so
einfach sein!
#WISSENTEILEN
Isses
aber
nich!
#WISSENTEILEN
Mal ehrlich, so richtig
lose gekoppelt
ist das aber nicht, oder?
#WISSENTEILEN
Ok, aber wie konfiguriere
ich übergreifende
Einstellungen?
#WISSENTEILEN
Und was ist,
wenn mal nix ist?
#WISSENTEILEN
Cool. Aber wie war das
noch mit der
Skalierung?
#WISSENTEILEN
Btw, ist das denn
überhaupt sicher?
#WISSENTEILEN
Ziemliches Chaos!
Wie steigt man da
noch durch?
#WISSENTEILEN
#WISSENTEILEN
Ich will meinen
Monolithen
zurück!
#WISSENTEILEN
MicroProfile*
(*V1.2 verfügbar seit 02.10.2017)
#WISSENTEILEN
#WISSENTEILEN
Die Mission:
„An open forum to optimize Enterprise Java
for a microservices architecture by innovating
across multiple implementations and
collaborating on common areas of interest
with a goal of standardization.“
MicroProfile
#WISSENTEILEN
Alles begann als „lose“ Diskussion von ...
• Wildfly Swarm
• WebSphere Liberty Profile
• Payara
• TomEE
MicroProfile
#WISSENTEILEN
#WISSENTEILEN
Brücke zwischen Community und Standard
• breite Kooperation von Herstellern
• Förderung von Experimentierfreudigkeit
• Fehler / Fehlplanung schnell(er) erkennen
• zügige Innovationen
MicroProfile
#WISSENTEILEN
Brücke zwischen Community und Standard
• Herstellerunabhängigkeit
• Implementierungsunabhängigkeit
• Portabilität
• Abwärtskompatibilität
• Risikominimierung
MicroProfile
#WISSENTEILEN
• Vendor neutrality
• MicroProfile leadership can change over time
• Legal and technical infrastructure
• Trademark Ownership
• Accepts Apache License
Eclipse Foundation
#WISSENTEILEN
Der Weg in die MicroProfile Zukunf:
• Schritt 1: Den „Hebel“ Java EE nutzen
• Schritt 2: Organische Innovationen
• Schritt 3: Zusammenarbeit via Open Source
MicroProfile
(*aktuelle Planung: 2-4 Releases/Jahr)
#WISSENTEILEN
September
2016
Q4
2016
Q2
2017
Q3
2017
MicroProfile
v. 1.2
MicroProfile
v. 1.1
MicroProfile*
v. 1.0
Move to
Foundation
(*JAX-RS 2.0, CDI 1.2, JSON-P 1.0)
#WISSENTEILEN
(Source: Microprofile.io Webseite)
#WISSENTEILEN
(Source: Microprofile.io Webseite)
#WISSENTEILEN
(Source: Microprofile.io Webseite)
#WISSENTEILEN
(Source: Microprofile.io Webseite)
#WISSENTEILEN
MicroProfile
Configuration
Fault Tolerance
Health Check
Metrics
JWT Token Security
CDI 2.0
WebSockets
Distributed Logging
Distributed Tracing
Service Discovery
Bean Validation
JSON-B
JPA
...
#WISSENTEILEN
MicroProfile
Concurrency Utilities
Messaging / Eventing
Async/Reactive
EJB Lite
Servlets
HTTP/2
Uber-jar
Eventing Systems
Big Data/NoSQL
NetFlix OSS Integration
jCache
JDK 8 Lambda+Streams
Java 9 Modularity
...
#WISSENTEILEN
MicroProfile Ramp-Up
MicroProfile.io
bit.ly/MicroProfileForum
github.com/microprofile/microprofile-samples
#WISSENTEILEN
Hey, Moment mal!
MicroProfile?
JEE Profil?
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
„Ein Microservice
kommt selten allein!“
by Lars Röwekamp
#WISSENTEILEN
#WISSENTEILEN
„Komplexität
wird durch Microservices
verlagert, nicht verringert!
by Lars Röwekamp
#WISSENTEILEN
#WISSENTEILEN
„BFF“
Best Friends Forever!
#WISSENTEILEN
FRAGEN
? ? ?
#WISSENTEILEN
Kontakt
LARS RÖWEKAMP
CIO NEW TECHNOLOGIES
lars.roewekamp@openknowledge.de
+49 (0)441 4082 – 0
@mobileLarson
@_openknowledge
OFFENKUNDIGGUT
#WISSENTEILEN
Bildnachweise
#45: © RichVintage - istockphoto.com
#78: © frankie‘s – shutterstock.com
#103: © restlet – restlet.com
#188: © tomertu– shutterstock.com
All other pictures inside this presentation orginate
from pixabay.com or were created by my own.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Herausforderung „Multi-Channel Architecture”
Herausforderung „Multi-Channel Architecture”Herausforderung „Multi-Channel Architecture”
Herausforderung „Multi-Channel Architecture”
 
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
App war gestern: Mobile Engagement als Teil der Enterprise-StrategieApp war gestern: Mobile Engagement als Teil der Enterprise-Strategie
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
 
Microservices mit dem MicroProfile
Microservices mit dem MicroProfileMicroservices mit dem MicroProfile
Microservices mit dem MicroProfile
 
iOS: einheitliche Oberflächen mit Auto Layout
iOS: einheitliche Oberflächen mit Auto LayoutiOS: einheitliche Oberflächen mit Auto Layout
iOS: einheitliche Oberflächen mit Auto Layout
 
Enterprise Java on Steroids
Enterprise Java on SteroidsEnterprise Java on Steroids
Enterprise Java on Steroids
 
Die Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von MicroservicesDie Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von Microservices
 
Mobile- & Offline-First: Mehr als nur Buzzword-Bingo
Mobile- & Offline-First: Mehr als nur Buzzword-BingoMobile- & Offline-First: Mehr als nur Buzzword-Bingo
Mobile- & Offline-First: Mehr als nur Buzzword-Bingo
 
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
 
Zukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit MicroservicesZukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit Microservices
 
Modern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaModern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit Java
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten Systemen
 
Mobile Ideation – der sanfte Weg zum mobilen Mehrwert
Mobile Ideation – der sanfte Weg zum mobilen MehrwertMobile Ideation – der sanfte Weg zum mobilen Mehrwert
Mobile Ideation – der sanfte Weg zum mobilen Mehrwert
 
Cloud Architekturen - von "less Server" zu Serverless
Cloud Architekturen - von "less Server" zu ServerlessCloud Architekturen - von "less Server" zu Serverless
Cloud Architekturen - von "less Server" zu Serverless
 
The Day after – nach dem Release ist vor dem Release
The Day after – nach dem Release ist vor dem ReleaseThe Day after – nach dem Release ist vor dem Release
The Day after – nach dem Release ist vor dem Release
 
Der Enterprise-Java-Architekt – eine aussterbende Gattung!?
Der Enterprise-Java-Architekt – eine aussterbende Gattung!?Der Enterprise-Java-Architekt – eine aussterbende Gattung!?
Der Enterprise-Java-Architekt – eine aussterbende Gattung!?
 
Web APIs jenseits von REST & Request/Response
Web APIs jenseits von REST & Request/ResponseWeb APIs jenseits von REST & Request/Response
Web APIs jenseits von REST & Request/Response
 
Spaß mit Microservices: Transaktionen
Spaß mit Microservices: TransaktionenSpaß mit Microservices: Transaktionen
Spaß mit Microservices: Transaktionen
 
Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
 
Java EE meets Microservices: MicroProfile 2.x to the Rescue
Java EE meets Microservices: MicroProfile 2.x to the RescueJava EE meets Microservices: MicroProfile 2.x to the Rescue
Java EE meets Microservices: MicroProfile 2.x to the Rescue
 

Ähnlich wie Enterprise Java auf Diät

Ähnlich wie Enterprise Java auf Diät (9)

Microservices Migration: Vom Monolithen zu Microservices
Microservices Migration: Vom Monolithen zu MicroservicesMicroservices Migration: Vom Monolithen zu Microservices
Microservices Migration: Vom Monolithen zu Microservices
 
Der perfekte Microservice
Der perfekte MicroserviceDer perfekte Microservice
Der perfekte Microservice
 
Java EE meets Microservices
Java EE meets MicroservicesJava EE meets Microservices
Java EE meets Microservices
 
Offline-first Architekturen: Wer bitte braucht schon Internet
Offline-first Architekturen: Wer bitte braucht schon InternetOffline-first Architekturen: Wer bitte braucht schon Internet
Offline-first Architekturen: Wer bitte braucht schon Internet
 
Microservices Architecture: Architektur und Patterns
Microservices Architecture: Architektur und PatternsMicroservices Architecture: Architektur und Patterns
Microservices Architecture: Architektur und Patterns
 
Mobile Ideation aka "Der mobile Mehrwert"
Mobile Ideation aka "Der mobile Mehrwert"Mobile Ideation aka "Der mobile Mehrwert"
Mobile Ideation aka "Der mobile Mehrwert"
 
wbta interactive showcase
wbta interactive showcasewbta interactive showcase
wbta interactive showcase
 
Next Web & Open Standards: LIIP Vortrag Internet-Briefing
Next Web & Open Standards: LIIP Vortrag Internet-BriefingNext Web & Open Standards: LIIP Vortrag Internet-Briefing
Next Web & Open Standards: LIIP Vortrag Internet-Briefing
 
Rapid Prototyping mit jQuery (German)
Rapid Prototyping mit jQuery (German)Rapid Prototyping mit jQuery (German)
Rapid Prototyping mit jQuery (German)
 

Mehr von OPEN KNOWLEDGE GmbH

Mehr von OPEN KNOWLEDGE GmbH (20)

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

Enterprise Java auf Diät