Überblick über die Deployment-Architektur
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
wwwrootbereitgestellt. - Nicht abgeglichene Routen greifen auf
index.htmlzurü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=trueerzwingen.
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
dotnethinter 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