Anatomie von Microservice Landschaften

1.095 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
4 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.095
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
15
Aktionen
Geteilt
0
Downloads
36
Kommentare
0
Gefällt mir
4
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

×