85
#WISSENTEILEN Enterprise Java auf eXtreme Diät Lars Röwekamp CIO New Technologies @mobileLarson @_openknowledge #WISSENTEILEN

Enterprise Java auf Diät

Embed Size (px)

Citation preview

Page 1: Enterprise Java auf Diät

#WISSENTEILEN

Enterprise Javaauf eXtreme Diät

Lars RöwekampCIO New Technologies

@mobileLarson@_openknowledge

#WISSENTEILEN

Page 2: Enterprise Java auf Diät

#WISSENTEILEN

ÜBER OPEN KNOWLEDGEBranchenneutrale Softwareentwicklung & IT-Beratung

Page 3: Enterprise Java auf Diät

#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

Page 4: Enterprise Java auf Diät

#WISSENTEILEN#WISSENTEILEN

Der böse MonolithDer gute MicroserviceDas geht mit Java EE

Page 5: Enterprise Java auf Diät

#WISSENTEILEN

Page 6: Enterprise Java auf Diät

#WISSENTEILEN

Monolith?Eigentlich ganz cool!

Page 7: Enterprise Java auf Diät

#WISSENTEILEN

bekannte ArchitekturIDE freundlich

DB als „Source of Truth“

einfach zu verteileneinfach zu testen

einfach zu deployen

Page 8: Enterprise Java auf Diät

#WISSENTEILEN

Monolith?Eigentlich ganz cool, aber!

Page 9: Enterprise Java auf Diät

#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

Page 10: Enterprise Java auf Diät

#WISSENTEILEN

Page 11: Enterprise Java auf Diät

#WISSENTEILEN

Page 12: Enterprise Java auf Diät

#WISSENTEILEN#WISSENTEILEN

„For a monolith to changeall must agree on

each change.“

„Each change can hasunanticipated effects

requiring testing beforehead.“

Page 13: Enterprise Java auf Diät

#WISSENTEILEN

Der böse Monolith

#WISSENTEILEN

„For a monolith to changeall must agree on

each change.

Each change can hasunanticipated effects

requiring testing beforehead.“

Page 14: Enterprise Java auf Diät

#WISSENTEILEN

Page 15: Enterprise Java auf Diät

#WISSENTEILEN

Page 16: Enterprise Java auf Diät

#WISSENTEILEN

Page 17: Enterprise Java auf Diät

#WISSENTEILEN

Page 18: Enterprise Java auf Diät

#WISSENTEILEN

Page 19: Enterprise Java auf Diät

#WISSENTEILEN

Der gute Microservice

Page 20: Enterprise Java auf Diät

#WISSENTEILEN

Der gute Microservice

Page 21: Enterprise Java auf Diät

#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.”

Page 22: Enterprise Java auf Diät

#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.”

Page 23: Enterprise Java auf Diät

#WISSENTEILEN

FunctionalDecompensation

Page 24: Enterprise Java auf Diät

#WISSENTEILEN

Single Responsibility

Pattern

Page 25: Enterprise Java auf Diät

#WISSENTEILEN

ExplicitlypublishedInterfaces

Page 26: Enterprise Java auf Diät

#WISSENTEILEN

Independentlydeploy, upgradescale, replace

Page 27: Enterprise Java auf Diät

#WISSENTEILEN

Heterogeneousa.k.a. Polyglot

Page 28: Enterprise Java auf Diät

#WISSENTEILEN

LightweightCommunication

Page 29: Enterprise Java auf Diät

#WISSENTEILEN

BusinessDriven

Page 30: Enterprise Java auf Diät

#WISSENTEILEN

Page 31: Enterprise Java auf Diät

#WISSENTEILEN

Page 32: Enterprise Java auf Diät

#WISSENTEILEN

Microservicesvs. Monoliths

Page 33: Enterprise Java auf Diät

#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“

Page 34: Enterprise Java auf Diät

#WISSENTEILEN

Das geht mit JEE?

Page 35: Enterprise Java auf Diät

#WISSENTEILEN

Technologisch?Auf jeden Fall!

Page 36: Enterprise Java auf Diät

#WISSENTEILEN

Management Monitoring Availability Security

(* Java EE 7 APIs)

Page 37: Enterprise Java auf Diät

#WISSENTEILEN

Das geht mit JEEAber passt das wirklich?

Page 38: Enterprise Java auf Diät

#WISSENTEILEN

„Max cohesion, min coupling.“1)

JEE Business Component

Boundary Entity Control Pattern

je Service ein eigenes WAR

Kommunikation via REST

Page 39: Enterprise Java auf Diät

#WISSENTEILEN

Page 40: Enterprise Java auf Diät

#WISSENTEILEN

Unabhängig?

Page 41: Enterprise Java auf Diät

#WISSENTEILEN

JEE

Page 42: Enterprise Java auf Diät

#WISSENTEILEN

App Server?

Page 43: Enterprise Java auf Diät

#WISSENTEILEN

Page 44: Enterprise Java auf Diät

#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

Page 45: Enterprise Java auf Diät

#WISSENTEILEN

Page 46: Enterprise Java auf Diät

#WISSENTEILEN

Page 47: Enterprise Java auf Diät

#WISSENTEILEN

Page 48: Enterprise Java auf Diät

#WISSENTEILEN

