Systemanforderungen
LÄMMkom Analyse folgt dem Coasti-Format für Content-Produkte.
Als BI-Tool kommt enweder Apache Superset oder Board zum Einsatz.
Die folgende Spezifikation fokusiert sich größtenteils auf Apache Superset.
Übersicht
Abbildung 1: Übersicht der Datenflüsse
Für LÄMMkom Analyse fließen Daten durch drei Server (beginnend unten in der Abbildung):
- LISSA-Server (enthält die Datenbank mit LISSA-Rohdaten)
- Backend-Server (transformiert Daten in die BI-Darstellung)
- Frontend-Server (stellt BI-Daten für Endanwender:innen bereit)
Diese Trennung erfolgt bewusst, und hat folgende Vorteile:
- Der für den operativen Betrieb benötigte LISSA-Server bleibt von der BI-Lösung weitestgehend unberührt. Benötigte Daten werden während der Ingestion kopiert.
- So finden alle rechenintensiven Transformationen ausschließlich auf dem Backend-Server statt.
- Das schont sowohl den LISSA-Server, als auch den Frontend-Server. Beide sind relevant für das Nutzungserlebnis der Endanwender:innen.
- Daten sind isoliert: der Frontend-Server hat nur Zugriff auf seine Kopie der BI-Daten. Der Backend-Server erzeugt die BI-Daten, und übergibt sie an den Frontend-Server, hat aber selbst nur Zugriff auf seine eigene eingeschränkte Kopie der LISSA-Rohdaten. Die Datenströme zwischen den Servern sind gerichtet und beschränkt, so kann der Frontend-Server z.b. weder eigenständig eine neue Kopie vom Backend-Server laden, noch auf den LISSA-Server zugreifen.
Hardware Mindestanforderungen
| Backend-Server | Frontend-Server Superset | Frontend-Server Board | |
|---|---|---|---|
| Betriebssystem | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS | Windows Server 2019 |
| Prozessorkerne | 4 | 4 | 4 |
| Arbeitsspeicher | 16 GB | 16 GB | 16 GB |
| Speicherplatz | 150 GB | 50 GB | 200 GB |
Da Board derzeit noch keine Linux-Umgebung unterstützt, wird derzeit ein Windows-Host benötigt, wenn Board als BI-Frontend zum Einsatz kommt. Für Apache Superset und die Extract-Transform-Load (ETL) Berechnungen auf Backend-Server werden Docker Container verwendet, und es werden Linux-Hosts benötigt.
Datenabruf vom Quellsystem (LISSA-Server)
Für das Bereitstellen von Daten aus LÄMMkom LISSA für Auswertungen in BI-Systemen wird eine direkter Lesezugriff auf die Quelltabellen benötigt. Die Quelltabellen liegen entweder auf einer Progress-, Oracle- oder MSSQL-Datenbank.
Unter Nutzung der erstellten Zugänge werden nächtlich alle benötigten Daten von LÄMMkom Analyse abgerufen. Read-only Berechtigungen sind ausreichend, es werden keine Daten auf dme LISSA-Server bearbeitet.
Progress als Quelldatenbank
Für den Zugriff auf Progress muss Lämmerzahl im Vorweg in Progress einen SQL-Broker für die ODBC-Verbindung bereit stellen, und eine entsprechende Benutzer:in anlegen, welche auf alle LISSA-Tabellen Zugriff hat.
Oracle als Quelldatenbank
Bei Nutzung von Oracle als Quellsystem ist eine Benutzer:in mit Leserechten erforderlich.
Mit nachfolgendem Befehl lässt sich eine solche „ReadOnly“-Benutzer:in anlegen. Der Zugriff lässt sich aber auch auf einzelne benötigte Tabellen limitieren.
CREATE USER ro_linkfish
IDENTIFIED BY ~sichereskennwort~
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
GRANT CREATE SESSION to ro_linkfish
CREATE ROLE ro_LISSA;
BEGIN
FOR x IN (SELECT * FROM dba_tables WHERE owner='pub') LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON pub.' || x.table_name || ' TO ro_LISSA';
END LOOP;
END;
GRANT ro_LISSA TO ro_linkfish;
Netzwerk-Verbindungen
- Zugriff auf Quelldaten: Zum nächtlichen Datenabruf wird der Zugriff auf den LISSA-Server benötigt.
Die Port- und Netzwerk-Freigaben sind von der Datenbank abhängig. In der Regel:
- Vom Backend-Server zum LISSA-Server
- MSSQL:
1433 TCP - Progress:
14011 TCP - Oracle:
1521 TCP
- Zum Übertragen der aufbreiteten BI-Daten wird eine SSH/rsync Verbindung benötigt:
- Vom Backend-Server zum Frontend-Server
- SSH:
22 TCP
- Für das Reporting der Nachtläufe an linkFISH Jobcontrol wird Email Zugang benötigt:
- Vom Backend-Server zum on-prem Mail-Server
- Port abhängig von lokaler Konfiguration, üblich sind
25, 465, 587
- Für den Zugriff der Endanwender:innen auf die BI Dashboards muss der Frontend-Server erreichbar sein:
- Von LAN zu Frontend-Server
- HTTP:
80 TCP/UDP - HTTPS:
443 TCP/UDP
- Für die Erreichbarkeit des Frontend-Servers werden eine Domain-Weiterleitung sowie SSL-Zertifikate benötigt.
- Weiterleitung der gewünschten Domain, innerhalb des LAN zu Frontend-Server
- Mit on-prem CA signiertes SSL-Zertifkat (
fullchain.pem,private_key.pem)
- Während der Installation oder Wartung:
- Für den Zeitraum der Installation von LÄMMkom Analyse wird eine Internetverbindung benötigt, um Quellpakete zu installieren. Nach abgschlossener Installation funktionieren alle Systeme offline.
- Uplink von Backend-Server und Frontend-Server
- Wartungs-Zugriff
- Vom Jump-Host (e.g. TeamViewer) auf Backend- und Frontend-Server
- SSH:
22 TCP - HTTP:
80 TCP/UDP - HTTP:
8088 TCP/UDP - HTTPS:
443 TCP/UDP
- Für den Zeitraum der Installation von LÄMMkom Analyse wird eine Internetverbindung benötigt, um Quellpakete zu installieren. Nach abgschlossener Installation funktionieren alle Systeme offline.
Freigeschaltete Domains
Auch mit eingeschränktem Internet-Zugang ist eine Installation möglich. Mintestens die folgenden Domains müssen erreichbar sein:
# Docker
auth.docker.io
registry-1.docker.io
index.docker.io
dseasb33srnrn.cloudfront.net
production.cloudflare.docker.com
# Superset: headless chrome, selenium
dl.google.com
storage.googleapis.com
# Python
pythonhosted.org
files.pythonhosted.org
python.org
pypi.python.org
pypi.org
# linkFISH Connectr, ODBC Treiber
packages.microsoft.com
share.coasti.org
Ich würde schreiben "alle modernen Browser werden unterstützt", die Sektion entfernen, und ggf auf Supersets oder Board Spec verlinken.
Alternative Installations-Szenarien
This is for board:
Option nur ein einzelner Windows Server
- Wenn Duckdb: keine Netwerk mehr nötig
- Falls andere Datenbank (DB):
- Netzwerk Zugriffe vom Frontend- und Backend-Server zu dem DB-Server
- Port- und Netzwerk-Freigaben vom DB-Server abhängig. In der Regel:
- MSSQL:
1433 TCP - PostgreSQL:
5432 TCP
- MSSQL:
Warum Duckdb:
- kein extra Database-Server nötig, nur eine einzelne Datei zu verwalten
- Performance
- keine Netzwerk / Firewall-Einstellungen nötig
- Isolation: keine Mischung von unseren Daten mit anderen Daten
- Frontend hat nur Zugriff auf Frontend-Daten -->