Wann Microservices in Betracht ziehen
Microservices sind nicht immer die Antwort. Überlegen Sie, ob Sie migrieren sollten, wenn: die Bereitstellungszyklen langsam sind, Teams aufeinander treten oder die Skalierung spezifischer Funktionen die Skalierung von allem erfordert.
Der Strangler-Fig-Muster
Dieses Muster ermöglicht Ihnen, Teile eines Monolithen ohne einen großen Umstellungsprozess zu ersetzen.
Phase 1: Bewertung
Domänenanalyse, Abhängigkeitsabbildung und Datenflussanalyse. Identifizieren Sie die unabhängigsten Module, die zuerst extrahiert werden können.
Phase 2: Grundlage
Einrichten Sie die Infrastruktur: API-Gateway, Service-Mesh, Observabilitäts-Stack und CI/CD-Pipelines für unabhängige Bereitstellungen.
Phase 3: Erste Dienstextraktion
Beginnen Sie mit dem unabhängigsten Modul – oft Authentifizierung, Benachrichtigungen oder Dateiverarbeitung.
Phase 4: Ereignisgetriebene Kommunikation
Ersetzen Sie die Synchronen Aufrufe zwischen Diensten durch ereignisgetriebene Nachrichten für eine bessere Resilienz.
const bestellung = await bestellungsdienst.erstelleBestellung(data);
await eventBus.emit("bestellung.erschaffen", { bestellungsId: bestellung.id, artikel: bestellung.artikel });Tools, die wir verwenden
| Tool | Zweck |
|---|---|
| Docker | Containerisierung |
| Kubernetes | Orchestrierung |
| Kong | API-Gateway |
| RabbitMQ | Nachrichtenwarteschlange |
| Istio | Service-Mesh |
Fehler zu vermeiden
- Erstellen Sie nicht zu viele Dienste zu schnell – beginnen Sie mit 2-3
- Teilen Sie keine Datenbanken zwischen Diensten
- Ignorieren Sie die Observabilität – Sie benötigen verteilte Spuren von Anfang an