Microservices-Architektur Definition
Was sind Microservices?
Microservices sind ein Architekturstil, bei dem eine Anwendung als Sammlung kleiner, unabhängiger Services strukturiert wird. Jeder Service:
- Implementiert eine Geschäftsfähigkeit
- Läuft in eigenem Prozess
- Kommuniziert über APIs
- Kann unabhängig deployed werden
Kernprinzipien
Single Responsibility
- Ein Service, eine Verantwortung
- Bounded Context aus DDD
- Klare Fachdomäne
Lose Kopplung
- Minimale Abhängigkeiten
- API-basierte Verträge
- Unabhängige Entwicklung
Hohe Kohäsion
- Zusammengehöriges bleibt zusammen
- Interne Konsistenz
- Fachliche Einheit
Dezentralisierung
- Dezentrale Daten
- Dezentrale Governance
- Polyglotte Technologie
Microservices vs. Monolith
| Aspekt | Monolith | Microservices |
|---|---|---|
| Deployment | Alles zusammen | Einzeln |
| Skalierung | Ganze Anwendung | Granular |
| Technologie | Einheitlich | Polyglott |
| Datenbank | Gemeinsam | Pro Service |
| Team | Ein großes | Viele kleine |
Microservices vs. SOA
| Aspekt | SOA | Microservices |
|---|---|---|
| Kommunikation | Enterprise Service Bus | Lightweight Protocols |
| Größe | Größere Services | Feinere Granularität |
| Governance | Zentral | Dezentral |
| Deployment | Oft zusammen | Unabhängig |
Service-Kommunikation
Synchron
- REST APIs
- gRPC
- GraphQL
Asynchron
- Message Queues (RabbitMQ)
- Event Streaming (Kafka)
- Pub/Sub Pattern
Datenmanagement
- Database per Service
- Event Sourcing
- Saga Pattern für Transaktionen
- Eventual Consistency
CFTools Software entwirft und implementiert Microservices-Architekturen.