Skip to main content

Infrastruktur & säkerhet

Driftsättningen av Simplitics PDQ-plattform är centrerad kring en modulär, containerbaserad arkitektur utformad för flexibilitet över olika miljöer, kombinerat med strikt beroendehantering och robust säkerhetskonfiguration.


1. Grundläggande Arkitektoniskt Driftsättningskoncept​

Simplitics arkitektur är grundläggande utformad kring Docker-containers. Detta tillvägagångssätt tillåter plattformen, som är kärnan i Simplitics enhetliga datahanteringssystem, att köras på vilken containerbaserad miljö som helst (vilken molnleverantör eller lokal installation som helst).

Driftsättningsmålet är effektivitet och decentralisering där det behövs:

  • INGEST-agenter är helst distribuerade nära datakällan (lokalt eller separat moln) för att minimera dataöverföring.
  • DWA är idealiskt placerat i samma region som databasen.
  • Kärnkomponenterna metadata engine (AME) och databehandling (DLS) körs helst så nära varandra som möjligt, i samma region som repository-databasen.

2. Infrastrukturinställning och Systemberoenden​

Driftsättning på en virtuell maskin (VM), såsom en EC2 Ubuntu 22.04 instans, kräver specifika förberedande steg.

VM och Docker-konfiguration​

  1. Diskinställning: Skapa och montera en extra disk (t.ex. /datadrive) på VM:en.
  2. Docker-installation: Installera och konfigurera Docker engine, CLI, containerd.io, och nödvändiga plugins.
  3. Data Root och Loggning: Redigera eller skapa /etc/docker/daemon.json filen för att definiera data root ("data-root": "/datadrive/docker") och konfigurera roterande loggar ("max-size": "10m", "max-file": "3").

Tjänstens Startordning (Systemd Beroendekedja)​

Docker Compose projekt hanteras av systemd servicefiler, som skapar en strikt, linjär beroendekedja för att säkerställa att tjänster endast startar om den föregående tjänsten lyckas.

Den nödvändiga startordningen är:

  1. simplitics-ui.service (Bastjänst, startar endast efter Docker).
  2. simplitics-ame.service (Active Metadata Engine).
  3. simplitics-dls.service (Data Lake Service).
  4. simplitics-dwa.service (Data Warehouse Automation).
  5. simplitics-ingest.service (Data Importer).

Hela applikationsstacken kan startas genom att köra den sista tjänsten i kedjan.


3. Säkerhets- och Åtkomstdriftsättning (Caddyserver)​

Simplitics uppgradering (25.6.1) introducerade Caddyserver för att hantera API-åtkomst och ny inloggningsteknologi, vilket kräver specifika nätverks- och säkerhetssteg:

  • DNS och Brandvägg: PDQ-maskinen måste använda ett Fully Qualified Domain Name (FQDN). Portarna 80 och 443 måste vara tillgängliga på servern, men bör inte vara offentligt exponerade.
  • Nätverk: Ett nytt Docker-nätverk (t.ex. xx_caddynet) måste skapas.
  • AME-isolering (Kritiskt steg): Alla mappade portar i ame-compose.yml filen måste tas bort. AME-tjänster bör vara isolerade till det interna Docker-nätverket och inte tillgängliga utifrån.
  • Autentisering (Entra/Azure AD): Aktivering av Entra-autentisering inkluderar:
    • App-registrering: Skapa en App-registrering (t.ex. sp-pdq-caddy-demo) med en specifik Redirect URI: Web - https://{dns_name}:{port}/auth/oauth2/azure/authorization-code-callback.
    • Gruppanspråk: Definiera tre Entra-grupper (pdq_web_admins, pdq_web_developers, pdq_web_viewers) för att hantera användarbehörigheter. Uppdatera Token-konfigurationen för att hämta tilldelade användargrupper.
    • Behörigheter: Bevilja administratörssamtycke för User.Read behörigheter.

4. Underhåll och Uppgraderingar​

Driftsättning inkluderar hanteringsrutiner för uppgraderingar och återställning:

  • Uppgradering av Komponenter: För att uppgradera (t.ex. till release v25.6.1), stoppa alla Docker-tjänster först. Uppdatera komponenternas Compose-filer (.yml) för att peka på den nya release-taggen (t.ex. Xx:release_v25.6.1), och utför en manuell pull för att hämta den senaste imagen.
  • Kryptering av Hemligheter: Efter en tjänsteuppdatering måste anslutningshemligheter återkrypteras. Använd API:et för att GET den befintliga okrypterade datan per källsystem, och sedan POST tillbaka den till repositoryn.
  • Felsökningslösningar:
    • En vanlig lösning för infrastrukturrelaterade problem (som en VM-krasch) är att stoppa och starta den virtuella maskinen från molnportalen.
    • Om VM:en är tillgänglig, navigera till /datadrive/configs och kör docker compose down följt av docker compose up -d för alla komponenter (INGEST, TOOLS, DWA, DLS, UI, AME) för att lösa stoppade containrar eller dåliga tillstånd.