Data & MoreEngineeringPlattformarchitektur

Wie Daten sich bewegen, von der Quelle bis zurdurchgesetzten Richtlinie.

Sieben Schichten führen ein Dokument von einer externen Quelle durch automatisierte Klassifizierung bis zur Richtliniendurchsetzung und Prüfung. Externe Systeme werden von quellenspezifischen Konnektoren gecrawlt, über die zentrale API indiziert, von einem Pool aus Workern angereichert, in einem gemeinsamen Speicher abgelegt, von der Überwachung beobachtet und im Vue-Client angezeigt.

Verbinden, scannen, klassifizieren, entscheiden, handeln, berichten.

7Schichten, von der Quelle bis zur Benutzeroberfläche
~40Dienste
1gemeinsamer Speicher: Elasticsearch
4Transportwege: REST, SQL, AMQP, S3
Abschnitt 01Der Ablauf

Die sieben Schichten auf einenBlick

Jede Schicht übergibt an die nächste über einen benannten Transportweg. Quellen werden von Konnektoren gecrawlt, Konnektoren schreiben in die zentrale API und Elasticsearch, die API verteilt asynchrone Aufgaben über RabbitMQ an den Worker-Pool, und jede Schicht liest und schreibt den gemeinsamen Speicher.

QUELLEN KONNEKTOREN ZENTRALE API WORKER SPEICHER ÜBERWACHUNG FRONTEND M365 · Google Workspace · Dateifreigaben · Azure AD · Websites 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-Aufrufe, OAuth, inkrementelle Synchronisierung HTTP-Batch-Ingest, direkter ES-Index Celery-Aufgaben über AMQP :5672 REST :9200, SQL :5432, S3 API Zustandsabfragen, Metriken, Benachrichtigungen HTTP / JSON REST, JWT über IAM
Übergabe zwischen den Schichten Verarbeitungs- / Konnektoren-Ebene Edge- oder Speicher-Ebene
Schicht 01Externe DatenquellenUrsprung der zu verwaltenden Kundendaten
Microsoft 365
Outlook / SharePoint / OneDrive / Teams
Primäre Unternehmensquelle: E-Mail, Dokumente, Dateispeicher und Team-Chat.
proto EWS / Graph API · auth OAuth 2.0 / Azure AD
Google Workspace
Gmail / Drive
Workspace-E-Mail- und Drive-Inhalte.
proto Google APIs · auth OAuth 2.0 / Dienstkonto
Netzwerkdateifreigabe
SMB / NFS
Dateien, Verzeichnisse und Berechtigungen auf Freigaben.
Azure AD
Benutzer / Gruppen
Identitäten und Gruppenmitgliedschaften.
proto Microsoft Graph API
Websites
HTTP-Crawling
Veröffentlichte Webseiten und Inhalte.
API-Aufrufe und CrawlingOAuth-TokenInkrementelle Synchronisierung
Schicht 02Konnektor-DiensteQuellenspezifische Ingestionsadapter
ews
Java / Spring Boot
Exchange Web Services für Outlook, OneDrive, SharePoint, Teams. Crawlen, Verschieben, Löschen, Validieren, Zurücksetzen.
out Elasticsearch
graph-ingestion
Scala / Maven
MS Graph mit graph-management, dm-graph-ingestion und graph-enforcer.
connects ES + RabbitMQ
google
Python
Scannen von Gmail und Google Drive.
out Elasticsearch
fileshare-service
Java
Netzwerk-Dateiscan über SMB / NFS.
out Elasticsearch
collector
Java / Gradle
Universeller Batch-Collector für generische Quelltypen.
out API then Elasticsearch
website-source
Python
HTTP / HTTPS Web-Crawling.
out ES + RabbitMQ
HTTP batch ingestionDirect ES indexing
Layer 03Core-API-SchichtZentraler Orchestrator und Authentifizierung
api
Python / Flask :8000
REST-API mit über 20 Blueprint-Modulen: Dokumente, Quellen, Richtlinien, Tags, Berichte, Benutzer, Konfiguration.
connects ES, PostgreSQL, RabbitMQ, IAM
task-worker
Python / Celery
Asynchroner Job-Prozessor über den RabbitMQ-Broker.
broker RabbitMQ :5672 · monitor Flower :5555
iam
Python / Flask :5000
Identitäts- und Zugriffsverwaltung mit JWT und unternehmensweiter Isolation.
connects PostgreSQL
dlp
Python / Flask + Celery :5050
Data-Loss-Prevention mit einer dedizierten PostgreSQL-Datenbank (dlp_dam).
connects ES, PostgreSQL, RabbitMQ
chat-api
Python
LLM-gestütztes Dokument-Q&A für chatbasierte Compliance.
connects ES, IAM, llm-management
Celery tasks via AMQP :5672Periodisch geplante Aufgaben
Layer 04Verarbeitungs-WorkerCelery-Tasks, die aus RabbitMQ konsumiert werden
Classification
Celery task
PII-Erkennung, Sensitivitätsbewertung, Sprachidentifikation.
out DS_PiiScore, DS_SensitivityScore
ai-profiler
Python / spaCy / Celery
NLP-Entitätsextraktion und Dokumentenprofiling.
out ES profiler results
Policy enforcement
Celery task
Aufbewahrungsregeln: Löschen, Archivieren, Quarantäne mit vollständigem Audit-Protokoll.
Prüfung deleted_data ES index
Tag-Zuweisung
Celery-Task
Delta-Tagging und Dokumentenklassen-Zuweisung.
out DS_Tags, DS_DocumentClass
ocr
Python
Textextraktion aus gescannten Dokumenten und Bildern.
out angereichertes Dokument in ES
DataSubject Manager
Java
VIP- und Entitätsabgleich mit der Datenbank bekannter Personen.
out ES-Datenschutz-Metadaten
ES / PG sync
Celery-Task
Bidirektionale Synchronisation zwischen Elasticsearch und PostgreSQL.
tasks es2postgre, syncpostgres
Backup-Worker
Celery-Task
Tägliche S3-Exporte als JSON-Batches (750 Dokumente/Datei).
target S3, 180-Tage-Aufbewahrung
REST :9200SQL :5432AMQP :5672S3 API
Layer 05DatenspeicherPersistenz- und Messaging-Infrastruktur
Elasticsearch 9.x
Primärindex :9200
Dokumentensuche, Klassifizierungsdaten, Prüfprotokolle und Systemereignisse. Der zentrale Speicher der Plattform.
datasourcesaccountstags policiesdeleted_dataanalyticsalgorithms document_classeslogshistory
version 9.3.1 · backup monatliche SLM-Snapshots nach S3
PostgreSQL 17.x
Relationaler Zustand :5432
Benutzer, Konfiguration, DLP-Status, IAM-Konten, PowerBI-Datensätze und Vektoreinbettungen.
defaultdlp_damiampowerbivector
version 17.6 (ECR) · volume postgres_data
RabbitMQ 4.x
Message-Broker :5672
Celery-Task-Warteschlange über AMQP. Management-UI auf :15672.
version 4.2.2 · volume rabbitmq_4
AWS S3
Backup-Speicher
Tägliche JSON-Indexexporte pro Unternehmen / Arbeitsbereich sowie monatliche ES-Snapshots.
retention 180 Tage, automatische Bereinigung
StatusabfragenE-Mail-BenachrichtigungenMetrikenerfassung
Layer 06Überwachung und AlarmierungBeobachtbarkeit und Systemzustand
Management-Tool, Warnmeldungen
Python / 40+ Warnmeldungstypen
Überwacht Aufnahmegeschwindigkeit, Richtlinienfortschritt, ES-Indexzustand, Zertifikatsablauf und Azure-Synchronisierung.
verbindet ES, RabbitMQ
py-dm-notify
Python
E-Mail-Zustellung für Compliance-Benachrichtigungen und Berichte.
Analysen
Python / Flask
Aggregation von Compliance-Kennzahlen und KPI-Berichterstattung.
verbindet Elasticsearch
flower
Web UI :5555
Echtzeit-Dashboard für Celery-Worker und Aufgaben.
metricbeat
Elastic Stack
Erfasst System- und Container-Metriken zur Überwachung von ES.
HTTP / JSON RESTJWT-Authentifizierung über IAM
Layer 07Frontend und BenutzeroberflächeAnwendungen für Endnutzer
client
Vue 3 / TypeScript / Vite :9000
Primäre Web-Anwendung: Dokumentensuche, Klassifizierungsverwaltung, Richtlinienverwaltung, Berichte und Fallprotokolle.
Stack Vue 3, TS, Vite, Vuex, Chart.js
chat-client
Frontend
LLM-Chat-Oberfläche für Dokument-Q&A.
Backend chat-api
nginx
Reverse Proxy :443 :80
SSL-Terminierung über Let's Encrypt. Leitet / an client, /api an api, /iam an iam weiter.
Version 1.24.0

Abschnitt 02Dokumentenlebenszyklus

Ein Dokument, ein Pfad

Quelle Connector crawlt API indiziert in ES Worker klassifizieren Tags und Richtlinien werden angewendet Richtliniendurchsetzung Prüfprotokoll S3-Sicherung
Abschnitt 03Wichtige Verbindungen

Wer kommuniziert mit wem

API ↔ ESREST :9200
API ↔ PostgreSQLSQL :5432
API → RabbitMQAMQP :5672
Workers ↔ ESREST :9200
Workers → PostgreSQLSQL :5432
Workers → S3AWS SDK
Client → APIHTTP :8000
API → IAMJWT :5000
NGINX → alle:443 Reverse-Proxy
Docker-Netzwerkdm, internes DNS