Kommentar von Johannes Unterstein, Neo4j Database-as-a-Service – Graphtechnologie in der Cloud nutzen

Autor / Redakteur: Johannes Unterstein / Nico Litzel

Software-as-a-Service (SaaS) und elastische Rechenkapazitäten waren schon lange in der Cloud angekommen, als sich Datenbanken erst auf den Weg machten. Der Grund dafür waren unter anderem Infrastrukturanforderungen von Datenbanktechnologien, Compliance-Bedenken und Data Gravity. In den letzten Jahren jedoch hat Database-as-a-Service (DBaaS) stark aufgeholt. Jetzt mit dabei: Graphdatenbanken.

Firmen zum Thema

Der Autor: Johannes Unterstein ist Tech Lead Aura Orchestration bei Neo4j
Der Autor: Johannes Unterstein ist Tech Lead Aura Orchestration bei Neo4j
(Bild: Neo4j)

Der Einsatz von Graphtechnologie – verbunden mit der Cloud – gilt als einer der wichtigsten Trends für 2021. Nach Gartner werden in den nächsten zwei bis drei Jahren 30 Prozent der Unternehmen weltweit Graphdatenbanken einsetzen, um schneller auf den richtigen Datenkontext für die Entscheidungsfindung zurückgreifen zu können.

Die perfekte Mischung: Graphen, Data Science & Cloud

Graph Analytics liefert Data Scientists dabei einen Einblick in die Zusammenhänge zwischen verschiedenen Entitäten, wie Organisationen, Personen und Transaktionen. Ziel ist es, Muster in Daten zu erkennen und zu überprüfen, die mit herkömmlichen Analysen (z. B. in relationalen Datenbanken) unentdeckt bleiben.

Schubkraft erfahren die Graphen durch die Kombination mit Machine-Learning-Funktionalitäten und Graph-Algorithmen, mit denen sich Datenquellen und Dokumente unbegrenzt und in Echtzeit durchforsten lassen. Die Anwendungsbereiche sind dabei breit. In der Medizin kommt Graph Data Science z. B. für die Erforschung von neuen Behandlungsmöglichkeiten für Diabetes zum Einsatz. Hersteller wiederum nutzen Graphtechnologie für das Supply Chain Management (SCM) sowie Produktdatenmanagement (PDM), um Fehlerursachen bei Qualitätskontrollen zu identifizieren. Bei Banken und Versicherungen werden Graphen bei der Betrugsbekämpfung im Zusammenhang mit Geldwäsche und Steuerhinterziehung eingesetzt.

Der Übergang in die Cloud ist für die Graphdatenbanken nun der nächste logische Schritt, um für Entwickler und Graph-Anwendungen mehr Freiraum und Agilität zu schaffen. Das Ergebnis lautet Graphdatabase-as-a-Service (GDBaaS). Der Wechsel in die Cloud ist dringend nötig. Denn um auch in unsicheren Zeiten flexibel reagieren und Innovationen vorantreiben zu können, sind Unternehmen heute mehr als je zuvor auf moderne Datenanalytik angewiesen.

Benutzerfreundlichkeit und Flexibilität von DBaaS

Für den Trend zur Database-as-a-Service (DBaaS) gibt es zwei Gründe: Benutzerfreundlichkeit und Flexibilität. Zum einen können sich Entwickler auf das Programmieren von Anwendungen konzentrieren, ohne sich um die Verwaltung der Infrastruktur kümmern zu müssen. Zum anderen verkürzt der Übergang zum Cloud-Service die Time-to-Value und ermöglicht eine deutlich schnellere Bereitstellung von Anwendungen als On-premise. Ein weiterer Vorteil ist die deutlich schnellere Entwicklung eigener Apps und die Kostensenkung. Beim Schreiben eines Programms wächst beispielsweise das Back-end automatisch mit den Anforderungen mit. Gleichzeitig wird in der Cloud nur das berechnet, was auch wirklich genutzt wird.

