Entkopplung von Anwendungs- und Datenschicht

Datenbank-Proxy MariaDB MaxScale

18.02.2015
Von 
Jan Schulze ist freier Autor in Erding bei München.
Mit einem neuen Proxy-Layer will MariaDB die Skalierbarkeit und Verfügbarkeit von Anwendungen mit großen Datenmengen verbessern. Durch die Trennung der Anwendung von den Datenbanken lassen sich die Aufwände beim horizontalen Skalieren senken und die Verfügbarkeit erhöhen. MariaDB MaxScale soll dabei in der Lage sein, auch mit heterogenen Datenbanklandschaften zurechtzukommen.

Auch wenn es in den vergangenen Jahren recht ruhig geworden ist um das Thema Datenbanken, ist die Entwicklung deswegen nicht stehen geblieben. Denn im Zuge der weiteren Digitalisierung der Unternehmen unter dem Schlagwort "Digital Enterprise" werden Datenbanken zu einer zentralen Komponente der IT und der Geschäftsprozesse.

Big Data zeigt, welche Anforderungen heute an die Datenbanken gestellt werden. Nun meldet sich mit MariaDB ein Anbieter zu Wort, den in der Regel nur Insider genauer kennen werden. Hinter dem finnischen Open-Source-Haus stehen die ehemals treibenden Kräfte der fast schon legendären MySQL-Datenbank, die zu Beginn unseres Jahrhunderts entscheidenden Anteil am Aufbau des Internets in seiner heutigen Form hatte und mittlerweile zum Datenbankriesen Oracle gehört.

Proxy als Zwischenschicht

Der nun vorgestellte Proxy namens MariaDB MaxScale bildet eine Abstraktionsschicht zwischen der Anwendung und den Datenbanken. Er kümmert sich zunächst als Load-Balancer um die gleichmäßige Verteilung der Abfragen und Verbindungen. Im Kern des Proxys steckt eine schnelle und ressourcenschonende Netzwerkkomponente, die für einen den heutigen Anforderungen entsprechenden Datendurchsatz sorgt.

Foto: MariaDB Corporation

Dabei bleibt MaxScale für die Anwendung unsichtbar; der Proxy stellt aus Sicht der Anwendung eine normale Datenbankinstanz dar. Gegenüber dem Datenbank-Cluster wiederum bildet MaxScale eine übergeordnete Schicht, die die Kommunikation zwischen Anwendung und Datenbanken steuert. Der besondere Charme dieser Lösung: Änderungen an den Datenbank-Clustern wirken sich nicht auf die Anwendungsschicht aus, sie haben also keine Anpassungen auf Anwendungsseite zur Folge. Auch kann die Datenbank so unabhängig von der Anwendungsschicht skalieren.

Ebenso schlagen Änderungen bei der Anwendung ihrerseits nicht zwingend auf die Datenbanken im Hintergrund zurück. Der Aufwand beim horizontalen Skalieren sinkt deutlich. Das Konzept an sich ist zwar nicht neu. Im Gegensatz zu anderen DB-Proxys soll MaxScale laut Herstellerangaben jedoch die Anfragen auf genau dieselbe Art und Weise verarbeiten, wie es die Datenbank MariaDB macht und so deutliche Geschwindigkeitsvorteile besitzen.

Modulares Konzept

Eine weitere Besonderheit von MaxScale ist, dass der Proxy - wie bereits von MySQL und MariaDB gewohnt - modular aufgebaut ist. Zum Start in Version 1.0 des Proxys sind fünf Module für die wichtigsten Szenarien verfügbar: Protokolle zwischen Anwendung und Datenbank, Status-Überwachung, Routing, Authentifizierung und Protokollierung.

Foto: MariaDB Corporation

Auch ein Modul zum Weiterbetrieb der Anwendung, während die Datenbank oder auch die Anwendung selbst migriert werden, steht bereit. Hierbei werden die Anfragen so transformiert, dass die Legacy-Anwendung unterstützt wird. Anwendung und Datenbank können dadurch asynchron migriert werden, womit sich die Downtime minimieren lässt. Der Hersteller verspricht obendrein, dass geplante oder ungeplante Knotenausfälle nicht zum Ausfall der Anwendung führen. Neben diesen eher dem Load-Balancing zugehörigen Merkmalen verfügt MaxScale auch über Funktionen, die Sicherheit und Verfügbarkeit der Anwendungen verbessert. So werden zum Beispiel Abfragen nach nutzer- oder syntaxbasierenden Kriterien auf Ungereimtheiten hin überprüft, bevor sie an die Datenbanken geleitet werden.

Ein nicht minder nützliches Merkmal ist die Möglichkeit, Datenbank-Querys aus Performance-Sicht zu loggen. So lassen sich Flaschenhälse bei der Kommunikation erkennen und beheben. Obendrein erlaubt es MaxScale, Anfragen für andere Datenbank-Systeme, Speicher-Engines oder Anwendungen zu duplizieren. Daten lassen sich auf diesem Weg zum Beispiel sowohl an eine transaktionale Datenbank-Engine wie InnoDB als auch an eine NoSQL-Datenbank senden.

Flexibler als ein Load-Balancer

"Die Verwendung von Load-Balancing an sich, basierend auf Hard- oder Software, ist nichts Neues in der IT. Sie sind jedoch nicht auf die spezielle Nutzung für Datenbank-Transaktionen zwischen Anwendung und Datenbankserver ausgelegt", erläutert MariaDB-CEO Patrik Sallner. "Mit MariaDB MaxScale haben wir nun eine Software entwickelt, welche als Gateway zwischen Datenbank und Anwendung fungiert. Verschiedene Plugin-Typen der Bereiche Protokoll, Monitoring, Routing, Authentifizierung und Logging ermöglichen die Skalierung, Filterung und Verarbeitung von Datenbank-Transaktionen. Änderungen in der Anwendung sind hierfür nicht nötig. Kunden und Community berichten uns schon von Ihren selbstentwickelten Modulen für MariaDB MaxScale."

Patrik Sallner, CEO MariaDB Corporation
Patrik Sallner, CEO MariaDB Corporation
Foto: MariaDB Corporation

Aktuell arbeitet MaxScale mit MariaDB Enterprise, MariaDB Enterprise Cluster, MariaDB 5.5, MariaDB 10 und Oracle MySQL zusammen. Das Load-Balancing setzt den Einsatz von MariaDB Galera Cluster, MariaDB Master-Slave Replication oder Oracle MySQL Server Replication voraus. MaxScale ist unter der Open-Source-Lizenz GPL v2 verfügbar. Binärdateien stehen unter https://mariadb.com/user/login?destination=my_portal/download#maxscale zum Download bereit, der Quellcode kann über Github unter https://github.com/mariadb-corporation/MaxScale/tree/release-1.0GA heruntergeladen werden.