Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Zukunftssichere Architekturen mit Microservices

69 Aufrufe

Veröffentlicht am

Mit dem Begriff „Microservice-Architektur“ wird der Architekturstil beschrieben, bei dem mehrere unabhängige Services eine Applikation bilden.
Aber in welchen Situationen ist die Wahl dieses Ansatzes sinnvoll? Welche Konsequenzen hat es, wenn ich mich dafür entscheide? Wie finde ich den richtigen Service-Schnitt? Und wie baue ich ein passendes Frontend dazu?
Der Vortrag gab einen guten Überblick über die Herausforderungen und deren Lösungsmöglichkeiten und beleuchtete dabei auch Themen wie Testing und Continuous Delivery.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Zukunftssichere Architekturen mit Microservices

  1. 1. #WISSENTEILEN Zukunftssichere Architekturen mit Microservices Arne Limburg @ArneLimburg | @_openknowledge
  2. 2. #WISSENTEILEN SOA
  3. 3. #WISSENTEILEN Monolith
  4. 4. #WISSENTEILEN Verteilte Systeme
  5. 5. #WISSENTEILEN Microservices klein
  6. 6. #WISSENTEILEN „Eine Einheit, die von einem kleinen Team komplett – also fachlich und technisch – beherrscht werden kann.” Oliver Wegner (ehemals OTTO)
  7. 7. #WISSENTEILEN Microservices klein lose gekoppelt
  8. 8. SERVICESCHNITT NACH DOMAINOBJECTS? Customer ShoppingCart Product
  9. 9. Customer ShoppingCart Product SERVICESCHNITT NACH DOMAINOBJECTS?
  10. 10. Microservices maßgeschneidert | Arne Limburg „If every service has to be updated at the same time, it‘s not loosely coupled” by Adrian Cockcroft (ehemals Netflix)
  11. 11. Customer ShoppingCart Product SERVICESCHNITT NACH DOMAINOBJECTS?
  12. 12. #WISSENTEILEN Bounded Context? • Klare Grenzen • Business-Prozesse • Inkonsistenzen vermeiden • e.g. „check out“ • e.g. „search products“ • e.g. „my recommendations“
  13. 13. SERVICESCHNITT NACH BOUNDED CONTEXTS
  14. 14. GEMEINSAME OBJEKTE?
  15. 15. GEMEINSAME DATEN?
  16. 16. #WISSENTEILEN Microservices klein lose gekoppelt robust
  17. 17. Resilience & Compensation
  18. 18. Shipping SERVICE NICHT VERFÜGBAR
  19. 19. SERVICE NICHT VERFÜGBAR
  20. 20. Observability
  21. 21. #WISSENTEILEN Microservices klein lose gekoppelt robust
  22. 22. Tolerant Reader Pattern Tolerant gegenüber unbekannten Feldern Umgang mit x-extensible-enum http://zalando.github.io/restful-api-guidelines
  23. 23. Beispiel address_type: type: string x-extensible-enum: - private - business EXKURS: X-EXTENSIBLE-ENUM
  24. 24. Tolerant Reader Pattern Tolerant gegenüber unbekannten Feldern Umgang mit x-extensible-enum http://zalando.github.io/restful-api-guidelines Tolerant gegenüber unbekannten Statuscodes HTTP Status 301 folgen
  25. 25. Photo by Irene Fertik, USC News Service. Copyright 1994, USC. „Be conservative in what you do, Be liberal in what you accept from others“ RFC 793, Robustness Principal (John Postel)
  26. 26. Es darf nichts entfernt werden Keine Veränderung von Verarbeitungsregel Optionales darf nie Required werden http://zalando.github.io/restful-api-guidelines Alles was hinzugefügt wird, muss optional sein
  27. 27. #WISSENTEILEN Service Backend API Service Frontend Mobile Frontend Another Service Backend B2B Client Sam e Deploym ent Same Company Any Client
  28. 28. WELCHE CLIENTS NUTZEN MICH?
  29. 29. API (PROVIDER CONTRACT)
  30. 30. CONSUMER CONTRACT
  31. 31. CONSUMER CONTRACT – YAGNI
  32. 32. Consumer Contract Consumer Provider Consumer Tests Provider Tests CONSUMER-DRIVEN CONTRACT TESTING
  33. 33. Execute Own Provider Tests Generate Consumer Contract Execute Depending Provider Tests Deploy to Stage PIPELINE TO DEPLOY TO STAGE
  34. 34. Execute Own Provider Tests Generate Consumer Contract Execute Depending Provider Tests Deploy to Stage Achtung: Abwärtskompatibilität ist trotzdem notwendig! PIPELINE TO DEPLOY TO STAGE
  35. 35. Execute Own Provider Tests Generate Consumer Contract Execute Depending Provider Tests Deploy to Stage BREAKING CHANGE DES PROVIDERS
  36. 36. Execute Own Provider Tests Generate Consumer Contract Execute Depending Provider Tests Deploy to Stage BREAKING CHANGE DES CONSUMERS
  37. 37. #WISSENTEILEN Microservices klein lose gekoppelt robust Fazit
  38. 38. #WISSENTEILEN ? ? ? FRAGEN
  39. 39. KONTAKT Arne Limburg, Software Architect OFFENKUNDIGGUT arne.limburg@openknowledge.de +49 (0)441 4082 – 0 / 154 Icons in this presentation designed by “Freepik”, “Nice and Serious” and “Elegant Themes” from www.flaticon.com

×