Datenbanken sind immer öfter in der Cloud in Form von Database as a Service im Einsatz.
Viele Unternehmen durchlaufen einen digitalen Wandel: Offline-Aktivitäten werden zu Online-Aktivitäten, Unternehmensanwendungen werden zu kundenorientierten Anwendungen und Interaktion findet überall über Web-, Mobil- und Internet-of-Things-Anwendungen (IoT) statt. Wenn es um die Kundenerfahrung geht, ist die Verfügbarkeit von Diensten und Apps keine Wunschvorstellung mehr, sondern eine Grundvoraussetzung. Datenbanken bilden dabei das Rückgrat von Websites, Apps, Online-Shops und Co. Sie sind On-Premise und immer öfter in der Cloud in Form von Database as a Service (DBaas) im Einsatz.
Hochverfügbare Datenbanken sind rund um die Uhr verfügbar und ausfallsicher. Ein solches System arbeitet auch dann weiter, wenn einzelne Komponenten ausfallen. Hier kommt die sogenannte Redundanz ins Spiel, die dafür sorgt, dass jede Ressource mehrfach vorhanden ist und damit ein Ausfall einzelner Teile abgefedert wird. Diese Verfügbarkeit wird von den Anbietern als Prozentzahl angegeben: Sie beschreibt die Dauer, die ein System störungsfrei arbeiten muss, bezogen auf einen Zeitraum. Da in der Praxis eine 100-prozentige Verfügbarkeit schwer zu erreichen ist, wird Hochverfügbarkeit meist mit den „fünf Neunen“ illustriert. Bei einer Ausfallsicherheit von 99,999 Prozent spricht man daher von einem hochverfügbaren System, da man hier bezogen auf ein Jahr von nur ca. fünf Minuten Stillstand ausgehen kann. Diese Zahl ist damit noch oberhalb der Verfügbarkeit, die Cloud-Provider anbieten.
Hochverfügbarkeit ist damit ein wichtiger Garant für die Geschäftskontinuität. Dennoch geht es immer auch darum, vorab zu prüfen, was wichtiger ist: Leistung oder Konsistenz? Hier müssen Unternehmen einen Kompromiss finden: Es gibt Situationen, in denen Beständigkeit und Konsistenz wichtiger sind, während in anderen Fällen die Leistung eines Systems Vorrang hat. Die richtige Abwägung hängt von den Geschäftsanforderungen, dem Anwendungsfall und den technischen Anforderungen ab.
Das Grundprinzip der Hochverfügbarkeit bei Datenbanken ist die mehrfache Speicherung derselben Daten, etwa durch Spiegelung der Daten auf zwei oder mehr Datenträgern oder virtuellen Servern in unterschiedlichen geografischen Regionen. Dabei muss jedoch sichergestellt werden, dass alle Datenträger jeweils die neuesten Daten erhalten.
Das macht die Administration und auch die Anwendungsentwicklung komplex. Deshalb ist für Unternehmen der Einsatz eines Datenbank-Proxy sinnvoll. Dieser erzeugt eine transparente Abstraktionsschicht zwischen der Anwendung und den Datenbanken. Aus Sicht der Entwickler und der Endanwender wirkt der Proxy somit wie eine normale Datenbankinstanz, obwohl er vielmehr ein Verwaltungsdienst ist, hinter dem ein primärer Datenbankserver (Primary) mit einer oder mehreren identischen Kopien oder Replikaten stehen.
Für größere Unternehmen aus dem Maschinen- und Anlagenbau oder der Elektroindustrie sieht die Lösung anders aus, da diese oft über weltweite Niederlassungen verfügen. Ein zentraler Datenbankserver am Hauptstandort würde für die Außenstellen große Latenzen beim Abfragen und dem Datenaustausch zwischen Primary und Replika bedeuten. Auch der Failover – also die Aktivierung einer Standby-Datenbank, um den Ausfall der aktiven Datenbank zu kompensieren – wäre etwa für die Anforderungen im E-Commerce zu langsam. Hier sind globale Cluster-Architekturen gefordert, die einen guten Kompromiss aus Aktualität der Daten und akzeptabler Latenz abbilden können.
Eine sinnvolle Alternative für Unternehmen, die konsistente Abfragen über größere Datenmengen im Terabyte-Bereich und höher verarbeiten wollen, sind verteilte SQL-Datenbanken. In dieser relationalen Datenbankarchitektur von Anbietern wie MariaDB arbeiten mehrere Instanzen (sog. Knoten) des Datenbanksystems gleichzeitig in einem Multi-Primary-Cluster. Unabhängig davon, ob sich die Knoten in einem oder in mehreren lokalen Rechenzentren befinden, über physische oder virtuelle Server oder spezielle Cloud-Instanzen in eine Plattform eingebunden sind, gilt: Das System synchronisiert die Datenbankinhalte und sorgt für einen Lastausgleich der Transaktionen. Ein einzelner Knoten wird dadurch nicht zu einem Engpass, hohe Leistung und Verfügbarkeit sind die Folge. Zusätzlich bietet das System Datenredundanz, da die Daten eines Knotens im Hintergrund auf andere kopiert und dann synchronisiert werden.
Der Vorteil solcher Cluster liegt auf der Hand: Sie sind in der Lage, eine enorme Menge an Transaktionen pro Sekunde zu verarbeiten, ohne dass die Datenintegrität oder die kontinuierliche Hochverfügbarkeit beeinträchtigt werden. Auch bei verteiltem SQL garantiert Redundanz die Ausfallsicherheit des Systems: Die Cluster arbeiten in einer Shared-Nothing-Architektur, in der die einzelnen Knoten unabhängig voneinander sind. Somit hat der Ausfall eines Knotens keine Auswirkung auf die anderen. Die Daten sind weiterhin verfügbar, da das System den Ausfall automatisch erkennt und die Daten innerhalb der Knoten umverteilt. Sobald der Knoten wieder verfügbar ist, sorgt die Datenbank automatisch dafür, dass Änderungen an den Daten auf allen Systemen synchronisiert werden.
Ein Vorteil dieser Datenbank-Cluster ist, dass sie aufgrund ihrer Skalierbarkeit für kleinere, mittlere und große Unternehmen in Frage kommen: Das kleinste mögliche Cluster besteht aus drei Knoten in Kombination mit einem zusätzlichen Server für den Datenbank-Proxy als Cluster-Manager und Backend für Anwendungen. Dieses Cluster kann Hochverfügbarkeit für kleinere Installationen gleichermaßen herstellen wie für Systeme, die aus tausenden Knoten bestehen und Millionen Abfragen pro Sekunde verarbeiten müssen, ohne die Datenintegrität oder Verfügbarkeit zu beeinträchtigen. Bei Nutzung einer Cloud-Datenbank gibt es als weitere Zusatzfunktionen den automatischen Failover oder die Selbstheilung des Clusters. Diese entlasten IT-Teams und gewährleisten die Betriebskontinuität.
Dies ist ein Artikel aus unserer Print-Ausgabe 7-8/2022. Bestellen Sie ein kostenfreies Probe-Abo.
In Zeiten, in denen der Komfort und die Anwenderfreundlichkeit von Websites, Apps und Co. im Fokus stehen, sind Datenbank-Cluster im eigenen Rechenzentrum oder hochverfügbare Cloud-Datenbanken aufgrund ihrer Flexibilität und Skalierbarkeit ideale Lösungen für Unternehmen jeder Größe, die die Hochverfügbarkeit im Blick haben.
Bildquelle: Getty Images/iStock/Getty Images Plus