Data & MoreTeknikPlattformsarkitektur

Hur data rör sig, från källa tilltillämpad policy.

Sju lager bär ett dokument från en extern källa genom automatiserad klassificering till policytillämpning och revision. Externa system crawlas av källspecifika anslutningar, indexeras via kärn-API:et, berikas av en pool av arbetare, lagras i ett gemensamt datalager, övervakas av monitoreringsfunktioner och presenteras i Vue-klienten.

Anslut, skanna, klassificera, besluta, agera, rapportera.

7lager, från källa till gränssnitt
~40tjänster
1gemensamt datalager: Elasticsearch
4transportprotokoll: REST, SQL, AMQP, S3
Avsnitt 01Flödet

De sju lagren ikorthet

Varje lager lämnar över till nästa via ett namngivet transportprotokoll. Källor crawlas av anslutningar, anslutningar skriver till kärn-API:et och Elasticsearch, API:et skickar asynkront arbete till arbetarpoolen via RabbitMQ, och varje lager läser från och skriver till det gemensamma datalagret.

KÄLLOR ANSLUTNINGAR KÄRN-API ARBETARE DATALAGER ÖVERVAKNING KLIENTGRÄNSSNITT M365 · Google Workspace · Filresurser · Azure AD · Webbplatser ews · graph-ingestion · google · fileshare-service · collector · website-source api :8000 · task-worker · iam :5000 · dlp :5050 · chat-api classification · ai-profiler · enforcement · tagging · ocr · DSM · sync · backup Elasticsearch :9200 · PostgreSQL :5432 · RabbitMQ :5672 · AWS S3 alerts · py-dm-notify · analytics · flower · metricbeat client (Vue 3) · chat-client · nginx API-anrop, OAuth, inkrementell synkronisering HTTP-batchinmatning, direkt ES-indexering Celery-uppgifter via AMQP :5672 REST :9200, SQL :5432, S3 API hälsoförfrågningar, mätvärden, notifieringar HTTP / JSON REST, JWT via IAM
Överlämning mellan lager Bearbetnings- och anslutningstjänstskikt Kant- eller datalagerskikt
Lager 01Externa datakällorUrsprung för kunddata som ska hanteras
Microsoft 365
Outlook / SharePoint / OneDrive / Teams
Primär företagskälla: e-post, dokument, fillagring och teamchatt.
proto EWS / Graph API · auth OAuth 2.0 / Azure AD
Google Workspace
Gmail / Drive
E-post och Drive-innehåll i Workspace.
proto Google APIs · auth OAuth 2.0 / tjänstekonto
Nätverksfilresurs
SMB / NFS
Filer, kataloger och behörigheter på filresurser.
Azure AD
Användare / Grupper
Identiteter och gruppmedlemskap.
proto Microsoft Graph API
Webbplatser
HTTP-crawlning
Publicerade webbsidor och innehåll.
API-anrop och crawlningOAuth-tokenInkrementell synkronisering
Lager 02AnslutningstjänsterKällspecifika inmatningsadaptrar
ews
Java / Spring Boot
Exchange Web Services för Outlook, OneDrive, SharePoint, Teams. Crawla, flytta, ta bort, validera, återställ.
ut Elasticsearch
graph-ingestion
Scala / Maven
MS Graph med graph-management, dm-graph-ingestion och graph-enforcer.
ansluter ES + RabbitMQ
google
Python
Skanning av Gmail och Google Drive.
ut Elasticsearch
fileshare-service
Java
Nätverksfilskanning via SMB / NFS.
ut Elasticsearch
collector
Java / Gradle
Universell batchinsamlare för generiska källtyper.
ut API sedan Elasticsearch
website-source
Python
Webbcrawlning via HTTP / HTTPS.
ut ES + RabbitMQ
HTTP-batchinhämtningDirekt ES-indexering
Layer 03Centralt API-lagerCentral orkestrering och autentisering
api
Python / Flask :8000
REST API med 20+ Blueprint-moduler: dokument, källor, policyer, taggar, rapporter, användare, konfiguration.
ansluter ES, PostgreSQL, RabbitMQ, IAM
task-worker
Python / Celery
Asynkron jobbprocessor via RabbitMQ-brokern.
broker RabbitMQ :5672 · monitor Flower :5555
iam
Python / Flask :5000
Identitets- och åtkomsthantering med JWT och företagsscopead isolering.
ansluter PostgreSQL
dlp
Python / Flask + Celery :5050
Dataläckageskydd med en dedikerad PostgreSQL-databas (dlp_dam).
ansluter ES, PostgreSQL, RabbitMQ
chat-api
Python
LLM-driven dokument-Q&A för chattbaserad regelefterlevnad.
ansluter ES, IAM, llm-management
Celery-uppgifter via AMQP :5672Periodiskt schemalagda jobb
Layer 04BearbetningsarbetareCelery-uppgifter hämtade från RabbitMQ
Klassificering
Celery-uppgift
PII-detektering, känslighetsbedömning, språkidentifiering.
ut DS_PiiScore, DS_SensitivityScore
ai-profiler
Python / spaCy / Celery
NLP-entitetsextraktion och dokumentprofilering.
ut ES profiler results
Policyverkställighet
Celery-uppgift
Lagringsregler: ta bort, arkivera, sätt i karantän med fullständig revision.
revision deleted_data ES index
Taggtilldelning
Celery-uppgift
Delta-taggning och dokumentklasstilldelning.
ut DS_Tags, DS_DocumentClass
ocr
Python
Textutvinning från skannade dokument och bilder.
ut berikat dokument i ES
DataSubject Manager
Java
VIP- och entitetsmatchning mot databasen över kända personer.
ut ES-metadata för registrerade
ES / PG-synkronisering
Celery-uppgift
Dubbelriktad synkronisering mellan Elasticsearch och PostgreSQL.
uppgifter es2postgre, syncpostgres
Säkerhetskopieringsarbetare
Celery-uppgift
Dagliga S3-exporter som JSON-batchar (750 dokument/fil).
mål S3, 180 dagars lagring
REST :9200SQL :5432AMQP :5672S3 API
Lager 05DatalagerInfrastruktur för persistens och meddelandehantering
Elasticsearch 9.x
Primärt index :9200
Dokumentsökning, klassificeringsdata, revisionsloggar och systemhändelser. Plattformens centrala datalager.
datasourcesaccountstags policiesdeleted_dataanalyticsalgorithms document_classeslogshistory
version 9.3.1 · säkerhetskopiering månatliga SLM-ögonblicksbilder till S3
PostgreSQL 17.x
Relationstillstånd :5432
Användare, konfiguration, DLP-tillstånd, IAM-konton, PowerBI-datamängder och vektorinbäddningar.
defaultdlp_damiampowerbivector
version 17.6 (ECR) · volym postgres_data
RabbitMQ 4.x
Meddelandeförmedlare :5672
Celery-uppgiftskö via AMQP. Hanterings-UI på :15672.
version 4.2.2 · volym rabbitmq_4
AWS S3
Lagring av säkerhetskopior
Dagliga JSON-indexexporter per företag/arbetsyta samt månatliga ES-ögonblicksbilder.
lagring 180 dagar, automatisk rensning
HälsoförfrågningarE-postmeddelandenMåttinsamling
Lager 06Övervakning och larmhanteringObserverbarhet och systemhälsa
Hanteringsverktyg, Aviseringar
Python / 40+ aviseringstyper
Övervakar inmatningshastighet, policyframsteg, ES-indexhälsa, certifikatutgång och Azure-synkronisering.
ansluter ES, RabbitMQ
py-dm-notify
Python
E-postleverans för efterlevnadsaviseringar och rapporter.
analys
Python / Flask
Aggregering av efterlevnadsmått och KPI-rapportering.
ansluter Elasticsearch
flower
Webb-UI :5555
Realtidsinstrumentpanel för Celery-arbetare och uppgifter.
metricbeat
Elastic Stack
Samlar in system- och containermått för övervakning av ES.
HTTP / JSON RESTJWT-autentisering via IAM
Lager 07Klientdel och användargränssnittAnvändarinriktade applikationer
client
Vue 3 / TypeScript / Vite :9000
Primär webbapp: dokumentsökning, klassificeringshantering, policyförvaltning, rapporter och ärendeloggar.
stack Vue 3, TS, Vite, Vuex, Chart.js
chat-client
Klientdel
LLM-chattgränssnitt för dokumentfrågor och svar.
backend chat-api
nginx
Omvänd proxy :443 :80
SSL-terminering via Let's Encrypt. Dirigerar / till client, /api till api, /iam till iam.
version 1.24.0

Avsnitt 02Dokumentets livscykel

Ett dokument, en väg

Källa Anslutaren genomsöker API indexerar till ES Arbetare klassificerar Taggar och policyer tillämpas Policyverkställighet Granskningsspår S3-säkerhetskopiering
Avsnitt 03Viktiga anslutningar

Vem kommunicerar med vem

API ↔ ESREST :9200
API ↔ PostgreSQLSQL :5432
API → RabbitMQAMQP :5672
Arbetare ↔ ESREST :9200
Arbetare → PostgreSQLSQL :5432
Arbetare → S3AWS SDK
Client → APIHTTP :8000
API → IAMJWT :5000
NGINX → alla:443 omvänd proxy
Docker-nätverkdm, internt DNS