SlideShare ist ein Scribd-Unternehmen logo
Microservices
Do one thing well
Übersicht
Was sind µServices?
Nachteile / Vorteile
Definitionen
Voraussetzungen
Integration
Aufteilen des Monolithen + Datenbank
Wie anfangen?
Beispiel
Zusammenfassung
Quellen
Was sind µServices?
Kleine, autonome Services (Dienste), die zusammen arbeiten.
Do one thing well
Wie klein ist „klein“?
Single Responsibility Principle nach Robert C. Martin
„Gather together those things, that change together for the same reason.“
„small enough, but not smaller“
Autonom
Selbständig deploybar
Kann der Service deployed werden, ohne etwas anderes ändern zu müssen?
Decoupling
Auch auf Teamebene!
Nachteile
Viele deploybare Einheiten
Hohe Modularisierung erforderlich
Latenzen
Können ausfallen - Murphy’s Law
Größere Infrastruktur
Vorteile
Unabhängige Technologien verwenden (MySQL, ElasticSearch, Java, PHP,…)
Fehler kaskadieren nicht
Hochskalierbar
Leichtes Deployment einzelner Einheiten
Composability - Zusammensetzbar
Austauschbar
Entwicklung einzelner Komponenten
Voraussetzungen für µServices
Struktur des Unternehmens lässt es zu
Team ist verantwortlich für den µService
Entwicklung neuer Features dauert, im Moment, lange
Monitoring/Logging
You build it, you run it, you panic
Conway’s Law
Integration
Avoid breaking changes
Integration
Orchestration Choreography
Service 1
Service 2
Service 3
Service 4 Service 1
Event„Befehl“
„Befehl“
„Befehl“
Service 2
Service 3
Service 4
Veröffentlicht
Subscribes
Subscribes
Subscribes
Integration
Orchestration Choreography
God-Classes
Vorteile
Nachteile Mehraufwand
Monitoring
Tracking
Einfacher zu implementieren Weniger Abhängigkeiten
Flexibler
mehrere CRUD-Classes
Integration
Synchron Asynchron
Einfacher
Wissen: erfolgreich?
Blockiert
Long running jobs
Blockiert nicht
annehmen, es hat funktioniert
Request/Response Event-based
Integration - Request/Response
RPC - gRPC
REST
HATEOAS
gRPC Remote Procedure Calls, of course!
Integration - Event Based
Message Queues
RabbitMQ
HTTP (ATOM)
Integration - Zusatz
Service as State Machines
Reactive Extensions
Observables
Semantic Versioning
Koexistierende Endpoint-Versionen
Migration zu neuen Endpunkten
Zusatz
Immer davon ausgehen, dass der Service nicht funktioniert
„Be conservative in what you do, be liberal in what you accept.“
Postel’s Law
API Gateway
Kein wildes Service->Service
Anfang
Neue Features als µService
SharedDB beibehalten
Bounded contexts finden
Stück-für-Stück in µServices auslagern
Abhängigkeiten aufheben - Decoupling
Business capabilities?
Aufteilen des Monolithen
Abhängigkeiten erkennen
modularisieren
Jedes Modul (jeder bounded Context)
Ein µService
Pattern
http://microservices.io/patterns/microservices.html
Datenbank?
Datenbank
Monolithischer Service
Service
Code 1
Service
Code 2
monolithische
Datenbank
Monolithischer Service
Service
Code 1
Service
Code 2
Datenbank
Service 1
Datenbank
Service 2
Service 1 Service 2
Datenbank
Service 1
Datenbank
Service 2
Foreign Keys?
Weglassen - in den Services managen
Transactions?
Transactions
Transactional boundaries - pro Service
Distributed transactions —> Transaction Manager
Compensating transactions wenn eine fehlschlägt (Queue)
Eventual consistency
Transactions nicht aufteilen, wenn wirklich nötig
Beispiel - Uber
https://eng.uber.com/soa/
Schwer, den richtigen Service zu finden (viele!)
Beispiel - Uber
Wenn gefunden: wie ansprechen? REST? RPC?
standardisierter Weg Services zu definieren
IDL - Apache Thrift
Strikte Regeln -> „Vertrag“
Interfaces ändern sich nicht plötzlich - Fehler auf Thrift-Ebene
Interface definition language
Zusammenfassung
No silver bullet
Anfangs mehr Aufwand nötig
Größere Infrastruktur
Schnelleres Deployment
Mehr Fehlerquellen
Keine Abhängigkeiten
Quellen
Building Microservices - Sam Newman
http://microservices.io/
Zalando - https://www.youtube.com/watch?v=I9zpROdDf48
https://dzone.com/articles/microservices-in-practice-1
https://eng.uber.com/building-tincup/
Das Beispiel - https://eng.uber.com/soa/

