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.
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 | – |
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 |
Cypher-Abfragen
Pfadanalyse und Zyklenerkennung