Anatomie

von

Microservice

Landschaften
Michael Plöd
Principal Consultant bei innoQ
@bitboss
Die
klassische old school
Software-Architektur
HugeSOAPEndpoints
HugeBusinessServices
HugeDAOs
Business
Model
Client
DTO
View

Model
Central RDBMS
ER-Model
Network
Netwo...
HugeSOAPEndpoints
HugeBusinessServices
HugeDAOs
Business
Model
Client
DTO
View

Model
Central RDBMS
ER-Model
Network
Netwo...
„In short, the microservice
architectural style is an approach to
developing a single application as a
suite of small serv...
1 Klein
2 Autonom
3 Kollaborativ
Accounting
Customer
Customer
Service
Monetary
Transactions
Crediting
Billing
Trading
Microservices
sind kein „Freibier“
!
Die Herausforderung
ist weniger die
Implementierung eines
Microservices selbst,
sondern das Umfeld in
dem man selbige
be...
Herausforderungen
Business
Design
Deployment
Collabora-
tion
Monitoring
Interface
Design
Resilience
1 Business Design
Leite Microservices vom

Bounded Context ab
Modularisierung ist ein 1.
Schritt
Hinterfrage N-Tier
Archit...
2 Interface Design
Orchestrierung vs Choreographie
oder
Synchron vs Asynchron
AuthorService
EMail Service
Roles Service
OutBound Service
Print Service
Post Service
Synchrone Orchestrierung
AuthorService
EMail Service
Roles Service
OutBound Service
Asynchrone Choreographie
Author
Created
Event
!
Asynchrone
Microservices
benötigen eine
Message Broker
Infrastruktur
Lasst uns den ohnehin
lizensierten ESB der
gescheiterten SOA Initiative
verwenden
NEIN
!
Präferiere „dumme
Rohre“ mit klugen
Endpoints als Message
Broker Architektur
!
Wie müssen
Microservices
deployed werden?
Berücksichtige dabei
Loose Kopplung!
3 Deployment
Die typische Evolution einer
Microservice Landschaft…
µService
µService
t
µService
µService
µService
µService
µService
µService
t
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µServ...
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µServ...
HELP!
t
µService µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µServi...
t
µService µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µSe...
!
Vor der Einführung
von Microservices
MUSS man einen
hohen
Automatisierungs-
Grad erreicht haben
> Continuous Delivery
> Automatisierte Bereitstellung
von Infrastruktur
> Automatisiertes Testing
4 Collaboration
Sind Microservices das
Wiederauferstehen der
Spaghetti Integration?
AuthorService
EMail Service
Roles Serv...
Hard wiring von Service-Endpoints
funktioniert nicht in einer hoch
automatisierten Cloud-Landschaft
AuthorService
EMail Se...
Will man alle Microservices auf einer
Maschine deployen?
AuthorService
EMail Service
Roles Service
OutBound
Service
Print ...
oder zieht man einen Host pro
Microservice vor?
AuthorService
EMail Service
Roles Service
OutBound
Service
Print Service
P...
Docker?
AuthorService
EMail Service
Roles Service
OutBound
Service
Print Service
Post Service
Rollout einer neuen Version
AuthorService
EMail Service
1.0
Rollout einer neuen Version
AuthorService
EMail Service
1.0
EMail Service

1.1
Rollout einer neuen Version
AuthorService
EMail Service
1.0
EMail Service

1.1
Wie bekommt der AutorService nun den 1.1 En...
Rollout einer neuen Version
AuthorService
EMail Service
1.0
EMail Service

1.1
Wie bekommt der AutorService nun den 1.1 En...
Rollout einer neuen Version
AuthorService
EMail Service
1.0
EMail Service

1.1
Wie bekommt der AutorService nun den 1.1 En...
Rollout einer neuen Version
AuthorService
EMail Service

