Über unsMediaKontaktImpressum
Merlin Walter 07. März 2023

Einfacher als gedacht: die Migration auf Apache Cassandra

Für mehrere Jahrzehnte waren proprietäre, relationale Datenbanktechnologien der Standard schlechthin. Die Erwartungen an die Verfügbarkeit und Skalierbarkeit haben in der heutigen Anwendungslandschaft allerdings Veränderungen gebracht. Die Nachfrage nach NoSQL-Datenbanken mit Open-Source-Technologie wie Apache Cassandra ist deshalb deutlich gestiegen.

Wie können nun mögliche Migrationsszenarien aussehen?

Es gibt viele Gründe für Unternehmen, eine Migration weg von einer relationalen Datenbank hin zu einer modernen NoSQL-Technologie wie Apache Cassandra in Betracht zu ziehen. Dazu zählen eine begrenzte Skalierbarkeit oder Herausforderungen hinsichtlich Performance und Verfügbarkeit. Performanceprobleme treten bei relationalen Datenbanken etwa auf, wenn eine Anwendung komplexer wird. Dann werden auch die Queries vielschichtiger und mehr Joins benötigt, sodass die Queries langsamer sind und damit auch die Applikation. Ein Feintuning aufgrund dieser Herausforderung ist im Umfeld relationaler Ansätze sehr schwierig, und zwar sowohl auf Datenbank- als auch auf Applikationsseite.

Auch aus Sicht moderner Applikationen weisen relationale Datenbanktechnologien Limitationen auf. Viele Applikationen sind inzwischen API-driven. Wichtige Aspekte sind dabei auch dokumentenbasierte Formate oder eine hohe Geschwindigkeit. Das klassische relationale Datenmodell ist hierbei weniger geeignet, da es mit Joins und Normalisierung und nicht mit Duplikaten arbeitet. Apache Cassandra verfolgt einen anderen Ansatz: Die Perspektive der Anwendung steht im Vordergrund, das heißt, es geht darum, was die Applikation benötigt und welche Workflows unterstützt werden müssen. So können zum Beispiel Daten in mehreren Tabellen dupliziert abgelegt werden, wenn die Anwendung dies erfordert.

Forciert werden Migrationsbestrebungen vom generellen Trend weg von Legacy-Systemen hin zu Open-Source-Lösungen und -Technologien. Sie bieten im Vergleich zu proprietären Anwendungen etliche Vorteile in Bereichen wie Skalierbarkeit, Flexibilität, Transparenz, Unabhängigkeit oder auch Kosten. Nicht zuletzt profitieren Nutzer auch von den dynamischen und innovativen Entwicklungen der Open-Source-Communities.

Jede Migration von einer proprietären auf eine Open-Source-Lösung erfordert eine detaillierte Planung. Folglich sollte ein Unternehmen zuerst ein Migrationskonzept erstellen. Ein wichtiger Bestandteil ist dabei ein Health Check, in dem die aktuelle IT-Infrastruktur überprüft und bewertet wird – etwa im Hinblick auf Konfigurationen und Prozesse, das Datenmodell oder das Monitoring. Auf dieser Basis kann ein Unternehmen dann auch Optimierungsmöglichkeiten bestimmen und die Anforderungen an eine neue Lösung spezifizieren.Bei der eigentlichen Migration sind dann verschiedene Vorgehensweisen denkbar: Die Entscheidung für ein konkretes Migrationsmodell muss ein Unternehmen individuell treffen – eine externe Unterstützung durch Experten kann dabei hilfreich sein.

Migrationsszenarien im Überblick