Weitere ähnliche Inhalte

PDF
Liferay als Plattform für Microservices
PPTX
Windows Azure für Entwickler V1
PDF
Die dunkle Seite der Microservices - und wie du sie besiegen kannst
PDF
Vortrag linux tag
PPTX
Ms community.cloud express-route
PPTX
micro services
PDF
DWX Developer Week 2015 - Microservice architecture applied
PDF
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...
Liferay als Plattform für Microservices
Windows Azure für Entwickler V1
Die dunkle Seite der Microservices - und wie du sie besiegen kannst
Vortrag linux tag
Ms community.cloud express-route
micro services
DWX Developer Week 2015 - Microservice architecture applied
Servicierung von Monolithen - Der Weg zu neuen Technologien bis hin zum Servi...

Ähnlich wie Microservices - Do one thing well (20)

PDF
BATbern41 Microservices@Enterprise
PPTX
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
PPTX
00 Einleitung und Übersicht zur COMLINE Cloud Service Plattform - CSP
PDF
Anatomie von Microservice Landschaften
PDF
Pragmatic SOA - Beschränken auf das Wesentliche
 
PDF
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
KEY
Server Revolutions- Der Spring Source DM Server
PPT
C5 Mashup
PDF
OSLC in Aktion
PDF
Serverless Application Framework
PDF
Steinzeit war gestern! Wege der cloud-nativen Evolution
PPTX
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
PDF
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...
PDF
Microservices und das Entity Control Boundary Pattern
PDF
Java EE meets Microservices
PPTX
Cloud-Native ohne Vendor Lock-in mit Kubernetes
PDF
Architektur und Automation als Enabler für DevOps
PDF
Cloud-native Apps 2.0
PPTX
Splunk Webinar: Splunk for Microsoft Exchange
PPTX
Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn...
BATbern41 Microservices@Enterprise
Microservice architecture applied. 14 Praxis-Tipps für die Nutzung von Micros...
00 Einleitung und Übersicht zur COMLINE Cloud Service Plattform - CSP
Anatomie von Microservice Landschaften
Pragmatic SOA - Beschränken auf das Wesentliche
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Server Revolutions- Der Spring Source DM Server
C5 Mashup
OSLC in Aktion
Serverless Application Framework
Steinzeit war gestern! Wege der cloud-nativen Evolution
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
Integrationsszenarien in modernen Anwendungslandschaften - OPITZ CONSULTING -...
Microservices und das Entity Control Boundary Pattern
Java EE meets Microservices
Cloud-Native ohne Vendor Lock-in mit Kubernetes
Architektur und Automation als Enabler für DevOps
Cloud-native Apps 2.0
Splunk Webinar: Splunk for Microsoft Exchange
Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn...
Anzeige

Mehr von myposter GmbH (10)

PDF
Concepts of Clean Code adapted for JavaScript - Tech'n'Drinks @myposter
PDF
Clean(er) Code - Tech'n'Drinks @myposter
PDF
ReRxSwift
PDF
Vue - State Transitions
PDF
Vue - Composing Components
PDF
Vue - the Progressive Framework
PDF
Optimising Image Loading
PDF
Warum Affen die besseren Softwaretester sind
PDF
Reactive x
PDF
How Browsers Work
Concepts of Clean Code adapted for JavaScript - Tech'n'Drinks @myposter
Clean(er) Code - Tech'n'Drinks @myposter
ReRxSwift
Vue - State Transitions
Vue - Composing Components
Vue - the Progressive Framework
Optimising Image Loading
Warum Affen die besseren Softwaretester sind
Reactive x
How Browsers Work
Anzeige

Microservices - Do one thing well