Überblick der gesamten NUI Dockerinstallation

Diese Dokumentation beschreibt das Setup und die Konfiguration einer B2B-New-UI auf Basis von Docker-Containern in einem Docker-Host-System.

Voraussetzung

Die Dokumentation setzt voraus, dass bereits eine klassisch im Tomcat laufende B2B installiert worden ist.

Installationsschritte

Wir empfehlen diese Dokumentation in der folgenden Reihenfolge zu nutzen:

  1. Verschaffen Sie sich einen Gesamtüberblick über die Architektur auf dieser Seite.
  2. Bereiten Sie eine Docker-Umgebung vor.
  3. Verschaffen Sie sich einen Gesamtüberblick über die docker-compose.
  4. Installieren Sie Keycloak.
  5. Migrieren Sie die User nach Keycloak.
  6. Bei Bedarf installieren Sie die B2B-RevisionInfo.
  7. Installieren Sie die B2B-UI.
  8. Installieren Sie die B2B-Admin-UI.
  9. Bei Bedarf installieren Sie das B2B-IndexManagement.
  10. Bei Bedarf installieren Sie die FSS-UI.
  11. Bei Bedarf installieren Sie die B2B-UserMessages.
  12. Bei Bedarf installieren Sie die B2B-Portal-UI.

Umgebung

Die folgende Abbildung skizziert die Zusammenhänge einiger (nicht aller) Komponenten des Setups:

Übersicht der einzelnen Module/Komponenten

Weitere Details über die einzelnen Applikationen können Sie auch hier nachlesen.

Auf dieser Skizze sind alle beteiligten Frontends & Microservices abgebildet: Architektur

Docker-Host

Als “Docker-Host” wird das System/Server bezeichnet, auf dem die Docker-Instanz läuft in der die New-UI, der Keycloak und (optional) die B2B installiert sind.

Als Betriebssystem für den Docker-Host kann Microsoft Windows oder aber auch Linux-Systeme (z.B. ubuntu, openSuse) verwendet werden. Bei der Auswahl sollte jedoch darauf geachtet werden ein möglichst etabliertes und stabiles System zu verwenden. Zudem ist es wichtig, dass für das verwendete Betriebssystem des Docker-Hosts (z.B. Windows, ubuntu, openSuse) entsprechend aktuelle Docker-Versionen verfügbar sind.

Remote-B2B

Als “Remote-B2B” wird das System/Server bezeichnet in dem die bestehende B2B betrieben wird.

Remote-B2B-Datenbank

Als “Remote-B2B-Datenbank” wird das System/Server bezeichnet in dem die Datenbank der Remote-B2B betrieben wird.

FSS-Datenbank

Als “FSS-Datenbank” wird das System/Server bezeichnet in dem die Datenbank des Remote-FSS betrieben wird.

keycloak

Unser Docker-Container “keycloak” stellt eine entsprechende Instanz zur Verfügung, die für die Authentifizierung der Nutzer über die B2B-New-UI gegen das B2B-Backend zuständig ist. Diese Keycloak-Instanz wird innerhalb des Dockers betrieben und speichert die Daten (Rollen und Nutzer) in einer eigenen Datenbank. In diesem Setup wird als Datenbank die standardmäßig integrierte H2-Datenbank genutzt. Über ein docker mount wird die Datenbank in das Dateisystem des Docker-Host gemountet, sodass die Daten auch nach dem Löschen des Keycloak-Containers zur Verfügung stehen.

Für einen produktiven Keycloak Einsatz empfehlen wir statt der integrierten H2 Datenbank eine DB analog zur Remote-B2B-Datenbank zu nutzen, also z.B. Postgres oder Oracle.

Für einen produktiven Keycloak Einsatz in einer öffentlichen Umgebung empfehlen wir dringend den Einsatz von HTTPS.

b2bui

Dieser Docker-Container stellt die eigentliche B2B-New-UI-Instanz bereit. Dies läuft in einem nginx Webserver.

b2b-tomcat

Der Docker-Container der B2B ist prinzipiell nicht zwingend notwendig, wird in diesem Setup aber vorgesehen, da die B2B-Instanz mit der die B2B-New-UI kommuniziert, ebenfalls an keycloak angebunden sein muss. Damit die bestehende B2B (Remote-B2B), nicht für die Anbindung an Keycloak umkonfiguriert werden muss, wurde sich für eine separate B2B-Instanz in einem Docker-Container entschieden.

Übergangsweise ist ein Mischbetrieb denkbar, bei dem insbesondere die Knoten, die vom Frontend angesprochen werden, auf Keycloak umgestellt werden, während gerade die für Backendprozesse relevanten Knoten zunächst weiterhin über BasicAuth angesprochen werden.

RevisionInfo-service & UI

Mit der RevisionInfo bietet die B2B die Möglichkeit, die Anpassungen an verschiedenen Konfigurationen (z.B. Customizing) zu dokumentieren.

Das Feature wurde entkoppelt und benötigt nun keinen Tomcat mehr. Stattdessen gliedert es sich in eine B2B-RevisionInfo-UI & einen B2B-RevisionInfo-Service. Der Service greift auf die bestehende Datenbank zu.

Um mittelfristig die RevisionInfo aus dem Tomcat herauszulösen, kann die B2B im Tomcat mit dem RevisionInfo-Service kommunizieren, wenn der Tomcat auf Keycloak umgestellt wurde. Ansonsten nutzt der Tomcat die alte integrierte RevisionInfo Logik.

index-management-service & UI

Der Container IndexManagement-Service stellt die Backend-Instanz Index Management zur Verfügung. Diese läuft in einem Java-Container.

Der Container IndexManaggement-UI stellt die IndexManagement-UI-Instanz zur Verfügung. Sie läuft auf einem nginx-Webserver.

FSS & FSS-UI

Die neue FSS-UI enthält:

  • Zertifikatsverwaltung
  • Regelwerk

Die FSS-UI greift auf ein bestehendes FSS Backend zu. Weder UI noch Backend benötigen Zugriff zum Tomcat.

UserMessages-service & UI

Auch SystemMessages genannt.

Mit den UserMessages kann ein Admin Nachrichten an UI-User schicken.

Das Feature wurde entkoppelt und benötigt nun keinen Tomcat mehr. Stattdessen gliedert es sich in eine B2B-UserMessages-UI & einen B2B-UserMessages-Service. Der Service greift auf die bestehende Datenbank zu.

Alle andern UIs greifen auf den B2B-UserMessages-Service zu.

Portal-UI

Die Portal-UI dient als Startpunkt. Von hier können alle anderen UIs aufgerufen werden.

Die Portal-UI greift auf alle UIs zu und alle UIs greifen auf die Portal-UI zu. Die Portal-UI benötigt keinen Zugriff zum Tomcat.

View Me   Edit Me