Im Prinzip gibt es zwei grundlegende Konzepte für die Cassandra-Migration: die Big-Bang-Migration oder den Parallelbetrieb. Eine Big-Bang-Migration beinhaltet, dass ein Unternehmen eine Anwendung stoppt, die Daten von der bestehenden Datenbank nach Cassandra kopiert und dann eine Version der Anwendung startet, die mit Cassandra funktioniert. Ein solcher Ansatz minimiert den betrieblichen Aufwand für die Migration. Es gibt jedoch erhebliche negative Aspekte, die zu beachten sind. Dazu gehört die Ausfallzeit einer Anwendung bei der Durchführung der Datenkopien. Das heißt, eine Anwendung muss das Schreiben in die bestehende Datenbank für eine gewisse Zeit unterbrechen, damit die Daten zuverlässig und vollständig auf Cassandra kopiert werden können. Je nach Datenvolumen kann dieser Vorgang mehrere Stunden in Anspruch nehmen. Zudem besteht ein sehr hohes Risiko. Sobald ein Unternehmen auf die neue Datenbank umgestellt hat, ist ein Rollback nur schwer möglich beziehungsweise sogar unmöglich. Um das Risiko zu minimieren, ist ein umfangreiches Testen zwingend erforderlich. Es muss also sichergestellt werden, dass beim Migrationsprozess alle Daten korrekt kopiert werden und eine Anwendung stabil in der neuen Umgebung läuft.

Beim Parallelbetrieb wird eine Anwendung so modifiziert, dass sie sowohl in Cassandra als auch in die relationale Datenbank schreibt. Wichtig ist dabei die Sicherstellung der korrekten Funktionsweise. Anhand eines zuverlässigen, wiederholbaren Prozesses kann zum Beispiel überprüft werden, ob die relationalen und die Cassandra-Datenbanken synchron sind, während eine Anwendung Aktualisierungen vornimmt. Sind die Tests erfolgreich, können anschließend die Lesevorgänge schrittweise auf Cassandra umgestellt und dann die Lese- und Schreibprozesse in der relationalen Datenbank abgeschaltet werden. Dieser Ansatz erfordert in der Regel mehr Entwicklungstätigkeit und auch mehr Aufwand beim Betrieb des Systems während der Transition-Phase. Allerdings kann die Migration so ohne Ausfallzeiten durchgeführt werden.

Diese Migrationsszenarien zielen auf eine vollständige Abschaltung der alten Datenbankinfrastruktur ab. Dabei ist allerdings zu bedenken, dass vielfach ohnehin ein weiterer Mischbetrieb verschiedener Datenbanken ein gangbarer und vor allem sinnvoller Weg ist. Schließlich behalten auch relationale Datenbanken für viele Aufgaben ihre Berechtigung. Ein kleines Beispiel dafür ist das Benutzermanagement.

Über Apache Kafka zu Apache Cassandra

Betrachtet man ein konkretes Migrationsszenario näher, so geht es vor allem um die Überführung des Datenmodells und um den Transfer der Daten, also von einer Legacy-Datenbank zum Beispiel auf Apache Cassandra. An diesem Punkt kommen Apache Kafka beziehungsweise Apache Kafka Connect ins Spiel. Apache Kafka ist eine hochskalierbare, hochverfügbare Streaming-und Messaging-Plattform und Apache Kafka Connect ist eine benutzerfreundliche Datenintegrationslösung, die Daten zwischen Kafka und anderen Datensystemen beziehungsweise zwischen verschiedenen Datenbanktechnologien streamt. Mit Kafka Connect können Ingenieure, IT- und Datenbank-Administratoren Daten streamen, und zwar ohne dass sie Skripte oder Code schreiben müssen. Das heißt, die Daten werden mit vorgefertigten oder benutzerdefinierten Kafka-Konnektoren gestreamt und in ein geeignetes Format gebracht sowie über Cassandra-Konnektoren in die neue Datenbankumgebung überführt.

Cassandra ist eine gute Option für Unternehmen, die eine Verfügbarkeit von 99,9 Prozent oder mehr benötigen.

Kafka ist damit vor allem im Hinblick auf ein Migrationsszenario, das auf Zero-Downtime und permanenten Datenzugriff abzielt, eine ideale Lösung. Die Daten werden an Cassandra gestreamt und die angepasste Anwendung greift dann auf die Daten im Cassandra Cluster zu. Die Datenbanken können somit parallel laufen, bevor ein vollständiger Umstieg auf die neue Umgebung erfolgt.

