SlideShare ist ein Scribd-Unternehmen logo
#WISSENTEILEN
The
MICROSERVICES
SURVIVAL GUIDE
#WISSENTEILEN
THE PRACTICAL SKILLS YOU‘LL
NEED TO MIGRATE A MONOLITH
by Lars Röwekamp
a.k.a @mobileLarson
#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
Lars Röwekamp (a.k.a. @mobileLarson)
LR
#WISSENTEILEN
Herzlich
willkommen!
#WISSENTEILEN
#WISSENTEILEN
Monolith?
Eigentlich ganz cool!
#WISSENTEILEN
bekannte Architektur
IDE freundlich
DB als „Source of Truth“
#WISSENTEILEN
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
#WISSENTEILEN
Probleme
wohin man schaut
#WISSENTEILEN
Umsetzungsstau
#WISSENTEILEN
Release Qualität
#WISSENTEILEN
Robustheit
#WISSENTEILEN
Kosten
#WISSENTEILEN
Skalierbarkeit
#WISSENTEILEN
Zukunftsfähigkeit
#WISSENTEILEN
Universallösung
Microservices
#WISSENTEILEN
„Glaub mir,
Microservices
sind das
‚next big Thing‘!“
#WISSENTEILEN
Microservices
Charateristics(Things that make a Microservice a Microservice)
#WISSENTEILEN
„Functional Decompensation“
„Single Responsibility Pattern“
„Explicitly Published Interfaces“
„Independently upgrade, ...“
„Lightweight Communication“
#WISSENTEILEN
und ...
Business Driven
#WISSENTEILEN
(c) Martin Fowler: https://www.martinfowler.com/bliki/MicroservicePremium.html
#WISSENTEILEN
Microservices-basierte
Architektur
erfolgreiche
Software
Entwicklung
Continuous Delivery / Deployment
ermöglichtermöglicht
kleine, agile, unabhängige,
cross-functional Teams
ermöglicht
Services
sind unabhängig
testbar & deploybar
Teams
besitzen Services
Prozesse
ArchitekturOrganisation
#WISSENTEILEN
Baustelle #1
Architektur
#WISSENTEILEN
Baustelle #1 Architektur
„Was ist die richtige Größe für einen
Service und wie sieht am Ende
meine Service-Landkarte aus?“
#WISSENTEILEN
Baustelle #2
Organisation
#WISSENTEILEN
Baustelle #2 Organisation
„Wie stelle ich meine Teams auf agiles
Vorgehen um und was bedeuten das
für die restliche Organisation?“
#WISSENTEILEN
Baustelle #3
Prozesse
#WISSENTEILEN
Baustelle #3 Prozesse
„Was muss ich tun, um CI/CD zu
ermöglichen und welchen Grad der
Automatisierung benötige ich dazu?“
#WISSENTEILEN
Migration?
Wir brauchen eine Strategie
#WISSENTEILEN
Vom Monolithen …
#WISSENTEILEN
… zu Microservices
#WISSENTEILEN
?
Migrationsstrategie
#WISSENTEILEN
Big Bang
#WISSENTEILEN
Der „Big Bang“
#WISSENTEILEN
Der „Big Bang“
Microservice-basierte Anwendung „from the
scratch“ neu aufbauen
pro:
• keine Altlasten parallel zu pflegen
contra:
• sehr viele NEUE Baustellen gleichzeitig
#WISSENTEILEN
Der „Big Bang“
„The only thing a Big Bang rewrite
garantuees is a Big Bang!“
Martin Fowler
#WISSENTEILEN
Strangler
Application
#WISSENTEILEN
Die „Strangler Application“
#WISSENTEILEN
Die „Strangler Application“
Microservice-basierte Anwendung „parallel“ zu
bestehendem Monolithen aufbauen
pro:
• geringeres Risiko dank inkrementeller Lernkurve
contra:
• parallele Pflege von zwei Systemen
#WISSENTEILEN
Strategie #1
Stop Digging
#WISSENTEILEN
Die „Stop Digging“ Strategie
„Whenever you find yourself in a hole,
you should stop digging!“
The Law of Hole
#WISSENTEILEN
Die „Stop Digging“ Strategie
Neue Funktionalität nicht im Monolithen
implementieren sondern in einem eigenen
Microservice
• vorgeschalteter Router als Logik-Dispatcher
• Glue-Code zur Data-Integration
#WISSENTEILEN
Die „Stop Digging“ Strategie
Glue-Code als Anti-Corruption Layer, zur
sauberen Trennung der Domain Modelle von
Microservice und Monolith. Datenintegration?
• Aufruf einer Remote API des Monolithen
• direkter Zugriff auf DB des Monolithen
• Halten einer eigenen Daten-Kopie inkl. Sync.
#WISSENTEILEN
Die
„Stop Digging“
Strategie
#WISSENTEILEN
Die
„Stop Digging“
Strategie
#WISSENTEILEN
Die „Stop Digging“ Strategie
pro:
• Monolith wird nicht noch unwartbarer
• Service ist „unabhängig“ vom Monolithen
• Microservices-Erfahrung kann langsam wachsen
contra:
• Probleme des Monolithen bleiben bestehen!
#WISSENTEILEN
Strategie #2
Split Front/Back
#WISSENTEILEN
Die „Split Front/Back“ Strategie
Trennen des Frontends von Business-Logik und
Persistenz.
• aus eins mach zwei
• „natürliche“ Trennung zwischen Presentation-
Logik und Business-Logik nutzen
• Zugriff auf Backend via coarse-grained API
#WISSENTEILEN
Die „Split Front/Back“ Strategie
#WISSENTEILEN
Die „Split Front/Back“ Strategie
#WISSENTEILEN
Die „Split Front/Back“ Strategie
pro:
• Möglichkeit, beide „Welten“ getrennt zu
entwickeln, deployen und skalieren
• Remote API, z.B. REST, für zukünftige
Microservices als positives Abfallprodukt
contra:
• keine finale Lösung sondern eher ein Übergang
#WISSENTEILEN
Strategie #3
Extract Services
#WISSENTEILEN
Die „Extract Services“ Strategie
Bestehende Module des Monolithen extrahieren
und in „standalone“ Microservices überführen
• Monolith schrumpft mit jedem Service
• am Ende bleibt kein/ein extrem kleiner Monolith
• Feature Toggles als „Weiche“ nutzen
#WISSENTEILEN
Die „Extract Services“ Strategie
Vorgehen beim Herauslösen von Modulen in
eigene Microservices:
• Coarse-grained Interface definieren
• Module standalone lauffähig machen
• ggf. Features in Monolithen “deaktivieren“*
*Achtung: kann teure Rückbaumaßnahmen bedeuten
#WISSENTEILEN
Die „Extract Services“ Strategie
#WISSENTEILEN
Die „Extract Services“ Strategie
#WISSENTEILEN
Die „Extract Services“ Strategie
#WISSENTEILEN
Die „Extract Services“ Strategie
pro:
• Step-by-Step Migration
• Monolith verschwindet im Laufe der Zeit
contra:
• Auslagern von Services bedeutet Aufwand
in beiden Welten
#WISSENTEILEN
Los geht‘s.
Aber wie?
#WISSENTEILEN
FAQs
• Wie komme ich zu den richtigen Services?
• Was ist die richtige Anzahl an Services?
• Was ist die richtige Migrationsreihenfolge?
• Wie migriere ich die DB richtig?
• Welcher Herausforderungen erwarten mich?
• Und der Monolith? Den gibt es doch auch noch!
#WISSENTEILEN
Service Design
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Der goldene Schnitt
„Wie schneide ich
Microservices richtig?“
(DI 9:00 – 12:30 Uhr)Speaker
Arne Limburg
#WISSENTEILEN
Guter Service, schlechter Service
Single Responsibility
• Service deckt genau eine Fachlichkeit ab
• Bounded Context
#WISSENTEILEN
Guter Service, schlechter Service
Share Nothing
• „private“ Implementierung
• „private“ Datenbank
• Kommunikation ausschließlich via APIs
#WISSENTEILEN
Guter Service, schlechter Service
Idependence
• planen
• entwickeln
• bauen
• testen
• “live“ stellen
#WISSENTEILEN
Guter Service, schlechter Service
Polyglot
• “best X for the job“ mit dem Ziel der Skalierung
• Technology
• Data Management
• Business Logic
• Skalierung
#WISSENTEILEN
Guter Service, schlechter Service
• hohe Cohesion innerhalb des Service
• lose Koppelung zwischen Services
• Änderungshäufigkeit ähnlich
• businesskritische Prozesse nah beisammen
• Eventual Consistency akzeptabel
• Designe for Failure
#WISSENTEILEN
Wie groß ist Klein
#WISSENTEILEN
Wie groß ist klein
„Don‘t make services as
small as possible.“
(Stefan Tilkov)
#WISSENTEILEN
Wie groß ist klein
„Small enough and not smaller“
(Sam Newmann)
#WISSENTEILEN
Wie groß ist klein
„Created by no more than
a handful of people“
(Michael Feathers)
#WISSENTEILEN
Wie groß ist klein
„Microservices is a label,
not a description.“
(Martin Fowler)
#WISSENTEILEN
Wie groß ist klein
„A microservices ecosystem (ME) is a platform of
services each encapsulating a business capability.
Developers can build, test and release each
microservice independently.
ME enforces an organizational structure of
autonomous long standing teams, each
responsible for one or multiple services.“
(Zhamak Dehghani, ThoughtWorks)
#WISSENTEILEN
Wie groß ist klein
Size of microservice
„guter“
Microservice
Modularisierung
Teamgröße
Austauschbarkeit
Infrastruktur
Verteilte
Kommunikation
Transaktionen &
Konsistenz
#WISSENTEILEN
Wie groß ist klein
Team Size
#WISSENTEILEN
Wie groß ist klein
Team Size
#WISSENTEILEN
Size of microservice
Number of microservices
#WISSENTEILEN
Migration Roadmap
#WISSENTEILEN
#WISSENTEILEN
Motivation für Microservices*
• Agilität?
• Robustheit?
• Kosten?
• Innovationen?
*es kann nur eine höchste Priorität geben
#WISSENTEILEN
Einflussfaktoren für die Migration
• Lernkurve?
• Risikominimierung?
• Sichtbarkeit / Business Mehrwert?
• Aufwand?
• Bindung von Kapazitäten?
• Abhängigkeiten?
#WISSENTEILEN
Phase 1: Warm up
Starten mit einem möglichst einfachen Service*, der
wenig Kopplung zur restlichen Anwendung hat.
• Fokus auf Operational Readiness (CI/CD)
• Fokus auf Microservices Infrastruktur*
• Fokus auf verteilter Architektur*
• Fokus auf Organizational Change *(e.g. Service Mesh)
#WISSENTEILEN
Phase 1: Warm up
*(Martin Fowler: Microservices Prerequisites)
• Rapid Provisioning
• Basic Monitoring
• Rapid App Deployment
#WISSENTEILEN
Phase 1: Warm up
„alter“ Monolith
mit Funktionalität
Authentication
„neuer“ Monolith
neuer
Authentication
Service
Migration
neue Delivery Infrastructure
#WISSENTEILEN
Phase 2: Minimize Dependencies
Wähle Services ohne/mit wenig Rückkoppelungen
zum Monolithen.
• Rückkoppelungen forcieren Abhängigkeiten in
der Entwicklung und der Release-Planung
• minimiere bestehende Abhängigkeiten durch
Anti-Corruption Layer
#WISSENTEILEN
Phase 2: Minimize Dependencies
„alter“ Monolith
mit Abhängigkeiten
„neuer“ Monolith
ohne Abhängigkeiten
ausgelagerter Service
mit unidirektionalen
Abhängigkeiten
MigrationMigration
#WISSENTEILEN
Phase 2: Minimize Dependencies
„alter“ Monolith
mit Abhängigkeiten
„neuer“ Monolith
ohne Abhängigkeiten
ausgelagerter Service
mit bidirektionalen
Abhängigkeiten und ACL
Migration
ACL
Migration
#WISSENTEILEN
Phase 3: Sticky first
Wähle stark verwobene Fachlichkeit und löse diese
sauber auf („DDD ist dein Freund“)
• oft hindern einen unsaubere, historisch
gewachsene Domänenmodelle daran,
weitere sinnvolle Services herauszulösen
#WISSENTEILEN
Phase 3: Sticky first
„alter“ Monolith
mit sticky Session
„neuer“ Monolith
ohne sticky Session
ausgelagerte
Services
Migration
Customer
Session
Customer
Profile
Customer
Payment
Method
Customer
Wishlist
#WISSENTEILEN
Phase 4: Decouple vertically
Löse Services komplett inklusive „user facing“
Komponenten und DB heraus.
• Bereitstellung von entwicklerfreundlichen APIs
für moderne UIs via Facade Service bringt
lediglich Quick-Wins.
• erst ein Aufsplitten inkl. Trennung der Daten
bringt echten Mehrwert
#WISSENTEILEN
Phase 4: Decouple vertically
„alter“ Monolith Services
Migration
„neuer“ Monolith
user
facing
backend
logic
data /
comms
neue
UI / UX
neue API
#WISSENTEILEN
Phase 5: Decouple important stuff
Löse Services mit höchstem Mehrwert heraus.
• Es gilt Kosten gegen Nutzen abzuwägen.
• Was ist wichtig?
• Was ändert sich häufig?
• Was muss unabhängig skalieren können?
#WISSENTEILEN
Phase 5: Decouple important stuff
„alter“ Monolith
mit wichtigster
Komponente
„neuer“ Monolith
ohne wichtigste
Komponente
ausgelagerte
wichtigste
Komponente
Migration
#WISSENTEILEN
Phase 6: Decouple capabilities*
Wäge sinnvoll zwischen Reuse und Rewrite ab.
• nicht blind altem Code übernehmen
• alter Code beinhaltet oft Boilerplate und
berücksichtigt keine Domänengrenzen
• retire and rewrite als Alternative
• IKEA Effekt lässt uns wachsen *(… and not code!)
#WISSENTEILEN
Phase 6: Decouple capabilities
„alter“ Monolith „neuer“ Monolith
Customer
Profile
Service
Migration
Pricing
Service
reuse
rewrite
extract?
retire?
neue Services
via reuse oder rewrite
#WISSENTEILEN
Phase 6: Go Marco first, then Micro
Starte mit Bounded Contexts (DDD) als
Servicegrenzen und verfeinere später bei Bedarf.
• kleine Service bringen oft neue Abhängigkeiten
• kleine Services spiegeln meist DB Sicht wieder*
Distributed Monolith vs. Microservices
*(Anemic Services)
#WISSENTEILEN
Phase 6: Go Marco first, than Micro
Migration
Step 1
Migration
Step 2
„alter“
Monolith
„neuer“
Monolith
Buy
Service
Checkout
Service
Shopping Cart
Service
Hyperlink
#WISSENTEILEN
Phase 7: Atomic Evolutionary Steps
Plane die Migration in „atomaren“ Schritten.
Schaffe dabei stabile Zwischenstände.
• Migration kann aus verschiedensten Gründen
gestoppt werden. Rückbau? Chaos?
• Short Term Plans vs. Long Term Plans
#WISSENTEILEN
Phase 7: Atomic Evolutionary Steps
(Quelle: Thoughtworks)
#WISSENTEILEN
Migration RoadmapW
arm
Up
Minimizedependencies
Stickyfirst
Decouplevertically
Decoupleimportantstuff
Decouplecapabilities
GoMacro,thanMicro
Atomicsteps
Step 1 Step 2 Step 3 Step N
#WISSENTEILEN
Microservices Challenges
#WISSENTEILEN
Es könnte alles
sooo einfach sein!
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
... isses aber
nich!
#WISSENTEILEN
Microservices
Q&A(Things you better care about!)
#WISSENTEILEN
„Welche Services laufen?“
„Sind die Routing-Infos aktuell?“
„Gibt es ‚Chains of Failure‘?“
„Message-Typen im System?“
„Sind die Services sicher?“
„Sind die Daten konsistent?“
#WISSENTEILEN
Service Discovery
#WISSENTEILEN
Wo ist mein Service ...
• Anzahl der Service-Instanzen variiert
• Adressen werden dynamisch zugewiesen
• Client muss den „richtigen“ Service finden
• Services registrieren sich bei Registry
• Client fragt bei Registry nach
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Service Registry/Discovery PLUS
• Load Balancing
• Failure Detection & Health Checks
• Cluster Replication
• Key/Value Storage
#WISSENTEILEN
Wo ist mein Service ...
Client-Side Service Discovery
• Netflix Eureka / Consul + Ribbon Client
• Apache Zookeeper + Zookeeper Client
Server-Side Service Discovery
• AWS Elastic Load Balancer
• Consul / NGNIX Plus + Consul Templating
#WISSENTEILEN
Wo ist mein Service ...
Client-Side Service Discovery
• Netflix Eureka / Consul + Ribbon Client
• Apache Zookeeper + Zookeeper Client
Server-Side Service Discovery
• AWS Elastic Load Balancer
• Consul / NGNIX Plus + Consul Templating
Und was ist mit
Kubernetes?
#WISSENTEILEN
<coding-time />
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Fault Tolerance
#WISSENTEILEN
#WISSENTEILEN
Not available, please call later ...
Ziel ist es, ein „elastisches“, sich selbst
regenerierendes System zu schaffen, um so
eine bestmögliche Verfügbarkeit zu
gewährleisten.
#WISSENTEILEN
Not available, please call later ...
Das System sollte jederzeit fachlich
sauber funktionieren.
#WISSENTEILEN
Im Fokus stehen ...
Verfügbarkeit
Fehlertoleranz
#WISSENTEILEN
Pattern: Traffic Avoidance
• Traffic minimieren via Caching
• Traffic optimieren via Batching
#WISSENTEILEN
Pattern: Design for Failure
• Fehler als Normalfall nicht als Ausnahme
• Automatische Fehlerbehandlung
• Netflix stellt regelmäßig Systeme ab
#WISSENTEILEN
Pattern: Fail sooner than later
• Probleme frühzeitig erkennen
• Fehler gar nicht erst entstehen lassen
• Monitoring von Metrics & Response Times
• Monitoring von Buisness KPIs
#WISSENTEILEN
Pattern: Meaningful Responses
• liefern von Fallbacks / Defaults
• Services-Consumer fehlertolerant
• wie beeinflusst ein Fehler die UX?
#WISSENTEILEN
#WISSENTEILEN
Not available, please call later ...
• Load Balancing (als Basis von „SLAs“)
• Retry on Failure (Temporary Failures)
• Timeouts (Poor Mans Circuit Breaker)
• Circuit Breaker („Sicherung“ für Fail Fast )
• Bulkheads (Dedicated Threadpools)
#WISSENTEILEN
Circuit
Breaker
#WISSENTEILEN
Circuit
Breaker
#WISSENTEILEN
Bulkheads
#WISSENTEILEN
Bulkheads
#WISSENTEILEN
Bulkheads
#WISSENTEILEN
Not available, please call later ...
• DIY Pattern? No way!
• Hystrix, the one and only! Not anymore.
• MicroProfile Fault Tolerance
• Istio Service Mesh
• Traefik Gateway
• …
#WISSENTEILEN
<coding-time />
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Distributed Security
#WISSENTEILEN
Sicher ist sicher! Sicher?
• Application Level (Authentication)
• User Level (Authorization)
• Network Level (Ports, OS, Protocols, ...)
#WISSENTEILEN
Sicher ist sicher! Sicher?
• Single Sign On? Single Sign Off?
• Security Context Propagation / Delegation?
• „Deep“ Auth vs. Border Access Control?
#WISSENTEILEN
Sicher ist sicher! Sicher?
• Authentication
a.k.a. Hotelrezeption
• Authorization
a.k.a. Zimmerschlüssel
#WISSENTEILEN
Sicher ist sicher! Sicher?
• 401 „Unauthorized“
meint eigentlich “Unauthenticated“
• 403 „Forbidden“
meint eigentlich „Unauthorized“
#WISSENTEILEN
Sicher ist sicher! Sicher?
• Server based Security
via Session auf dem Server
• Token based Security
via Austausch von Token
#WISSENTEILEN
Server
based
Security
#WISSENTEILEN
Token
based
Security
#WISSENTEILEN
Sicher ist sicher! Sicher?
JWT (JSON Web Token)
• neue, einfache und kompakte Specs
• Token plus public & private „Claims“
• digitale Signatur und/oder Encryption
• als Bearer Token und für SSO
#WISSENTEILEN
#WISSENTEILEN
Warum JWT?
• ... vs. SWT
• ... vs. SAML
• public/private Keys
• extrem kompakt
• JSON
#WISSENTEILEN
Sicher ist sicher! Sicher?
JWT & API Goals
• Authorize Request
• Verify Sender
• Avoid Man in the Middle
• Expiration
• Request Cloning
#WISSENTEILEN
<coding-time />
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Logging & Monitoring
#WISSENTEILEN
Alles im Blick
• tech. Komponenten (e.g. Request/s in DB)
• Business Metrics (Orders/min)
• semantisches Monitoring als Frühwarnsystem
• Team kann vor dem Fehler einschreiten
• Team kann System permanent verbessern
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Log Aggregation & Monitoring
• Elastic Stack (Elastic Search, Logstash, Kibana)
• via Log Appender (Socket Appender)
• in Echtzeit
• Logstash / Beats - collect
• Elastic Search - store & search
• Kibana - analyze & visualize
#WISSENTEILEN
#WISSENTEILEN
Log Aggregation & Monitoring
Alternativen?
• Splunk
• App Dynamics
• New Relic
• GreyLog (open source)
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
<coding-time />
#WISSENTEILEN
#WISSENTEILEN
Configuration Management
#WISSENTEILEN
Sorry, configuration changed!
• viele Service
• viele Service Teams
• viele Konfigurationen
• viele Konfigurationsänderungen
• Willkommen im Chaos!
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Sorry, configuration changed!
• Self-made
• Configuration Manager (Netflix Archaius)
• Service Discovery Server (Consul, …)
• Automation Server (Puppet, Chef, …)
• Vault „Secrets“ Server
#WISSENTEILEN
<coding-time />
#WISSENTEILEN
#WISSENTEILEN
#WISSENTEILEN
Lessons Learned
#WISSENTEILEN
Lessons Learned
Priorisierung, welches Modul zu welchem Zeitpunkt
als Microservice rausgelöst werden soll:
• z.B. „einfache“ Module zuerst (Erfahrung
sammeln), „Problemkinder“ danach (Mehrwerte
schaffen)
• Ranking: Change-Frequenz, Ressourcen-
Verbrauch, Skalierung, Kommunikation, ...
#WISSENTEILEN
Lessons Learned
Ist das schon alles?
• Zeitpunkt für DB-Migration will gut überlegt sein
• Microservice-Infrastruktur Step-by-Step mit
wachsender Anzahl an Services aufbauen
(Registry, Gateway, Resilience ...)
#WISSENTEILEN
Lessons Learned
• Ohne Domain Driven Design geht es nicht
• Ports & Adapter für einfachere Extraktion
• explizite Service/Endpoint Ownership
• Source-Versionierung statt toter Code
• Monitoring ist die Basis für ALLES
• Env-Var Dokumentation ist PFLICHT
#WISSENTEILEN
Lessons Learned
• Domäne vor Technologie
• vermeide „Shared Data“
• nutze Events zur Synchronisation von Daten
• nutze Events zur Kompensation (Business-TX)
• gebe Async den Vorzug über Sync
• Testing via Consumer-driven Contracts
#WISSENTEILEN
Are u ready to Take-off?
#WISSENTEILEN
#WISSENTEILEN
Martin sagt ...
• Rapid Provisionierung
• Basic Monitoring
• Rapid App Deployment
(Quelle: http://martinfowler.com/bliki/MicroservicePrerequisites.html)
#WISSENTEILEN
Martin sagt ...
(Quelle: http://martinfowler.com/bliki/MicroservicePrerequisites.html)
#WISSENTEILEN
Are u ready
for this ...
powered by
#WISSENTEILEN
Are u ready
for this ...
powered by
#WISSENTEILEN
Are u ready
for this ...
#WISSENTEILEN
Ich sage ...
#WISSENTEILEN
Ich sage ...
#WISSENTEILEN
Ich sage ...
#WISSENTEILEN
Ich sage ...
#WISSENTEILEN
Ich sage ...
#WISSENTEILEN
? ? ?
#WISSENTEILEN
Kontakt
LARS RÖWEKAMP
CIO NEW TECHNOLOGIES
lars.roewekamp@openknowledge.de
+49 (0)441 4082 – 0
@mobileLarson
@_openknowledge
OFFENKUNDIGGUT
#WISSENTEILEN
Bildnachweise 1/3
#1: © fabrikaSimf – shutterstock.com
#5: © Daniel Steger for openphoto.net
#91: © marekuliasz – shutterstock.com
#131: © Freedomz – shutterstock.com
#141: © print10 – istockphoto.com
#223: © RichVintage - istockphoto.com
#WISSENTEILEN
Bildnachweise 2/3
#225: https://www.thoughtworks.com/insights/blog/microservices-
how-large-enterprise-grew-doing-it
#227: © embarc (mit freundlicher Genehmigung)
#231: © marekuliasz - istockphoto.com
#232: © alphaspirit - istockphoto.com
#232: © newafrica - istockphoto.com
#WISSENTEILEN
Bildnachweise 3/3
All other pictures inside this presentation orginate
from pixabay.com or were created by my own.

Weitere ähnliche Inhalte

PDF
Microservices Architecture: Architektur und Patterns
PDF
Hands-On Microservices mit Java
PDF
Aus der Rubrik "Spaß mit Microservices": Transaktionen
PDF
Das passende Backend für meine Apps
PDF
Der goldene Schnitt – Wie schneide ich Microservices richtig?
PDF
Spaß mit Microservices: Transaktionen
PDF
Less Server vs. Serverless?
PDF
Die Matrix: Enterprise-Architekturen jenseits von Microservices
Microservices Architecture: Architektur und Patterns
Hands-On Microservices mit Java
Aus der Rubrik "Spaß mit Microservices": Transaktionen
Das passende Backend für meine Apps
Der goldene Schnitt – Wie schneide ich Microservices richtig?
Spaß mit Microservices: Transaktionen
Less Server vs. Serverless?
Die Matrix: Enterprise-Architekturen jenseits von Microservices

Was ist angesagt? (20)

PDF
Shared Data in verteilten Systemen
PDF
Herausforderung „Multi-Channel Architecture”
PDF
CQRS, der etwas andere Architekturansatz
PDF
Zukunftssichere Architekturen mit Microservices
PDF
Java EE goes Microservices. Are you serious?
PDF
Herausforderung „Multi-Channel“-Architektur
PDF
Modern Lightweight Enterprise Architectures mit Java
PDF
Microservices mit dem MicroProfile
PDF
App-Delivery-Pipeline
PDF
Hilfe, ich will meinen Monolithen zurück!
PDF
Web APIs jenseits von REST & Request/Response
PDF
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
PDF
Cloud Architekturen - von "less Server" zu Serverless
PDF
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
PDF
Mobile Ideation – der sanfte Weg zum mobilen Mehrwert
PDF
The Day after – nach dem Release ist vor dem Release
PPTX
iOS: einheitliche Oberflächen mit Auto Layout
PDF
Enterprise Java auf Diät
PDF
Serverless: The Missing Manual
PDF
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Shared Data in verteilten Systemen
Herausforderung „Multi-Channel Architecture”
CQRS, der etwas andere Architekturansatz
Zukunftssichere Architekturen mit Microservices
Java EE goes Microservices. Are you serious?
Herausforderung „Multi-Channel“-Architektur
Modern Lightweight Enterprise Architectures mit Java
Microservices mit dem MicroProfile
App-Delivery-Pipeline
Hilfe, ich will meinen Monolithen zurück!
Web APIs jenseits von REST & Request/Response
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
Cloud Architekturen - von "less Server" zu Serverless
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
Mobile Ideation – der sanfte Weg zum mobilen Mehrwert
The Day after – nach dem Release ist vor dem Release
iOS: einheitliche Oberflächen mit Auto Layout
Enterprise Java auf Diät
Serverless: The Missing Manual
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Anzeige

Ähnlich wie Microservices Migration: Vom Monolithen zu Microservices (20)

PDF
Der perfekte Microservice
PDF
Java EE meets Microservices
PDF
Microservices - Do one thing well
PDF
DWX Developer Week 2015 - Microservice architecture applied
PDF
Microservices und das Entity Control Boundary Pattern
PPTX
micro services
PPTX
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
PDF
Let's talk about Microservices Migration!
PDF
Microservices – die Architektur für Agile-Entwicklung?
PDF
Back to the Frontend – aber nun mit Microservices
PDF
Mittendrin statt nur dabei: Microservices und Transaktionen
PDF
Microservices - Was EAs zu Microservices wissen sollten
PDF
Lego-Bausteine des Online-Handels
PDF
Micro, Nano, Mono - Microservices verständlich erklärt.
PDF
Micro, Nano, Mono? Microservices verständlich erklärt
PDF
Microservices - Architekturansatz mit grossen Herausforderungen und gewissen ...
PDF
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...
PDF
Anatomie von Microservice Landschaften
PDF
Ist Ihr Unternehmen reif für Microservices?
PDF
Shared Data in verteilten Architekturen
Der perfekte Microservice
Java EE meets Microservices
Microservices - Do one thing well
DWX Developer Week 2015 - Microservice architecture applied
Microservices und das Entity Control Boundary Pattern
micro services
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
Let's talk about Microservices Migration!
Microservices – die Architektur für Agile-Entwicklung?
Back to the Frontend – aber nun mit Microservices
Mittendrin statt nur dabei: Microservices und Transaktionen
Microservices - Was EAs zu Microservices wissen sollten
Lego-Bausteine des Online-Handels
Micro, Nano, Mono - Microservices verständlich erklärt.
Micro, Nano, Mono? Microservices verständlich erklärt
Microservices - Architekturansatz mit grossen Herausforderungen und gewissen ...
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...
Anatomie von Microservice Landschaften
Ist Ihr Unternehmen reif für Microservices?
Shared Data in verteilten Architekturen
Anzeige

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
Machine Learning mit TensorFlow.js
PDF
KI und Architektur
PDF
It's not Rocket Science: Neuronale Netze
PDF
Business-Mehrwert durch KI
PDF
Mehr Sicherheit durch Automatisierung
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
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
PDF
Serverless Survival Guide
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
Machine Learning mit TensorFlow.js
KI und Architektur
It's not Rocket Science: Neuronale Netze
Business-Mehrwert durch KI
Mehr Sicherheit durch Automatisierung
API-Design, Microarchitecture und Testing
Supersonic Java für die Cloud: Quarkus
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Serverless Survival Guide

Microservices Migration: Vom Monolithen zu Microservices