- Architekturmuster
- komplexe Applikationen bestehen aus vielen kleinen Modulen
- Microservice
- kleine, unabhängige Dienste/Prozesse
- kommunizieren mit sprachunabhängigen Programmierschnittstellen
- sind weitgehend entkoppelt
- erledigen eine kleine Aufgabe
Vorteile
- schnellere Skalierbarkeit
- Komponenten können unabhängig voneinander skaliert werden
- reduziert Ausschuss und Kosten, die mit Skalierung ganzer Anwendungen verbunden sind
- verbesserte Fehlerisolierung
- Fehler in einem Service beeinträchtigt nicht die anderen Services
- höhere Teamproduktivität
- durch kleine, spezialisierte Teams, die sich auf einen bestimmten Service konzentrieren
- kürzere Deployment-Zeit
- jeder Service kann einzeln entwickelt, getestet und bereitgestellt werden
- höhere Kosteneffizienz
- optimierte Ressourcenzuweisung und Wartung
- einfachere Aktualisierung des Codes
- neue Funktionen oder Anwendungsmöglichkeiten können hinzugefügt werden, ohne die gesamte Anwendung zu ändern
- verschiedene Stacks und Programmiersprachen
- es können verschiedene Stacks und Programmiersprachen für verschiedene Komponenten verwendet werden
Nachteile
- erhöhte Komplexität
- herausforderndes Management aufgrund vieler kleinen Dienste
- Herausforderung bei Deployment und Versionierung
- komplexe Koordination der Deployments und Versionskontrolle über mehrere Services hinweg
- Kompatibilitätsprobleme
- Komplexität bei Tests
- Testen beinhaltet komplexe Szenarien, vor allem bei Integrationstests für verschiedene Services
- herausfordende Orchesterierung
- Schwierigkeit bei Fehlerbehebung
- da Microservices unterschiedliche Protokolle verwenden
- gleichzeitige Ausführung von Geschäftsprozessen auf mehreren Systemen erhöht Komplexität
- Herausforderungen beim Datenmanagement
- komplexe Datenkonsistenz und Transaktionen über mehrere Services hinweg
- erfordert sorgfältige Datenverwaltung und -koordination, um die Datenintegrität zu unterstützen
Links