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
- Diskinställning: Skapa och montera en extra disk (t.ex.
/datadrive) på VM:en. - Docker-installation: Installera och konfigurera Docker engine, CLI, containerd.io, och nödvändiga plugins.
- Data Root och Loggning: Redigera eller skapa
/etc/docker/daemon.jsonfilen 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:
simplitics-ui.service(Bastjänst, startar endast efter Docker).simplitics-ame.service(Active Metadata Engine).simplitics-dls.service(Data Lake Service).simplitics-dwa.service(Data Warehouse Automation).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.ymlfilen 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.Readbehörigheter.
- App-registrering: Skapa en App-registrering (t.ex.
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
GETden befintliga okrypterade datan per källsystem, och sedanPOSTtillbaka 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/configsoch kördocker compose downföljt avdocker compose up -dför alla komponenter (INGEST, TOOLS, DWA, DLS, UI, AME) för att lösa stoppade containrar eller dåliga tillstånd.