1.1
Wie bekommt der AutorService nun den 1.1 Endpoint?
!
Service Registries wie
zB Netflix Eureka,
Zookeeper,
Kubernetes or Etcd
helfen!
5 Resilience
Die Fähigkeit eines Systems mit
unerwarteten Ereignissen
umzugehen
• ohne dass es der User merkt
• mit gracef...
>
Microservice Systeme sind
komplex und zu einem hohen
Grad verteilt
> Fehler passieren und sind nicht
vorhersehbar
> Roll...
AuthorService
EMail Service Roles Service
THREAD POOL
AuthorService
EMail Service Roles Service
THREAD POOL
AuthorService
EMail Service Roles Service
THREAD POOL
Wird langsamer und langsamer
AuthorService
EMail Service Roles Service
THREAD POOL
Wird langsamer und langsamer
Thread Pool ist voll
AuthorService
EMail Service Roles Service
THREAD POOL
Wird langsamer und langsamer
Thread Pool ist voll
Keine Requests zu
...
AuthorService
EMail Service Roles Service
THREAD POOL
Wird langsamer und langsamer
Thread Pool ist voll
Eingehende
Request...
!
Führe eine Bulkhead
und Circuit Breaker
Komponente ein
AuthorService
EMail Service Roles Service
THREAD POOL THREAD POOL
Bulkheads
Circuit Breakers
Source: https://github.com/Netflix/Hystrix/wiki/How-it-Works
https://github.com/Netflix/Hystrix/wiki/How-It-Works
Wie funkt...
6 Monitoring
Es ist wichtig, frühzeitig eine
ganzheitliche Sicht auf das System
zu bekommen
> Es ist nicht ausreichend, jede
Node einzeln zu monitoren
>
Es muss gewährleistet sein, dass
alle Logs / Statistiken von ...
Request Correlation IDs
AuthorService
EMail Service
Roles Service
OutBound
Service
Print Service
Post Service
CID: 1502
CI...
Herausforderung
angenommen?
Business
Design
Deployment
Collabora-
tion
Monitoring
Interface
Design
Resilience
Fragen?
Michael Plöd
@bitboss
http://slideshare.net/mploed
michael.ploed@innoq.com
Nächste SlideShare
Wird geladen in …5
×

Anatomie von Microservice Landschaften

1.255 Aufrufe

Veröffentlicht am

Building a Microservice is no hard task these days. With current frameworks it is fairly easy to create a self contained application that exposes Services via a RESTful interface. The Challenge for Microservices lies within the overall landscape: how to they interact with each other? How about service lookup? What about resilience? This session adresses the usual building blocks that are needed for Microservice landscapes and gives an overview of suitable open source frameworks in the market.

