MagoCloud Architektur

Da Mago Cloud eine Software ist, die auf einer verteilten Architektur auf Microservices basiert, haben wir die Komponenten entworfen und benannt, die von einer Art logischer Topographie inspiriert sind.

Wir haben die Umgebung in zwei verschiedene Entitäten organisiert: Domains (reine Metadaten) und Instanzen (konkrete Installation von Softwarediensten).

Die Domäne sind Metadaten, die den Zweck haben, verschiedene Instanzen des Produkts zu gruppieren. Diese Gruppierung kann auf der Grundlage der kaufmännischen oder technischen Merkmale der verschiedenen Instanzen, die Teil davon sind, erfolgen. Beispielsweise können wir eine Domäne haben, zu der alle Instanzen gehören, die je nach Konfiguration ähnlich sind, z. B. alle Unternehmensinstanzen oder alle Instanzen, die für kleine Unternehmen bestimmt sind.

Die Instanz ist eine Reihe von Microservices, aus denen das MagoCloud-Produkt besteht. Die Instanz wird vom Benutzer als ein einzelnes Produkt angesehen, aber im Inneren besteht sie aus einer Familie isolierter kommunizierender Dienste.

Das Schlüsselkonzept, auf das wir uns konzentrieren , ist die Instanz, die eine delokalisierte Installation von MagoCloud auf einer Cloud-Plattform darstellt, die von Zucchetti verwaltet oder in einer private Cloud betrieben werden kann.

Die Instanz besteht aus mehreren Microservices, einer Suite von Diensten, die jeweils in ihrem eigenen Prozess und in Kommunikation mit den anderen Microservices ausgeführt werden. Diese können unabhängig und automatisiert bereitgestellt werden, erfordern keine bestimmte Programmiersprache und ermöglichen eine Reihe verschiedener Speichertechnologien.

Microservices sind in Containern enthalten, speziellen Bereichen, die sich einer virtuellen Maschine annähern, aber die Abstraktionsebene nur auf das Betriebssystem beschränken und von Container-Engines wie Docker verwaltet werden.

Die MagoCloud-Instanz besteht aus einem Frontend und einem Backend, bestehend aus mehreren Microservices, die mit Docker-Technologie bereitgestellt werden.

Frontend

SPA (Single Page Application) Angular, kommuniziert mit dem Backend über REST API und Websocket.

Backend

Es besteht aus den folgenden Microservices:

  • Traefik: API-Gateway und Instance-Load-Balancer. Ein solcher Proxy wird als zusätzliche Sicherheitskomponente aktiviert, um Webserver zu schützen, an ihrer Stelle Anfragen aus dem Internet entgegenzunehmen und an das Backend weiterzuleiten. Es ermöglicht Ihnen, den eingehenden Datenverkehr zu steuern, mehrere Server mit derselben URL zur Verfügung zu stellen, Anfragen gleichmäßig auf mehrere Server zu verteilen und das Öffnen von Daten durch den Caching-Prozess zu beschleunigen.
  • TbGate: Load Balancer, Monitor und Life Cycle Manager von TbServer-Instanzen. Es instanziiert einen TbServer für jeden MagoCloud-Benutzer (einschließlich Headless) und verwaltet die Initierung der Erstellung eines Websocket-Kanals zwischen Client und TbServer. Zudem generiert es auch die TbServer-Metriken und -Protokolle und stellt sie Prometheus bzw. LOKI zur Verfügung.
  • TbServer: Management Backend, Herzstück von MagoCloud.
  • AccountManager: Es ist der Instanzauthentifizierungs- und Autorisierungsdienst. Es verbindet sich während der Anmeldung mit dem Cloud Console-Bereitstellungsdienst und gibt dann Informationen über Redis mit anderen Instanz-Microservices frei.
  • MenuService: Stellen Sie dem Frontend dynamisch die Menüstruktur zur Verfügung.
  • ReportService: Es befasst sich mit der Berichterstellung.
  • DataService:Stellt eine API für den Zugriff auf Verwaltungsdaten bereit.
  • ErpWebApi: Stellt Verwaltungs-APIs bereit.
  • Scheduler: Verwaltet die Planung und Ausführung von Aufträgen.
  • MicroDms: Dokumentenmanagementsystem.
  • LogService: Generiert die Frontend-Protokolle, um sie an LOKI umzuleiten.
  • My Mago Studio: Ermöglicht es Ihnen, Änderungen an der Benutzeroberfläche und den MagoCloud-Dokumenten vorzunehmen.
  • ESP: ERP-Service-Provider für die Datenintegration zwischen Systemen.
  • MicroMessaging: Gateway für Messaging (z. B. E-Mail). Es empfängt Nachrichten über RabbitMQ und verbindet sich direkt mit einem SMTP-Server.

Kommunikation zwischen den Services

Die Services kommunizieren miteinander über einen logischen Namen / URL-Map.

Die Interaktion erfolgt über die REST-API und RabbitMQ, einen Middleware-Message Broker, der den Zweck hat, die asynchrone Kommunikation zwischen Microservices zu steuern. Dieses asynchrone System gibt Microservices die Möglichkeit, den Betrieb fortzusetzen, auch wenn es keine sofortige Reaktion gibt. ​​​​​​

Skalierbarkeit und Hochverfügbarkeit

Die Dienste sind horizontal (auch auf mehreren Rechnern) mittels Docker-Schwarm skalierbar.

Bei Problemen, die durch Monitoring erkannt werden, wird das Frontend auf eine Clone-Instanz umgeleitet.

Benutzer-Gateway

User Gateway ist der zentrale Zugangspunkt zur MagoCloud. Es ist eine Webanwendung, mit der Sie sich mit Anmeldeinformationen authentifizieren, ein Abonnement auswählen und auf das Produkt zugreifen können.

User Gateway ist ein globaler Endpunkt. Es ist eine einzige URL, die im Internet verfügbar ist und für alle Benutzer in jedem geografischen Gebiet gültig ist. Dank des User Gateways haben Sie eine eindeutige URL, um auf Ihr Abonnement und Ihre Instanz von MagoCloud zuzugreifen.

Betrachten wir diese Komponente aus der Sicht der Benutzererfahrung. User Gateway ist das erste Frontend, auf das Sie stoßen, wenn Sie sich bei MagoCloud anmelden. Das erste, was Sie tun müssen, ist Ihre Anmeldeinformationen (Benutzername und Passwort) einzugeben. Wenn die Authentifizierung erfolgreich ist, können Sie auf Ihr Abonnement – Ihre Firma – zugreifen und mit MagoCloud arbeiten.

Betrachten wir nun den Prozess aus einer technischen Perspektive, um zu verstehen, was hinter den Kulissen vor sich geht und welche Microservices an diesem Prozess beteiligt sind.

Wir sind für Sie da!
Schildern Sie uns Ihr Problem, wir bieten die Lösung.