Katalog
concept#Architektur#Softwaretechnik#Plattform#Zuverlässigkeit

Monolithische Architektur

Architekturstil, der alle Anwendungsfunktionen in einer einzigen, zusammenhängenden Codebasis bündelt.

Monolithische Architektur beschreibt die Bündelung aller Komponenten einer Anwendung in einer einzigen, zusammenhängenden Codebasis und Laufzeit.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Architektur
  • Fortgeschritten

Technischer Kontext

Monolithische Datenbanklösungen (z. B. relationale DB)Zentrale AuthentifizierungsdiensteCI/CD-Tools für Mono-Repositories

Prinzipien & Ziele

Modularität innerhalb der Codebasis fördernSingle Deployment Unit und einfache Pipelines bevorzugenKlare Schnittstellen und Verantwortlichkeiten definieren
Umsetzung
Unternehmen, Domäne, Team

Use Cases & Szenarien

Kompromisse

  • Monolith kann zum Entwicklungsklumpen werden
  • Skalierung kann teuer und ineffizient werden
  • Technische Schulden durch fehlende Modularität
  • Innerhalb des Monolithen klare Modulgrenzen und APIs definieren
  • Automatisierte End-to-End-Tests zur Absicherung kritischer Flows
  • Monitoring und Health-Checks zentral verfügbar machen

I/O & Ressourcen

  • Bestehende Codebasis oder neues Monolith-Design
  • Infrastruktur für zentrale Deployments
  • Team mit vollständigem Produktkontext
  • Einheitliche Anwendungseinheit
  • Zentrale CI/CD-Pipeline
  • Klar definierte Modulgrenzen innerhalb der Codebasis

Beschreibung

Monolithische Architektur beschreibt die Bündelung aller Komponenten einer Anwendung in einer einzigen, zusammenhängenden Codebasis und Laufzeit. Sie erleichtert Entwicklung, Testing und Deployment in kleinen Teams, skaliert aber schwer granular. Die Empfehlung hängt von Teamgröße, Geschäftsanforderungen und Betriebskosten ab.

  • Einfachere lokale Entwicklung und Debugging
  • Geringerer Koordinationsaufwand zwischen Teams
  • Konsistente Versionierung und Deployment

  • Schwierige, feingranulare Skalierung einzelner Funktionen
  • Höhere Risiken bei Änderungen durch enge Kopplung
  • Längere Build- und Testzeiten bei wachsender Codebasis

  • Build-Dauer

    Zeit, bis ein vollständiger Build abgeschlossen ist; beeinflusst Feedback-Zyklen.

  • Release-Frequenz

    Anzahl der Releases pro Zeiteinheit; zeigt Agilität der Auslieferung.

  • Medianer Recovery-Zeitraum

    Zeit bis zur Wiederherstellung nach Ausfall; misst Verfügbarkeitseinfluss.

Klassische Monolith-Webanwendung

Ein einzelnes WAR/JAR mit UI, Geschäftslogik und Datenzugriff in einer Codebasis.

On-Premise ERP-System

Großes, zentral betriebenes ERP mit eng gekoppelten Modulen und gemeinsamen Deployments.

Monolith als ersten Schritt vor Microservices

MVP beginnt monolithisch, um schnell Marktfeedback zu bekommen und später gezielt zu zergliedern.

1

Analyse der Domänen und Identifikation von Modulen

2

Einführung konsistenter Build- und Release-Prozesse

3

Schrittweise Einführung von Schnittstellen und Verträgen

⚠️ Technische Schulden & Engpässe

  • Geteilte Utility-Klassen ohne Versionierung
  • Monolithische Datenmodelle ohne klare Ownership
  • Fehlende Testabdeckung für Integrationsebenen
Build-ZeitDeploy-DauerDatenbanksperren
  • Monolith skaliert unkontrolliert durch Hinzufügen von Features ohne Modularität
  • Versuch, mehrere stark unterschiedliche Domänen in einem Monolithen zu betreiben
  • Fehlende Tests führen zu instabilen Releases
  • Überschätzen, wie lange ein Monolith akzeptabel bleibt
  • Unterschätzen der operativen Kosten beim Skalieren
  • Ignorieren notwendiger Modularisierungsmaßnahmen
Gutes Verständnis modularer Code-ArchitekturErfahrung mit monolithischem Testing und CIBetriebswissen zur Skalierung und Monitoring
Anforderungen an Performance und SkalierungTime-to-Market und EntwicklungsgeschwindigkeitBetriebliche Komplexität und Kosten
  • Begrenzte Infrastruktur-Granularität
  • Monolithische Datenmodelle erschweren Isolation
  • Abhängigkeit von gemeinsamen Bibliotheken