Microservices
Kurz: Bei Microservices besteht eine Anwendung aus vielen kleinen, unabhängigen Diensten, die über das Netzwerk zusammenarbeiten. Das Gegenstück ist der Monolith.
Genauer: Jeder Dienst hat eine klare Aufgabe (Zahlung, Benutzer, Suche), eigene Daten und wird unabhängig entwickelt und ausgeliefert. Das erleichtert die Arbeit großer Teams, bringt aber Komplexität: Netzwerkfehler, verteilte Daten, Überwachung.
Im Detail
- Monolith: Eine Anwendung, ein Deployment. Einfach zu starten, einfach zu testen, für kleine bis mittlere Projekte oft die bessere Wahl.
- Modularer Monolith: Ein Deployment mit sauber getrennten Modulen. Ein guter Zwischenschritt.
- Kommunikation: HTTP/REST, gRPC, Nachrichtenwarteschlangen (Message Queue (Nachrichtenwarteschlange)).
- Daten: Jeder Dienst besitzt seine Datenbank, Abfragen über Dienste hinweg sind aufwendig.
- Faustregel: Mit Microservices erst anfangen, wenn Teamgröße oder Skalierung es erfordern.
Siehe auch: Kubernetes, Serverless und Functions as a Service