Es könnte alles so

einfach sein!

Page 49: Enterprise Java auf Diät

#WISSENTEILEN

Issesaber nich!

Page 50: Enterprise Java auf Diät

#WISSENTEILEN

Mal ehrlich, so richtig lose gekoppelt

ist das aber nicht, oder?

Page 51: Enterprise Java auf Diät

#WISSENTEILEN

Ok, aber wie konfiguriereich übergreifende

Einstellungen?

Page 52: Enterprise Java auf Diät

#WISSENTEILEN

Und was ist, wenn mal nix ist?

Page 53: Enterprise Java auf Diät

#WISSENTEILEN

Cool. Aber wie war das noch mit der Skalierung?

Page 54: Enterprise Java auf Diät

#WISSENTEILEN

Btw, ist das denn überhaupt sicher?

Page 55: Enterprise Java auf Diät

#WISSENTEILEN

Ziemliches Chaos! Wie steigt man da

noch durch?

Page 56: Enterprise Java auf Diät

#WISSENTEILEN

Page 57: Enterprise Java auf Diät

#WISSENTEILEN

Ich will meinen Monolithen

zurück!

Page 58: Enterprise Java auf Diät

#WISSENTEILEN

MicroProfile*

(*V1.2 verfügbar seit 02.10.2017)

Page 59: Enterprise Java auf Diät

#WISSENTEILEN

Page 60: Enterprise Java auf Diät

#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

Page 61: Enterprise Java auf Diät

#WISSENTEILEN

Alles begann als „lose“ Diskussion von ...

• Wildfly Swarm• WebSphere Liberty Profile • Payara• TomEE

MicroProfile

Page 62: Enterprise Java auf Diät

#WISSENTEILEN

Page 63: Enterprise Java auf Diät

#WISSENTEILEN

Brücke zwischen Community und Standard

• breite Kooperation von Herstellern• Förderung von Experimentierfreudigkeit • Fehler / Fehlplanung schnell(er) erkennen

• zügige Innovationen

MicroProfile

Page 64: Enterprise Java auf Diät

#WISSENTEILEN

Brücke zwischen Community und Standard

• Herstellerunabhängigkeit • Implementierungsunabhängigkeit• Portabilität• Abwärtskompatibilität

• Risikominimierung

MicroProfile

Page 65: Enterprise Java auf Diät

#WISSENTEILEN

• Vendor neutrality• MicroProfile leadership can change over time• Legal and technical infrastructure• Trademark Ownership• Accepts Apache License

Eclipse Foundation

Page 66: Enterprise Java auf Diät

#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)

Page 67: Enterprise Java auf Diät

#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)

Page 68: Enterprise Java auf Diät

#WISSENTEILEN

(Source: Microprofile.io Webseite)

Page 69: Enterprise Java auf Diät

#WISSENTEILEN

(Source: Microprofile.io Webseite)

Page 70: Enterprise Java auf Diät

#WISSENTEILEN

(Source: Microprofile.io Webseite)

Page 71: Enterprise Java auf Diät

#WISSENTEILEN

(Source: Microprofile.io Webseite)

Page 72: Enterprise Java auf Diät

#WISSENTEILEN

MicroProfile

ConfigurationFault ToleranceHealth CheckMetricsJWT Token SecurityCDI 2.0WebSockets

Distributed LoggingDistributed TracingService DiscoveryBean ValidationJSON-BJPA...

Page 73: Enterprise Java auf Diät

#WISSENTEILEN

MicroProfile

Concurrency UtilitiesMessaging / EventingAsync/ReactiveEJB LiteServletsHTTP/2Uber-jar

Eventing SystemsBig Data/NoSQLNetFlix OSS IntegrationjCacheJDK 8 Lambda+StreamsJava 9 Modularity...

Page 74: Enterprise Java auf Diät

#WISSENTEILEN

MicroProfile Ramp-Up

MicroProfile.iobit.ly/MicroProfileForumgithub.com/microprofile/microprofile-samples

Page 75: Enterprise Java auf Diät

#WISSENTEILEN

Hey, Moment mal!MicroProfile?

JEE Profil?

Page 76: Enterprise Java auf Diät

#WISSENTEILEN

Page 77: Enterprise Java auf Diät

#WISSENTEILEN

Page 78: Enterprise Java auf Diät

#WISSENTEILEN

„Ein Microservicekommt selten allein!“

by Lars Röwekamp

Page 79: Enterprise Java auf Diät

#WISSENTEILEN

Page 80: Enterprise Java auf Diät

#WISSENTEILEN

„Komplexitätwird durch Microservices

verlagert, nicht verringert!by Lars Röwekamp

Page 81: Enterprise Java auf Diät

#WISSENTEILEN

Page 82: Enterprise Java auf Diät

#WISSENTEILEN

„BFF“

Best Friends Forever!

Page 83: Enterprise Java auf Diät

#WISSENTEILEN

FRAGEN

? ? ?

Page 84: Enterprise Java auf Diät

#WISSENTEILEN

Kontakt

LARS RÖWEKAMPCIO NEW TECHNOLOGIES

[email protected]+49 (0)441 4082 – 0

@mobileLarson@_openknowledge

OFFENKUNDIGGUT

Page 85: Enterprise Java auf Diät

#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.