Microservices – die Architektur
für Agile-Entwicklung?
Christian Baranowski
Web - Application Mobile - Application
Application
Server
Presentation-LayerBusiness-LayerData-Layer
DatabaseFilesystem …
...
Web - Application Mobile - Application
Application
Server
Presentation-LayerBusiness-LayerData-Layer
DatabaseFilesystem …
...
Any organization that designs a system (defined
broadly) will produce a design whose structure is a
copy of the organizatio...
Agile Entwicklung und Software Architektur
Web - Application Mobile - Application
Application
Server
Presentation-LayerBus...
Agile Entwicklung und Software Architektur
Component Teams
Web - Application Mobile - Application
Application
Server
Presentation-LayerBusiness-LayerData-Layer
DatabaseFilesystem …
...
… selbstorganisierte Teams
agile „FeaturesTeams“ sind…
… Teams die über längere Zeit
zusammen „Feature“ realisieren
agile „FeaturesTeams“ sind…
… Teams die alle notwendigen Arbeiten zur
Bereitstellung des „Feature“ verantwortet 

agile „FeaturesTeams“ sind…
… alle Teammitglieder zu 100%
einem „Feature“ Team zugeordnet
in agilen „FeaturesTeams“ sind…
Feature Teams and Agile
• Manifesto for Agile Software Development
• Our highest priority is to satisfy the customer throu...
…designs emerge from self-organizing teams
Feature Team A Feature Team B Feature Team C
Business
Expert
Business
Expert
Bu...
Microservice Architektur
Feature Team A Feature Team B Feature Team C
http://martinfowler.com/articles/microservices.html
...
Monolithische und Microservice Architekturen
Loose Kopplung der einzelnen Services in
Anwendungen ermöglicht die Aufteilung
der Software in mehrere getrennte
Projekte.
Eine Microservice Architektur
ermöglicht agile Lösungen durch die
richtige Technologie für das richtige
Probleme. Kurz ges...
Einzelne Services lassen sich getrennt
Erstellen und in Betrieb nehmen dies
führt zu einfachen und schnellen
Continuous De...
Die Teams sind für den gesamten
Lebenszyklus des Service verantwortlich
von der Entwicklung bis in den Betrieb.
Abstimmung zwischen den
Teams beschränkt sich auf die
Vereinbarung der Schnittstellen
und Schnittstellenverträge.
Abstimmung zwischen den Teams
gemeinsame Datenbank
Feature Team A
Feature Team B
Abstimmung zwischen den Teams
REST API (Service)
Feature Team A Feature Team B
Abstimmung zwischen den Teams
Link
Feature Team A
Feature Team B
Abstimmung zwischen den Teams
MQ
Messaging
Feature Team A Feature Team B
Microservices Baukasten von Netflix
Service A
Service B
Service B
Eureka
Zuul
Ribbon Client
Ribbon Client
https://github.co...
Microservice Skalierung
Z
axis
–
data
partitoning
Scale
by
splitting
sim
ilarthings
X axis – horizontal duplication
Scale ...
Microservices eignet sich nicht für jede
Software Architektur. Der Architekturstil
richtet sich besonderes an große
Lösung...
Eine Microservice Architektur
führt zusätzliche Komplexität in
eine Architektur ein, mit der
umgegangen werden muss.
Eine monolithische Architektur
ist einfach zu bauen und für
kleine Projekte geeignet.
Transaktion Management in einer
Microservices Architektur mit
unterschiedlichen Datenbanken
ist eine große Herausforderung.
Polyglotte Plattform können
auch zu einem Technologie
Dschungel führen.
Es gibt neben Microservices auch
andere Möglichkeiten z.B. Plugin
Architekturen wie OSGi die es
ermöglichen Teile getrennt...
Microservices – die
Architektur für Agile-
Entwicklung?
Nächste SlideShare
Wird geladen in …5
×

Microservices – die Architektur für Agile-Entwicklung?

1.465 Aufrufe

Veröffentlicht am

Um agile Entwicklung sinnvoll in einem Projekt zu ermöglichen, spielt die Architektur des Systems eine entscheidende Rolle. In einem agilen Projekt sind Architektureigenschaften wie Installierbarkeit und Prüfbarkeit entscheidend, da die Software in kurzen Abständen regelmäßig geliefert und im besten Fall dem Endnutzer zur Verfügung gestellt wird. Diese kurzen Releasezyklen gelingen nur durch ein hohes Maß an Automatisierung. Agile Projekte benötigen bereits passende Lösungsansätze in der Architektur, die es erlauben eine Continous Delivery Pipeline möglichst einfach zu realisieren; das Architekturmuster „Microservices“ versucht u.A. diesen Anforderungen gerecht zu werden.

Weitere Vorteile des Architekturmusters ergeben sich bei der Skalierung von Projekten. Durch den Einsatz von „Microservices“ können Projekte einfach aufgeteilt und parallel von mehreren Cross-Functional Teams mit agilen Methoden umgesetzt werden.