Prinzipiell können Unternehmen mit Apache Kafka als Streaming-Plattform einen einfachen und sicheren Datentransfer durchführen und mit Apache Cassandra eine moderne operative Datenbank nutzen, die eine bestehende relationale Datenbank ergänzt oder ersetzt. Apache Cassandra ist bereits bei zahlreichen Unternehmen im Produktiveinsatz – vor allem aufgrund der vielfältigen Vorteile. So wurde die NoSQL-Technologie von Apache Cassandra von Grund auf dahingehend konzipiert, dass sie eine ständige Verfügbarkeit unterstützt, für unbegrenzte Daten- und Transaktionsvolumina skalierbar ist und auch dann noch verwaltbar bleibt, wenn eine Anwendung wächst. Cassandra ist folglich eine gute Option für Unternehmen, die eine Verfügbarkeit von 99,9 Prozent oder mehr benötigen. Darüber hinaus eignet sich Cassandra hervorragend für Unternehmen, die ihre Services bei steigender Last flexibel erweitern möchten, da eine Skalierung auf mehrere Knoten in Minuten erfolgen kann.

Flexibilität und Entlastung durch Managed-Platform-Ansatz

Die Einführung von Cassandra erfordert allerdings auf Unternehmensseite Ressourcen und Know-how, allein schon, weil Cassandra als verteilte Datenbank auch ein anderes Architekturkonzept als eine relationale Datenbank aufweist. So müssen bei Cassandra zum Beispiel mehr Indizes gesetzt werden, um die Perfomance sicherzustellen und zu optimieren. Auch die Anwendung muss entsprechend angepasst werden, etwa weil Cassandra einen anderen Ansatz beim Umgang mit Konsistenzen verfolgt. Ein weiterer Architekturunterschied führt dazu, dass viele Prozesse rund um relationale Datenbanken wie Backups eingespart werden. Sie sind in Cassandra inhärent im Cluster auf den Nodes angelegt.

Durch diese Differenzen und die damit verbundenen Herausforderungen kann es nötig sein, auf einen externen Support zurückzugreifen, der den Migrationsprozess aktiv begleitet. Darüber hinaus besteht auch die Möglichkeit, ein Managed-Platform-Angebot zu nutzen. Mit einer Managed Platform können Unternehmen prinzipiell die Markteinführung ihrer Anwendung beschleunigen und gleichzeitig das Risiko bei der Einführung einer neuen Technologie verringern. Managed-Platform-Lösungen und -Services des Anbieters wie Provisioning, Monitoring oder Bugfixing bieten Unternehmen zudem einen entscheidenden Vorteil: Die eigenen Mitarbeiter in Entwicklung und Operations werden von Tätigkeiten rund um die Datenbankverwaltung entlastet, sodass sie sich stärker auf produktivere und innovativere Aufgaben fokussieren können. Nicht zuletzt unterstützen Managed-Platform-Modelle auch unterschiedliche Deployment-Szenarien: von der Cloud-Nutzung bis zum Hosting in einer eigenen On-Premises-Umgebung.

Einige Unternehmen, die derzeit eine proprietäre Lösung nutzen, zögern noch, eine Open-Source-Datenbank als Ergänzung beziehungsweise als Ersatz einzusetzen. Vereinzelt anzutreffende Bedenken hinsichtlich der Migration, des Technologie-Know-hows oder des Verlusts proprietärer Funktionen sind aber unbegründet. Mit der richtigen Migrationsplanung und -strategie ist auch die Einführung und der Einsatz von Apache Cassandra keine Herkules-Aufgabe. Und der Vorteil für Unternehmen ist letztlich mehr als überzeugend. Sie erhalten mit Apache Cassandra die weltweit führende NoSQL-Datenbank, die eine hohe Skalierbarkeit, Verfügbarkeit und Performance mit geringer Latenz und hohem Durchsatz bietet, sodass auch komplexe Workloads kein Problem mehr darstellen.

Autor

Merlin Walter

Merlin Walter ist Staff Sales Engineer EMEA bei Instaclustr.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben