Wir denken darüber nach, unsere monolithischen Monster schrittweise in auf Mikrodiensten basierende Architektur zu zerlegen. Wir haben 5 Teams, jedes Team besteht aus 2-3 C # -Entwicklern, mindestens 1 Datenbankentwickler und 2 QS-Ingenieuren. Neben dem enormen Kultur- und Paradigmenwechsel von einer monolithischen Architektur zu Microservices gibt es auch technische Herausforderungen. Ich möchte die Community um Weisheit und Rat bitten, damit wir nicht dieselben Fehler machen.
Gibt es gute Branchenbeispiele, bei denen .NET-basierte Mikrodienste erfolgreich in einem Produktionssystem eingesetzt wurden? Was war die Strategie für Folgendes?
- Org : Wie haben Sie die .NET-Lösungen / -Projekte organisiert?
- Entwicklungsplanung : Wie haben Sie die Arbeit in Bezug auf die Entwicklungsplanung auf Teams aufgeteilt? Was war die Gesamtstrategie, um sicherzustellen, dass die Einhaltung von Verträgen über Microservices hinweg zwischen Teams ausgehandelt wurde?
- Lastausgleich / Routing / API-Gateway : Welche Strategie wurde für Lastausgleich, Redundanz und Skalierung verfolgt? Haben Sie sich gerade für eine vollständige asynchrone Architektur entschieden und eine Warteschlange für die Microservice-Kommunikation verwendet, oder haben Sie Peer-to-Peer über ein Load Balancer / API-Gateway durchgeführt? Und warum?
- Testautomatisierung : Wie haben Sie mit der Testautomatisierung umgegangen? Dies zusammen mit der kontinuierlichen Integration scheint für die Microservices-Architektur absolut notwendig zu sein. Wie bist du vorgegangen?
- Bereitstellung : Wie stellen Sie bereit? Eine VM / Microservice oder ein Container / Microservice oder etwas ganz anderes? Wie haben Sie mit der Tatsache umgegangen, dass Sie jetzt über zehn Datenbanken verfügen, wenn nicht mehr, wenn man bedenkt, dass jeder Microservice seinen Datenspeicher haben würde, was hat das mit Ihrer Infrastruktur gemacht und wie haben Ihre Datenbankadministratoren damit umgegangen?
- Infrastruktur : Wie wurde Ihre Infrastruktur mit dieser Architektur skaliert? War es super gesprächig und du musstest es fein abstimmen oder hat das Netzwerk es ohne Probleme gehandhabt? Sind selbst gehostet oder in der Cloud?
- Überwachung : Was ist Ihre Überwachungsstrategie? Wie behalten Sie zehn, wenn nicht Hunderte von Mikrodiensten im Auge? Ist es hauptsächlich durch Protokollierung und zentrale Überwachung?