Der Trend zu GDBaaS setzt sich mehr und mehr durch: Der Graphdatenbank-Anbieter Neo4j meldete, dass 2020 rund 90 Prozent der Kunden ihre graphbasierten Anwendungen in der Cloud betrieben. Für viele Unternehmen ist es zudem das erste Mal, dass sie Graphtechnologie überhaupt einsetzen. Im Januar stellte Neo4j die Enterprise-Version von Aura vor, mit dem Anwender eine dezidierte Virtual Private Cloud (VPC) erhalten, in der die eigenen Daten und Infrastruktur von denen anderer Unternehmen/Graph-Anwendern isoliert sind. Die Neo4j GDBaaS ist auf Google Cloud Platform sowie als Early-Access-Programm auf Amazon Web Services (AWS) verfügbar. Die selbstüberwachende und selbstheilende Architektur von Aura basiert auf zwei grundlegende Technologien: Kubernetes und Causal Clustering.

Kubernetes Container Orchestration

Kubernetes bietet als Standard-Container-Orchestrierungssystem eine zuverlässige und effiziente Möglichkeit, Server-, Netzwerk- und Speicherinfrastruktur zu managen. Die Prozesse werden dabei so auf die vorhandenen Server verteilt, dass die Arbeitslasten und Services jederzeit über die nötigen Ressourcen zur Ausführung verfügen. Fehlerhafte Prozesse werden automatisch neu gestartet, was die Verfügbarkeit erhöht und Ausfälle reduziert.

Die containerzentrierte Managementumgebung ist so etwas wie die Grundvoraussetzung für effiziente IaaS, PaaS und auch DBaaS. Die konsistente Verteilung von Systemen wie Graphdatenbanken stellt jedoch besonders komplexe Anforderungen. Es muss sichergestellt sein, wie Zehntausende von Datenbanken gleichzeitig, automatisiert und zuverlässig orchestrieren werden können. Algorithmen allein reichen hier nicht aus. Neo4j Aura nutzte die modular aufgebauten Bausteine von Kubernetes, um einen speziellen Kubernetes-Operator zu entwickeln. Somit ist die GDBaaS in der Lage, einen eigenen Ablauf bei Aktualisierungen sicherzustellen (Rolling Updates) und dabei die bereitgestellte Funktionalität von Kubernetes zu verwenden.

Hochverfügbarkeit durch Causal Clustering

Um die hochverfügbare Architektur der Graphdatenbank sicherzustellen, wurde der Raft-Consensus-Algorithmus implementiert. Raft ist ein Konsensalgorithmus, der als Alternative zur Paxos-Algorithmusfamilie entwickelt wurde. Er stellt die Grundlage für verteilte Transaktionen dar. In der Graphdatenbank ermöglicht Raft einem Cluster von Servern zusammen zu arbeiten. Entwickler können so Transaktionen entweder lokal oder an andere Mitglieder des Clusters dirigieren bzw. umleiten und die Lastverteilung im Cluster flexibel steuern. Das garantiert eine hohe Skalierbarkeit sowie Hochverfügbarkeit. Updates, Sicherheitspatches und On-Demand-Skalierung der Datenbank lassen sich ohne Ausfallzeiten durchführen.

Bei Neo4j Aura Enterprise wird jede Datenbank in einem Causal Cluster von drei Servern betrieben, die über verschiedene Rechenzentren verteilt sind. Kommt es bei einem dieser Server oder sogar beim Rechenzentrum zum Ausfall, bleiben die Daten geschützt und die Anwendung läuft weiter.

Infrastruktur und Sicherheit

Eine Graph-Database-as-a-Service muss sich jedoch nicht nur auf ihre Cloud-Instanzen verlassen können. Die Infrastruktur in der Cloud beinhaltet auch Netzwerkkomponenten und Speichergeräte. Wo immer es geht, sollten GDBaaS deshalb auf die bestehenden, skalierbaren Services der Public-Cloud-Anbieter zurückgreifen. Auf diese Weise verfügen die Datenbanken über alle Eigenschaften des zugrundeliegenden Systems in Bezug auf Sicherheit und Resilience. Für zusätzliche Datensicherheit sorgt eine End-to-End-Verschlüsselung sowie die Isolierung innerhalb dedizierter virtueller Netzwerke, die in den Systemen der Cloud-Anbieter gegeben ist.

Cloud steht für die meisten Unternehmen für mehr Flexibilität, Sicherheit, Zuverlässigkeit und weniger Kosten. Datenbanken sind hier keine Ausnahme. Sind die Voraussetzungen für das Speichern, Abfragen und Management von Daten in der Cloud erstmal erfüllt, steht der „perfekten Mischung“ aus Graphen, Data Science und Cloud nichts mehr im Weg.

(ID:47295205)