Beiträge in diesem Abschnitt

Überblick über die Deployment-Architektur

Veröffentlicht:
Aktualisiert:

MobilityManager wird als einzelne bereitstellbare Einheit ausgeliefert: der .NET-10-API-Dienst hostet sowohl die REST-API als auch die kompilierte Angular-19-Benutzeroberfläche. Das Verständnis dieses Modells hilft Ihnen, Hosting, Skalierung und die Konfiguration des Reverse-Proxys korrekt zu planen.

Ein Prozess bedient sowohl API als auch UI

Während eines Release-Builds wird die Angular-Anwendung in src/web/UI kompiliert und in den Ordner wwwroot des API-Projekts kopiert. Zur Laufzeit bedient ein einzelner Kestrel-Prozess alles über einen einzigen Port (8080 in Containern):

  • API-Routen (zum Beispiel /api/..., /healthz) werden zuerst abgeglichen.
  • Statische Assets (JavaScript, CSS, Bilder) werden aus wwwroot bereitgestellt.
  • Nicht abgeglichene Routen greifen auf index.html zurück, sodass das clientseitige Routing von Angular bei Deep-Links und Seitenaktualisierungen funktioniert.

Hinweis: Da UI und API denselben Ursprung teilen, müssen Sie in einer Standardbereitstellung kein CORS zwischen ihnen konfigurieren. Es gibt keinen separaten Webserver, der betrieben oder skaliert werden muss.

Wie das Bundle erzeugt wird

Das Build-Verhalten hängt von der Konfiguration ab:

  • Development-Builds bauen die Angular-UI nicht und halten so die Kompilierzeiten kurz.
  • Release-Builds bauen und bündeln die UI automatisch.
  • Sie können einen UI-Build in jeder Konfiguration mit /p:BuildAngularUI=true erzwingen.

Um eine bereitstellbare Ausgabe zu erzeugen, veröffentlichen Sie nur das API-Projekt:

dotnet publish src/CK.MobilityManager.ApiService -c Release -o ./publish

Der veröffentlichte Ordner enthält die .NET-Binärdateien und die Angular-Assets in wwwroot, bereit zum Betrieb hinter einem Reverse-Proxy oder innerhalb eines Containers.

Mandantenfähige Datenschicht

Die Anwendung trennt die Daten in zwei Datenbanken, die über benannte Verbindungszeichenfolgen angesprochen werden:

  • SystemConnection — die Systemdatenbank, die das Mandantenregister, Benutzer, Rollen und die Lizenz enthält.
  • TenantConnection — die Mandantendatenbank, die Fuhrpark-, Buchungs- und operative Daten enthält.

Sowohl PostgreSQL als auch Microsoft SQL Server werden über die Einstellung DatabaseProvider unterstützt. Die Rollen sind auf drei Ebenen festgelegt: SystemAdmin, FleetManager und Driver.

Bereitstellungsoptionen

Sie können die Einzelbereitstellung auf verschiedene Arten betreiben, die alle in eigenen Artikeln behandelt werden:

  • Docker Compose für lokale Evaluierung und kleine Bereitstellungen.
  • Ein vorgefertigtes Container-Image für Produktions-Compose-Stacks.
  • Kubernetes mithilfe der bereitgestellten Kustomize-Manifeste.
  • Ein veröffentlichter Ordner, der direkt mit dotnet hinter Ihrem eigenen Reverse-Proxy betrieben wird.

Tipp: In jedem Bereitstellungsmodus lauscht der Container oder Prozess an einem einzigen HTTP-Port. Terminieren Sie TLS an Ihrem Reverse-Proxy, Load-Balancer oder Ingress und leiten Sie reines HTTP an die Anwendung weiter.

Verwandte Artikel

  • Voraussetzungen für das Bauen und Betreiben der Plattform
  • Die Plattform mit Docker Compose in der Produktion betreiben
  • Überblick über die Kubernetes-Bereitstellung
  • Migrationen und die Onboarding-Weiterleitung beim Start
AH
Geschrieben von Alexander Hagemann
Aktualisiert:
Zugriff abgelehnt
Zugriff abgelehnt