Veröffentlicht in: Software
0 Kommentare
5 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.255
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
6
Aktionen
Geteilt
0
Downloads
40
Kommentare
0
Gefällt mir
5
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Anatomie von Microservice Landschaften

  1. 1. Anatomie
 von
 Microservice
 Landschaften
  2. 2. Michael Plöd Principal Consultant bei innoQ @bitboss
  3. 3. Die klassische old school Software-Architektur
  4. 4. HugeSOAPEndpoints HugeBusinessServices HugeDAOs Business Model Client DTO View
 Model Central RDBMS ER-Model Network Network
  5. 5. HugeSOAPEndpoints HugeBusinessServices HugeDAOs Business Model Client DTO View
 Model Central RDBMS ER-Model Network Network MONOLITH One huge system to serve them all
  6. 6. „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.“ Martin Fowler: http://martinfowler.com/articles/microservices.html
  7. 7. 1 Klein 2 Autonom 3 Kollaborativ
  8. 8. Accounting Customer Customer Service Monetary Transactions Crediting Billing Trading
  9. 9. Microservices sind kein „Freibier“
  10. 10. ! Die Herausforderung ist weniger die Implementierung eines Microservices selbst, sondern das Umfeld in dem man selbige betreibt.
  11. 11. Herausforderungen Business Design Deployment Collabora- tion Monitoring Interface Design Resilience
  12. 12. 1 Business Design Leite Microservices vom
 Bounded Context ab Modularisierung ist ein 1. Schritt Hinterfrage N-Tier Architekturen
  13. 13. 2 Interface Design Orchestrierung vs Choreographie oder Synchron vs Asynchron
  14. 14. AuthorService EMail Service Roles Service OutBound Service Print Service Post Service Synchrone Orchestrierung
  15. 15. AuthorService EMail Service Roles Service OutBound Service Asynchrone Choreographie Author Created Event
  16. 16. ! Asynchrone Microservices benötigen eine Message Broker Infrastruktur
  17. 17. Lasst uns den ohnehin lizensierten ESB der gescheiterten SOA Initiative verwenden
  18. 18. NEIN
  19. 19. ! Präferiere „dumme Rohre“ mit klugen Endpoints als Message Broker Architektur
  20. 20. ! Wie müssen Microservices deployed werden? Berücksichtige dabei Loose Kopplung!
  21. 21. 3 Deployment Die typische Evolution einer Microservice Landschaft…
  22. 22. µService µService t
  23. 23. µService µService µService µService µService µService t
  24. 24. µService µService µService µService µService µService µService µService µService µService µService µService µService µService t
  25. 25. µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService t
  26. 26. HELP! t µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService
  27. 27. t µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService µService
  28. 28. ! Vor der Einführung von Microservices MUSS man einen hohen Automatisierungs- Grad erreicht haben
  29. 29. > Continuous Delivery > Automatisierte Bereitstellung von Infrastruktur > Automatisiertes Testing
  30. 30. 4 Collaboration Sind Microservices das Wiederauferstehen der Spaghetti Integration? AuthorService EMail Service Roles Service OutBound Service Print Service Post Service
  31. 31. Hard wiring von Service-Endpoints funktioniert nicht in einer hoch automatisierten Cloud-Landschaft AuthorService EMail Service Roles Service OutBound Service Print Service Post Service
  32. 32. Will man alle Microservices auf einer Maschine deployen? AuthorService EMail Service Roles Service OutBound Service Print Service Post Service
  33. 33. oder zieht man einen Host pro Microservice vor? AuthorService EMail Service Roles Service OutBound Service Print Service Post Service
  34. 34. Docker? AuthorService EMail Service Roles Service OutBound Service Print Service Post Service
  35. 35. Rollout einer neuen Version AuthorService EMail Service 1.0
  36. 36. Rollout einer neuen Version AuthorService EMail Service 1.0 EMail Service
 1.1
  37. 37. Rollout einer neuen Version AuthorService EMail Service 1.0 EMail Service
 1.1 Wie bekommt der AutorService nun den 1.1 Endpoint?
  38. 38. Rollout einer neuen Version AuthorService EMail Service 1.0 EMail Service
 1.1 Wie bekommt der AutorService nun den 1.1 Endpoint?
  39. 39. Rollout einer neuen Version AuthorService EMail Service 1.0 EMail Service
 1.1 Wie bekommt der AutorService nun den 1.1 Endpoint?
  40. 40. Rollout einer neuen Version AuthorService EMail Service
 1.1 Wie bekommt der AutorService nun den 1.1 Endpoint?
  41. 41. ! Service Registries wie zB Netflix Eureka, Zookeeper, Kubernetes or Etcd helfen!
  42. 42. 5 Resilience Die Fähigkeit eines Systems mit unerwarteten Ereignissen umzugehen • ohne dass es der User merkt • mit graceful service degradation TAKEN FROM UWE FRIEDRICHSEN
  43. 43. > Microservice Systeme sind komplex und zu einem hohen Grad verteilt > Fehler passieren und sind nicht vorhersehbar > Roll Forward ist wichtiger wie Roll Back
  44. 44. AuthorService EMail Service Roles Service THREAD POOL
  45. 45. AuthorService EMail Service Roles Service THREAD POOL
  46. 46. AuthorService EMail Service Roles Service THREAD POOL Wird langsamer und langsamer
  47. 47. AuthorService EMail Service Roles Service THREAD POOL Wird langsamer und langsamer Thread Pool ist voll
  48. 48. AuthorService EMail Service Roles Service THREAD POOL Wird langsamer und langsamer Thread Pool ist voll Keine Requests zu anderen 
 Downstream Systemen
 sind mehr möglich
  49. 49. AuthorService EMail Service Roles Service THREAD POOL Wird langsamer und langsamer Thread Pool ist voll Eingehende Requests hängen
  50. 50. ! Führe eine Bulkhead und Circuit Breaker Komponente ein
  51. 51. AuthorService EMail Service Roles Service THREAD POOL THREAD POOL Bulkheads Circuit Breakers
  52. 52. Source: https://github.com/Netflix/Hystrix/wiki/How-it-Works https://github.com/Netflix/Hystrix/wiki/How-It-Works Wie funktioniert Hystrix?
  53. 53. 6 Monitoring Es ist wichtig, frühzeitig eine ganzheitliche Sicht auf das System zu bekommen
  54. 54. > Es ist nicht ausreichend, jede Node einzeln zu monitoren > Es muss gewährleistet sein, dass alle Logs / Statistiken von alles Nodes konsolidiert werden können > Requests müssen an einer Stelle über das ganze System hinweg analysiert werden können
  55. 55. Request Correlation IDs AuthorService EMail Service Roles Service OutBound Service Print Service Post Service CID: 1502 CID: 1502 CID: 1502 CID: 1502 CID: 1502 CID: 1502
  56. 56. Herausforderung angenommen? Business Design Deployment Collabora- tion Monitoring Interface Design Resilience
  57. 57. Fragen? Michael Plöd @bitboss http://slideshare.net/mploed michael.ploed@innoq.com

×