Die Idee eines Microservice ist nicht neu: das System wird in kleine, losgelöste Anwendungen (sog. Microservices) aufgeteilt. Diese Bausteine stellen Ihre Funktionalität als Service zur Verfügung. Der Vortrag gibt einen Praxiseinblick, auf welche Weise man vom Einsatz des Architekturmusters „Microservice“ in einem agilen Projektumfeld profitieren kann. Es wird aufgezeigt, wo sich in der Praxis Schwierigkeiten ergeben und wie man diesen vorbeugen kann. Der gesamte Vortrag gibt einen grundlegenden Einblick in die agile Entwicklung auf Basis einer Microservice-Architektur.

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.465
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
125
Aktionen
Geteilt
0
Downloads
39
Kommentare
0
Gefällt mir
6
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Microservices – die Architektur für Agile-Entwicklung?

  1. 1. Microservices – die Architektur für Agile-Entwicklung? Christian Baranowski
  2. 2. Web - Application Mobile - Application Application Server Presentation-LayerBusiness-LayerData-Layer DatabaseFilesystem … external Services Feature Product Owner User Stories Developers & Testers Scrum Master Agile Entwicklung und Software Architektur
  3. 3. Web - Application Mobile - Application Application Server Presentation-LayerBusiness-LayerData-Layer DatabaseFilesystem … external Services Product Owner User Stories Developers & Testers Scrum Master Agile Entwicklung und Software Architektur Feature Data Sprint Logic Sprint UI Sprint
  4. 4. Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. -- Melvyn Conway, 1967
  5. 5. Agile Entwicklung und Software Architektur Web - Application Mobile - Application Application Server Presentation-LayerBusiness-LayerData-Layer DatabaseFilesystem … external Services Feature Product Owner UX Team Middelware Team DB Team User Stories Component Teams Conway's Law in action
  6. 6. Agile Entwicklung und Software Architektur Component Teams
  7. 7. Web - Application Mobile - Application Application Server Presentation-LayerBusiness-LayerData-Layer DatabaseFilesystem … external Services Feature Product Owner User Stories Agile Entwicklung und Software Architektur Feature Feature Epics Feature Teams
  8. 8. … selbstorganisierte Teams agile „FeaturesTeams“ sind…
  9. 9. … Teams die über längere Zeit zusammen „Feature“ realisieren agile „FeaturesTeams“ sind…
  10. 10. … Teams die alle notwendigen Arbeiten zur Bereitstellung des „Feature“ verantwortet 
 agile „FeaturesTeams“ sind…
  11. 11. … alle Teammitglieder zu 100% einem „Feature“ Team zugeordnet in agilen „FeaturesTeams“ sind…
  12. 12. Feature Teams and Agile • Manifesto for Agile Software Development • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. • Business people and developers must work together daily throughout the project. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. • The best architectures, requirements, and designs emerge from self-organizing teams.
  13. 13. …designs emerge from self-organizing teams Feature Team A Feature Team B Feature Team C Business Expert Business Expert Business Expert Java MySQL Tomcat Java OSGi jQuery NodeJS MongoDB AngularJS
  14. 14. Microservice Architektur Feature Team A Feature Team B Feature Team C http://martinfowler.com/articles/microservices.html How big is a microservice? The largest sizes reported follow Amazon's notion of the Two Pizza Team
  15. 15. Monolithische und Microservice Architekturen
  16. 16. Loose Kopplung der einzelnen Services in Anwendungen ermöglicht die Aufteilung der Software in mehrere getrennte Projekte.
  17. 17. Eine Microservice Architektur ermöglicht agile Lösungen durch die richtige Technologie für das richtige Probleme. Kurz gesagt Polyglotte Lösungen und Plattformen!
  18. 18. Einzelne Services lassen sich getrennt Erstellen und in Betrieb nehmen dies führt zu einfachen und schnellen Continuous Delivery Pipelines.
  19. 19. Die Teams sind für den gesamten Lebenszyklus des Service verantwortlich von der Entwicklung bis in den Betrieb.
  20. 20. Abstimmung zwischen den Teams beschränkt sich auf die Vereinbarung der Schnittstellen und Schnittstellenverträge.
  21. 21. Abstimmung zwischen den Teams gemeinsame Datenbank Feature Team A Feature Team B
  22. 22. Abstimmung zwischen den Teams REST API (Service) Feature Team A Feature Team B
  23. 23. Abstimmung zwischen den Teams Link Feature Team A Feature Team B
  24. 24. Abstimmung zwischen den Teams MQ Messaging Feature Team A Feature Team B
  25. 25. Microservices Baukasten von Netflix Service A Service B Service B Eureka Zuul Ribbon Client Ribbon Client https://github.com/Netflix/eureka https://github.com/Netflix/zuul https://github.com/Netflix/ribbon Hystrix https://github.com/Netflix/Hystrix
  26. 26. Microservice Skalierung Z axis – data partitoning Scale by splitting sim ilarthings X axis – horizontal duplication Scale by cloning Y axis – functional decomposition Scaling by splitting different things. Quelle: THE ART OF SCALABILITY, MARTIN L. ABBOTT & MICHAEL T. FISHER
  27. 27. Microservices eignet sich nicht für jede Software Architektur. Der Architekturstil richtet sich besonderes an große Lösungen z.B. Internet Dienste mit besonderen Anforderungen an Skalierung.
  28. 28. Eine Microservice Architektur führt zusätzliche Komplexität in eine Architektur ein, mit der umgegangen werden muss.
  29. 29. Eine monolithische Architektur ist einfach zu bauen und für kleine Projekte geeignet.
  30. 30. Transaktion Management in einer Microservices Architektur mit unterschiedlichen Datenbanken ist eine große Herausforderung.
  31. 31. Polyglotte Plattform können auch zu einem Technologie Dschungel führen.
  32. 32. Es gibt neben Microservices auch andere Möglichkeiten z.B. Plugin Architekturen wie OSGi die es ermöglichen Teile getrennt zu bauen.
  33. 33. Microservices – die Architektur für Agile- Entwicklung?

×