Microservices
Ein Architekturstil, der Anwendungen in kleine, unabhängige Dienste unterteilt.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Übermäßige Abhängigkeit von Netzwerken
- Schwierigkeiten bei der Fehlersuche
- Höhere Betriebskosten
- Verwendung von API-Standards.
- Regelmäßige Überprüfung der Dienste.
- Dokumentation aller Microservices.
I/O & Ressourcen
- Entwicklerressourcen
- Technologische Infrastruktur
- Dokumentation der Dienste
- Funktionierende Microservices
- Skalierbare Architekturen
- Optimierte Entwicklungsprozesse
Beschreibung
Microservices sind ein Architekturstil, bei dem Anwendungen aus einer Sammlung kleiner, autonomer Dienste bestehen, die über APIs kommunizieren. Jeder Dienst ist für eine spezifische Funktion verantwortlich und kann unabhängig entwickelt, bereitgestellt und skaliert werden.
✔Vorteile
- Erhöhte Skalierbarkeit
- Schnellere Bereitstellung neuer Funktionen
- Bessere Fehlertoleranz
✖Limitationen
- Komplexität der Verwaltung
- Höhere Anforderungen an die Kommunikation
- Potenzielle Dateninkonsistenzen
Trade-offs
Metriken
- Reaktionszeit
Die Zeit, die ein Dienst benötigt, um auf eine Anfrage zu reagieren.
- Verfügbarkeit
Der Prozentsatz der Zeit, in der ein Dienst betriebsbereit ist.
- Fehlerquote
Der Prozentsatz der fehlgeschlagenen Anfragen.
Beispiele & Implementierungen
Netflix
Netflix nutzt eine Microservices-Architektur, um seine Streaming-Dienste zu skalieren und zu verwalten.
Amazon
Amazon implementiert Microservices, um verschiedene Funktionen wie Bestellungen, Zahlungen und Versand zu verwalten.
Spotify
Spotify verwendet Microservices, um Musikstreaming und Benutzerinteraktionen zu optimieren.
Implementierungsschritte
Entwicklung eines klaren Architekturplans.
Einrichtung der notwendigen Infrastruktur.
Schulung der Teams in Microservices-Praktiken.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unzureichende Dokumentation der Dienste.
- Veraltete Technologien in der Infrastruktur.
- Mangelnde Tests und Qualitätssicherung.
Bekannte Engpässe
Beispiele für Missbrauch
- Vernachlässigung der API-Sicherheit.
- Übermäßige Abhängigkeit von einem einzelnen Dienst.
- Fehlende Tests für Microservices.
Typische Fallen
- Annahme, dass Microservices immer die beste Lösung sind.
- Ignorieren der Komplexität der Integration.
- Unterschätzung des Aufwands für die Verwaltung.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Einhaltung von Sicherheitsstandards
- • Regulatorische Anforderungen
- • Technologische Abhängigkeiten