Upload
open-knowledge-gmbh
View
145
Download
0
Embed Size (px)
Citation preview
Java EE meets Microservices
Are u serious? Lars Röwekamp CIO New Technologies @mobileLarson @_openknowledge
#WISSENTEILEN
Lars Röwekamp (a.k.a. @mobileLarson)
ÜBER MICH
LR
#WISSENTEILEN
Wer bin ich - und wen ja, wie viele?
• CIO New Technologies
• Enterprise & Mobile
• Author, Speaker, Coach & Mentor
• Snowboard & MTB Enthusiast • mehrfacher Vater, einfacher Ehemann
#WISSENTEILEN
Der böse Monolith
Der gute Microservice
Das geht mit JEE?
Super Secret Bonusmaterial!
JEE & Microservices
MONOLITH
#WISSENTEILEN
Eigentlich eine tolle Sache ...
• bekannte Architektur • IDE freundlich • einfach zu verteilen • einfach zu testen • einfach zu deployen
MONOLITH
#WISSENTEILEN
Aber nur wenn ...
• Separation of Concerns (SoC) • High Cohesion & Low Coupling (via APIs) • Don’t Repeat Yourself (DRY) • Law of Demeter (LoD) • Domain Driven Design (DDD) • You Aren’t Going to Need It (YAGNI)
MONOLITH
#WISSENTEILEN
Aber die Realität sieht anders aus ...
• Umsetzung von Features dauert zu lange • Technologische Schulden wohin man schaut • Architektur-Qualität nimmt ab (an Bedeutung) • „-ility“-Probleme an allen Ecken und Enden • Deployment ist kompliziert und dauert lang • Skalierung hat Limit erreicht
MONOLITH
#WISSENTEILEN
Der Big Ball of Mud ...
• „one monolithic Database“ • „one Programming Language“ • „very huge and slow Test Suite“ • „logic is buried in Abstraction“ • „logic is hidden in generated Code“ • „no survival without handmade Caching“
MONOLITH
#WISSENTEILEN
„For a monolith to change all must agree on
each change.
Each change can has unanticipated effects
requiring testing beforehead.“
#WISSENTEILEN
MONOLITH
Scale by Cloning
Scale by Data Par--oning
Scale by using
Microservices
Monolith
#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.”
MICROSERVICES
#WISSENTEILEN
Microservices PROs ...
• „easier to develop, understand & maintain“ • „starts faster than a monolith“ • „local changes can be easily deployed“ • „scale independently“ • „improves fault isolation“ • „not tech driven but business focused“
DAS GEHT MIT JEE?
#WISSENTEILEN
Aber passt das wirklich zusammen?
• „Maximal cohesion, minimal coupling.“1)
• JEE Business Component • Boundary Entity Control Pattern • In einem eigenen WAR • Kommunikation via REST • Deployed in einer eigenen Domain 1) Blogbeitrag von Adam Bien
DAS GEHT MIT JEE?
#WISSENTEILEN
Idee: „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
MicroProfile.io
#WISSENTEILEN
The 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.
#WISSENTEILEN
• gutes Konzept zur Modularisierung • gutes Konzept zur Entkopplung • gutes Konzept zur Skalierung • gutes Konzept zur Evolution
FAZIT
LARS RÖWEKAMP CIO NEW TECHNOLOGIES
[email protected] +49 (0) 441 4082 – 0
@mobileLarson @_openknowledge
OFFENKUNDIGGUT
KOTAKT
#WISSENTEILEN