Home Up PDF Prof. Dr. Ingo Claßen
Übung Graphdatenbanken - IT-Infrastruktur- ADBKT

Übung Graphdatenbanken - IT-Infrastruktur

Aufgabenstellung

Ein Unternehmen betreibt eine IT-Infrastruktur: Dutzende Services hängen voneinander ab, teilen Datenbanken, kommunizieren über Message Queues und laufen auf verschiedenen Servern. Entwickeln sie ein Infrastruktur-Inventar auf Basis von Neo4j, das Abhängigkeitsanalysen in Echtzeit beantwortet.

Infrastruktur

Der Graph modelliert eine IT-Infrastruktur mit folgenden Knoten und Kanten:

Knoten Eigenschaften
Service id, name, version, status (up/down/degraded), is_replica
Team id, name, members
Server id, hostname, datacenter, cpu_cores, ram_gb
Database id, name, type (postgres/cassandra/neo4j)
Message Queue id, name, type (kafka/rabbitmq)

Kanten Beziehung Eigenschaften
DEPENDS_ON Service → Service criticality (hard/soft), timeout_ms
DEPLOYED_ON Service → Server
USES_DB Service → Database access (read/write/readwrite)
PUBLISHES_TO Service → MessageQueue
CONSUMES_FROM Service → MessageQueue
OWNS Team → Service

Datenerzeugung

Nutzen sie ein LLM, um die Graphdaten zu generieren. Die angegebenen Werte sind Beispiele und können angepasst werden.

Element Anzahl
Teams Team1, Team2, ... Team8
Servers 5 (verteilt auf 2 Rechenzentren: „eu-west", „eu-central")
Databases 4 Postgres, 2 Cassandra, 1 Neo4j
MessageQueues 3 Kafka, 2 RabbitMQ
Services 50 (je einem Team zugeordnet)
DEPENDS_ON 120 (jeder Service auf 2–3 Services)
DEPLOYED_ON 70 (jeder Service auf 1–2 Servern)
USES_DB 40
PUBLISHES_TO 20
CONSUMES_FROM 20

Analyse

Cypher-Abfragen

  • Q1: Alle direkten Abhängigkeiten von Service X
  • Q2: Transitiver Ausfall-Impact: alle Services, die bei Ausfall von X betroffen sind
  • Q3: Alle Services eines Teams mit ihrem Status
  • Q4: Datenbankinstanzen, auf die mehr als 5 Services zugreifen (Hotspots)
  • Q5: Services ohne Redundanz: deployed auf genau einem Server
  • Q6: Services, die sowohl Daten in eine Queue schreiben als auch aus einer anderen lesen
  • Q7: Anzahl Service-Replicas auf jedem Server
  • Q8: Server, auf denen ausgefallene Services (status: "down") laufen

Pfadanalyse und Zyklenerkennung

  • Längste Abhängigkeitskette (Critical Path): Finden Sie den Service mit der tiefsten transitiven Abhängigkeitskette
  • Zirkuläre Abhängigkeiten erkennen: Prüfen Sie, ob Ihr generierter Graph zyklenfrei ist
  • Kürzester Pfad zwischen zwei Services: Finden Sie den kürzesten Pfad zwischen zwei Services über beliebige Kanten