Upload
open-knowledge-gmbh
View
32
Download
1
Embed Size (px)
Citation preview
#WISSENTEILEN
Enterprise Javaauf eXtreme Diät
Lars RöwekampCIO New Technologies
@mobileLarson@_openknowledge
#WISSENTEILEN
#WISSENTEILEN
ÜBER OPEN KNOWLEDGEBranchenneutrale 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 MonolithDer gute MicroserviceDas geht mit Java EE
#WISSENTEILEN
#WISSENTEILEN
Monolith?Eigentlich ganz cool!
#WISSENTEILEN
bekannte ArchitekturIDE freundlich
DB als „Source of Truth“
einfach zu verteileneinfach 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 changeall must agree on
each change.“
„Each change can hasunanticipated effects
requiring testing beforehead.“
#WISSENTEILEN
Der böse Monolith
#WISSENTEILEN
„For a monolith to changeall must agree on
each change.
Each change can hasunanticipated 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 anapproach to developing a single application as asuite of small services, each running in its ownprocess and communicating with lightweightmechanisms, often an HTTP resource API.”
#WISSENTEILEN
„As well as the fact that services areindependently deployable and scalable, eachservice also provides a firm module boundary,even allowing for different services to be written indifferent programming languages. They canalso be managed by different teams.”
#WISSENTEILEN
FunctionalDecompensation
#WISSENTEILEN
Single Responsibility
Pattern
#WISSENTEILEN
ExplicitlypublishedInterfaces
#WISSENTEILEN
Independentlydeploy, upgradescale, replace
#WISSENTEILEN
Heterogeneousa.k.a. Polyglot
#WISSENTEILEN
LightweightCommunication
#WISSENTEILEN
BusinessDriven
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Microservicesvs. 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 JEEAber 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
Issesaber nich!
#WISSENTEILEN
Mal ehrlich, so richtig lose gekoppelt
ist das aber nicht, oder?
#WISSENTEILEN
Ok, aber wie konfiguriereich ü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 innovatingacross multiple implementations andcollaborating on common areas of interestwith 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
September2016
Q42016
Q22017
Q32017
MicroProfilev. 1.2
MicroProfilev. 1.1
MicroProfile* v. 1.0
Move toFoundation
(*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
ConfigurationFault ToleranceHealth CheckMetricsJWT Token SecurityCDI 2.0WebSockets
Distributed LoggingDistributed TracingService DiscoveryBean ValidationJSON-BJPA...
#WISSENTEILEN
MicroProfile
Concurrency UtilitiesMessaging / EventingAsync/ReactiveEJB LiteServletsHTTP/2Uber-jar
Eventing SystemsBig Data/NoSQLNetFlix OSS IntegrationjCacheJDK 8 Lambda+StreamsJava 9 Modularity...
#WISSENTEILEN
MicroProfile Ramp-Up
MicroProfile.iobit.ly/MicroProfileForumgithub.com/microprofile/microprofile-samples
#WISSENTEILEN
Hey, Moment mal!MicroProfile?
JEE Profil?
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
„Ein Microservicekommt selten allein!“
by Lars Röwekamp
#WISSENTEILEN
#WISSENTEILEN
„Komplexitätwird durch Microservices
verlagert, nicht verringert!by Lars Röwekamp
#WISSENTEILEN
#WISSENTEILEN
„BFF“
Best Friends Forever!
#WISSENTEILEN
FRAGEN
? ? ?
#WISSENTEILEN
Kontakt
LARS RÖWEKAMPCIO NEW TECHNOLOGIES
[email protected]+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 orginatefrom pixabay.com or were created by my own.