Aspekt   Monolith Mikroservices
Freiheit bei der Wahl von Programmiersprachen    festgelegt  freie Wahl (aber ev. Wildwuchs)
Komplexität der Entwicklungsaufgaben mittel hoch in Bezug auf das Gesamtsystem,
niedrig in Bezug auf Teilsystem
Horizontale und vertikale Skalierbarkeit vertikal nur bis zu einer bestimmten Grenze skalierbar (Rechenpower, Speicher etc.), horizontal muss entsprechend mehr Rechenleistung vervielfacht werden beides gut skalierbar
Betriebssicherheit bzw. Zuverlässigkeit weniger  Stellen können ausfallen, Ausfall ist gleichbedeutend mit Totalausfall (ohne horiz. Skal.) Separation of concerns (Teilsystem können weiterlaufen),  Wahrscheinlichkeit für Teilausfall statistisch höher
Einführung neuer Technologien Schwierig weil "alles" geändert werden muss. Einzelne Mikroservices lassen sich  leichter upgraden.
Flexibilität bei der Teambildung weniger flexibel, aber möglicherweise universeller einsetzbar höher, weil Verantwortlichkeiten bei Microservices liegen
Testen Integrationstests sind leichter durch  automatische Tests abzubilden (natürlich gibt es auch beim Monolith generell weniger Integration verschiedener Komponenten) einzelne Microservices  lassen sich leichter mit hoher Testabdeckung testen.
Debugging Debugger leicht einsetzbar, Aufwand kann aber höher sein. Fehler gegebenenfalls leichter auf einen Knoten einzugrenzen. Falls nicht (Integrationsfehler) stehen wenige Debugging-Werkzeuge zur Verfügung.
Betriebliche Komplexität bzw. Infrastrukturkosten Hardware-Kosten bei Skalierung hoch mehr Netzwerktechnik, besser skalierbar z.B. auch durch Containerisierung
Deployment einfach, aber umfangreich kleinteilig, aber komplexer
Agilität bei der Entwicklung bzw. organisatorischer Aufwand mehr Agilität möglich Schnittstellen müssen zumindestens klar definiert werden (Planung)

















Last modified: Monday, 31 October 2022, 12:27 PM