Microservices-Architektur und -Implementierung Schritt für Schritt Teil 1

Hallo zusammen,

Ich bin gerade dabei, ein neues einfaches Microservices-basiertes Projekt als Beispiel für eine Schritt-für-Schritt-Anleitung für diejenigen zu implementieren, die Schwierigkeiten mit einer Microservices-Architektur hatten und immer noch nach einer „anderen“ guten Referenz suchen. Ich würde mich auch sehr über durchdachtes Feedback und einen Vorschlag freuen, dieses Projekt zu einem qualitativ hochwertigen Stück Arbeit zu machen.

Es gibt Unmengen von Artikeln und Quellcodebeispielen. Leider konnte ich mit einfachen Schritt-für-Schritt-Anleitungen keine Referenz finden, ohne mich eingehend mit Docker, Event Store, einer Vielzahl von Konfigurationen, Cloud-Bereitstellungsmaterialien usw. zu befassen. Ich habe mehrere Projekte geklont und versucht, mit ihnen zu spielen, aber Sie wissen, nur Gott weiß, wie man sie startet, welche Abhängigkeiten fehlen und warum all diese Skripte mit Tausenden von FEHLERN fehlschlagen.

Zum Beispiel enthält dieses eShop-Projekt von Microsoft alles, was wir brauchen, aber es ist nicht so einfach herauszufinden, was dort vor sich geht, SQL-Datenbankverbindungszeichenfolgen, Docker-Skripte schlagen fehl, keine How-Tos und ich bin nicht sicher, ob es super ist -einfache Architektur, mit der Sie beginnen müssen.

Bild

Diese Leute aus Polen versuchen etwas Wertvolles und Einfaches zu machen, bitte probieren Sie es aus .
Daher werde ich hier versuchen, ein solches Tutorial so einfach wie möglich zu implementieren, um mit den Grundlagen zu beginnen und einen grundlegenden Code zu schreiben, der anschließend in Ihren Projekten verwendet werden kann.

Wir werden nicht darüber sprechen, warum / wann wir Microservices verwenden sollten. Es gibt so viele Artikel darüber. Zum Beispiel hat dieser Typ einige gute Nachforschungen angestellt und über Microservices zusammengefasst .

Behandelt die folgenden Themen und versucht es einfach zu halten:

  1. Voraussetzungen und Einrichtung der Umgebung
  2. Wählen Sie einen Namen für ein Projekt + Ziele, die wir erreichen möchten
  3. Gesamtarchitektur
  4. Beginn der Implementierung (.NET Core)
  5. Einrichtung und Test von Datenbank und Cache
  6. Konfiguration von Tools und Utils
  7. Definieren Sie das grundlegende Anwendungsszenario + dessen Implementierung
  8. Bereitstellung irgendwo

Verwendet .NET Core 2.1, VS2017 unter Windows 10. Die folgenden Drittanbieter sollten auf Ihrem Computer installiert sein und ausgeführt werden: Redis für Windows , MongoDB , Seq , RabbitMQ . Führt alle Inhalte mit den Standardparametern aus. Ich fand diese Tools schnell und einfach zu installieren und sofort einsatzbereit.

Desktop-Client für Redis ( https://redisdesktop.com/ ):

Bild

Desktop-Client für MongoDB ( https://nosqlbooster.com/ ):

Bild

2. Ziel des Projekts ist die Erstellung eines Backends für die Datenerfassung von Tausenden von mobilen / tragbaren Geräten. Datentyp sind Sensordaten: 9-Achsen-Bewegung, Geoposition, Temperatur, Luftfeuchtigkeit usw. Sie möchten auch all diese Daten verarbeiten und analysieren, um sie auf einer schönen webbasierten Benutzeroberfläche als Statistiken, Grafiken, Tracking usw. anzuzeigen. Der Name für ein Projekt wurde gewählt, als ich diesen Absatz schrieb - "Sensor Fusion Backend". Die ersten beiden Microservices, an die ich denken kann, sind DataProcessorService und DataAnalyticsService.

3. Denken wir zumindest für den Anfang an Architektur und minimale Infrastruktur. Konnektivität: Unser Projekt befasst sich mit Daten vom Typ IoT / Sensoren. Aus diesem Grund würde ich RabbitMQ Message Broker für die Client-Server-Kommunikation verwenden. Hier sind zwei kurze und einfache Erklärungen. Datenbank: verwendet die Kombination MongoDB + Redis . MongoDB als Hauptspeichersystem und Redis als Cache. Protokollierung: Serilog-Protokollierungsbibliothek + Seq als Visualisierungswerkzeug.

Seq ist eine Webanwendung, die auf Ihrer Infrastruktur gehostet wird:

Bild

Um die API zu vereinfachen, werde ich Swagger verwenden:

Bild

Im ersten Teil geht es also mehr darum, welche Tools wir verwenden, um die Implementierung zu starten. Wird den Code in Teil 2 sehen und mit der Infrastruktur spielen.

Source: https://habr.com/ru/post/de458400/


All Articles