Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Tipps für die Migration von proprietären zu Open-Source-Datenbanken

Früher waren proprietäre Datenbanken die einzig akzeptablen Optionen.

„Niemand wurde je gefeuert, weil er bei Oracle/Microsoft/IBM gekauft hat“ war das Sprichwort.

Riesige, monolithische Datenbanken, die für jeden einzelnen Zweck verwendet werden. Bezahlter Support – so sah die Datenbanklandschaft in den 90er und frühen 00er Jahren aus. Natürlich gab es Open-Source-Datenbanken, aber sie wurden wie eine „Spielzeugdatenbank“ behandelt, die für eine kleine Website, vielleicht einen Blog oder einen sehr kleinen E-Shop geeignet war. Niemand mit gesundem Menschenverstand würde sie für etwas Kritisches verwenden.

Die Dinge haben sich im Laufe der Zeit geändert und Open-Source-Datenbanken sind ausgereift. Jedes Jahr werden mehr erstellt. Wir sehen jetzt eine Spezialisierung, die es Benutzern ermöglicht, die beste Option für eine bestimmte Arbeitslast auszuwählen – Zeitreihen, Analytik, Columnstore, NoSQL, relational, Schlüsselwert – Sie können jede beliebige Datenbank auswählen, die Sie benötigen, und normalerweise stehen zahlreiche Optionen zur Auswahl. Dies führt dazu, dass Open Source in der Datenbankwelt immer beliebter wird. Unternehmen schauen jetzt auf ihre Rechnungen von ihren proprietären Datenbankanbietern und fragen sich, ob sie diese durch eine kostenlose Open-Source-Datenbank ein wenig reduzieren können.

Wie üblich gibt es Vor- und Nachteile. Was sollten Sie vor der Implementierung einer Open-Source-Datenbank berücksichtigen? In diesem Blogbeitrag geben wir einige Tipps, die Sie bei der Planung einer Migration zu Open-Source-Datenbanken beachten sollten.

Klein anfangen und erweitern

Wenn Ihre Organisation keine Open-Source-Datenbanken verwendet, hat sie höchstwahrscheinlich auch keine Erfahrung mit deren Verwaltung. Obwohl dies durch externe Berater machbar ist, ist es wahrscheinlich keine gute Idee, Ihre gesamte Umgebung in Open-Source-Datenbanken zu migrieren.

Der bessere Ansatz wäre stattdessen, mit kleinen Projekten zu beginnen. Vielleicht müssen Sie eine Art internes Tool oder eine Website erstellen, vielleicht eine Art Monitoring-Tool – das ist eine großartige Gelegenheit, Open-Source-Datenbanken zu verwenden und Erfahrungen mit der Verwendung in realen Umgebungen zu sammeln. Auf diese Weise lernen Sie die Besonderheiten einer Datenbank kennen - wie man sie diagnostiziert, wie man ihre Leistung verfolgt, wie man sie abstimmt, um ihre Leistung zu verbessern.

Außerdem würden Sie mehr über die Hochverfügbarkeitsoptionen und Implementierungen erfahren. Die Arbeit damit hilft auch, die Unterschiede zwischen der von Ihnen verwendeten proprietären Datenbank und den Open-Source-Datenbanken zu verstehen, die Sie für kleinere Projekte implementiert haben. Mit der Zeit sollten Sie feststellen, dass der Fußabdruck von Open-Source-Datenbanken in Ihrem Unternehmen zusammen mit der Erfahrung Ihrer Teams erheblich zunehmen wird.

Irgendwann, nachdem Sie genug Erfahrung gesammelt haben, um die Open-Source-Datenbanken zu betreiben, entscheiden Sie sich vielleicht, den Hebel zu ziehen und ein Migrationsprojekt zu starten. Eine andere, ebenfalls sehr wahrscheinliche Option wäre, dass Sie Ihren Betrieb projektweise schrittweise auf Open-Source-Datenbanken umstellen würden. Irgendwann werden Ihre bestehenden Anwendungen, die proprietäre RDBMS verwenden, veraltet sein und schließlich durch neue Iterationen der Software ersetzt werden, die auf Open-Source-Datenbanken basieren.

Wählen Sie die richtige Datenbank für den Job aus

Wir haben bereits erwähnt, dass Open-Source-Datenbanken typischerweise recht spezialisiert sind. Sie können einen Datenspeicher auswählen, der für verschiedene Verwendungszwecke geeignet ist – Zeitreihen, Dokumentenspeicher, Schlüsselwertspeicher, Spaltenspeicher, Textsuche. In Kombination mit dem vorherigen Tipp können Sie so genau den Datenbanktyp auswählen, den Ihr kleines Projekt benötigt. Angenommen, Sie möchten einen Überwachungsstapel für Ihre Umgebung erstellen.

Sie können sich Zeitreihendatenbanken wie Prometheus oder TimeScaleDB ansehen, um Ihre Überwachungsanwendung zu unterstützen. Vielleicht möchten Sie eine Art Analyse-/Big-Data-Lösung implementieren. Sie müssten eine Art ETL-Prozess entwerfen, um die Daten aus Ihrem Haupt-RDBMS zu extrahieren und in eine Open-Source-Lösung zu laden. Es gibt zahlreiche Optionen, um als Datenspeicher verwendet zu werden. Je nach Anforderungen und Daten können Sie aus einer Vielzahl von Datenbanken wählen, zum Beispiel Clickhouse, Cassandra, Hive und viele mehr.

Wie wäre es, wenn Sie einige Teile der Anwendung vom proprietären RDBMS auf eine Open-Source-Lösung verschieben?

Auch dafür gibt es Optionen. Datenspeicher wie PostgreSQL oder MariaDB verfügen über zahlreiche Funktionen zur einfachen Migration von Datenspeichern wie Oracle. Sie bieten beispielsweise Unterstützung für PL/SQL und andere für Oracle verfügbare SQL-Funktionen. Dies ist eine große Hilfe – neben der Migration von Oracle zu anderen Datenbanken muss weniger Code konvertiert werden, es ist wahrscheinlicher, dass Ihre gespeicherten Prozeduren und Funktionen auch größtenteils sofort einsatzbereit sind und Sie keine signifikanten Ausgaben tätigen müssen viel Zeit zum Umschreiben, Testen und Debuggen von Code, der eine Kernlogik Ihrer Anwendung darstellt.

Sie sollten auch nicht die Ressourcen vergessen, die Sie bereits in Ihrem Team haben. Vielleicht hat jemand Erfahrung mit bekannteren Open-Source-Datenspeichern? Wenn diese Ihren Anforderungen entsprechen und in Ihre Umgebung passen, können Sie möglicherweise vorhandenes Wissen in Ihrem Team nutzen und problemlos in die Open-Source-Welt wechseln.

Erwägen Sie, Unterstützung zu erhalten

Die Migration in Datenspeicher, mit denen Sie nicht allzu viel Erfahrung haben, ist immer schwierig. Selbst wenn Sie in kleinen Schritten vorgehen, können Sie dennoch von überraschendem Verhalten, unerwarteten Situationen, Fehlern oder sogar nur Betriebssituationen überrascht werden, mit denen Sie nicht vertraut sind.

Open-Source-Datenbanken haben normalerweise eine großartige Community-Unterstützung - E-Mail-Listen, Foren, Slack-Kanäle. Wenn Sie fragen, wird normalerweise jemand versuchen, Ihnen zu helfen. Dies kann in manchen Fällen nicht ausreichen. In diesem Fall sollten Sie sich nach einem kostenpflichtigen Support umsehen. Es gibt zahlreiche Möglichkeiten, wie dies erreicht werden kann.

Zunächst einmal sind nicht alle Open-Source-Projekte gleich. Größere Projekte wie PostgreSQL oder MySQL haben möglicherweise ein Ökosystem von Beratungsunternehmen entwickelt, die Experten einstellen, die Sie beraten können. Wenn eine solche Option aus irgendeinem Grund nicht verfügbar oder machbar ist, können Sie sich jederzeit an die Projektbetreuer wenden.

Es ist sehr üblich, dass die Firma, die den Datenspeicher entwickelt, gerne gegen eine Gebühr hilft.

Unabhängige Beratungsunternehmen haben einen erheblichen Vorteil - sie sind unabhängig und schlagen eine Lösung auf der Grundlage ihrer Erfahrung vor, nicht auf der Grundlage des von ihnen entwickelten Datenspeichers und der Tools. Anbieter werden in der Regel ihre eigenen Lösungen und Umgebungen vorantreiben. Andererseits sind Anbieter sehr daran interessiert, die Akzeptanz ihres Datenspeichers zu erhöhen. Wenn Sie von einem proprietären Datenspeicher migrieren, waren sie möglicherweise schon mehrmals in dieser Situation, daher sollten sie in der Lage sein, Ihnen bewährte Verfahren bereitzustellen, Ihnen beim Entwerfen des Migrationsprozesses zu helfen und so weiter. Für ein unerfahrenes Unternehmen kann der Zugang zu Experten auf dem Gebiet der Migration ein großer Vorteil sein.

Der Zugriff auf externe Unterstützung kann nicht nur in der Migrationsphase hilfreich sein. Der Umgang mit neuen Datenspeichern ist immer schwierig und das Erlernen aller Aspekte der Vorgänge ist zeitaufwändig. Auch nach der Migration können Sie immer noch davon profitieren, jemanden zu haben, den Sie anrufen, fragen und, was am wichtigsten ist, von dem Sie lernen können. Schulungen, Remote-DBA, all das sind gängige Optionen in der Welt der Open-Source-Datenbanken, insbesondere für größere, etabliertere Projekte.

Suchen Sie ein hilfreiches System oder Tool

Open-Source-Datenbanken werden mit einer Vielzahl von Tools geliefert, von denen einige mehr oder weniger komplex sind. Einige fügen Funktionen hinzu (hohe Verfügbarkeit, Sicherungen, Überwachung), andere wurden entwickelt, um die Datenbankverwaltung zu vereinfachen.

Es ist wichtig, sie zu nutzen (Beratungsverträge können hier hilfreich sein, um Sie mit den wichtigsten Tools für den Open-Source-Datenspeicher Ihrer Wahl vertraut zu machen), da sie Ihre Betriebsgeschwindigkeit und Leistung erheblich steigern können und Stabilität des gesamten Setups.

Einige Tools sind kostenlos, andere erfordern eine Lizenz, um zu funktionieren, Sie sollten sich den Pool ansehen und auswählen, was Ihnen am besten passt. Wir sprechen hier über Load Balancer, Tools zur Verwaltung der Replikationstopologie, virtuelle IP-Verwaltungstools, Clustering-Lösungen, mehr oder weniger dedizierte Überwachungs- und Beobachtbarkeitsplattformen, die alles verfolgen können, angefangen von typischen Datenbankleistungsmetriken bis hin zu intelligenten Vorhersagen auf der Grundlage der Daten für Spezialisten Analyse der Abfrageleistung.

In der Open-Source-Welt gedeihen solche Tools - auch das hat Vor- und Nachteile. Es ist leicht, das „A“-Tool zu finden, es ist schwer, „DAS“ Tool zu finden. Auf GitHub findet man zahlreiche Projekte, die alle fast das Gleiche machen wie die anderen. Welche man wählen soll, ist der schwierige Teil. Aus diesem Grund sollten Sie idealerweise entweder einen Supportvertrag abschließen oder sich auf Verwaltungsplattformen verlassen, die Ihnen helfen, mehrere Aspekte des Betriebs auf Open-Source-Datenbanken zu verwalten, einschließlich der Unterstützung bei der Standardisierung und Auswahl der richtigen Tools für das.

Es gibt auch Plattformen wie ClusterControl, das entwickelt wurde, um unerfahrenen Leuten zu helfen, die Leistungsfähigkeit von Open-Source-Datenbanken voll zu erfassen. ClusterControl unterstützt mehrere verschiedene Arten von Open-Source-Datenspeichern:MySQL und seine Varianten, PostgreSQL, TimeScaleDB oder MongoDB. Es bietet eine einheitliche Benutzeroberfläche für den Zugriff auf Verwaltungsfunktionen für diese Datenspeicher und erleichtert deren Bereitstellung und Verwaltung. Anstatt Zeit mit dem Testen verschiedener Tools und Lösungen zu verbringen, können Sie mit ClusterControl einfach eine hochverfügbare Umgebung bereitstellen, Backups planen und die Metriken im System verfolgen.

Tools wie ClusterControl entlasten Ihr Team und erhöhen dessen Fähigkeit zu verstehen, was in der Datenbank passiert, mit der es nicht so vertraut ist, wie es gewünscht wäre.

Lassen Sie sich Zeit

Beachten Sie, dass Sie sich nicht beeilen müssen. Die Stabilität Ihrer Umgebung und das Wohlbefinden Ihrer Benutzer ist von größter Bedeutung. Nehmen Sie sich Zeit, um die Tests durchzuführen und alle Aspekte Ihrer Anwendung zu überprüfen. Stellen Sie sicher, dass Sie über geeignete Hochverfügbarkeits- und Disaster-Recovery-Prozesse verfügen.

Nur wenn Sie sich zu 100 % sicher sind, dass Sie für einen Wechsel bereit sind, ist es an der Zeit, den Hebel zu ziehen und auf Open-Source-Datenbanken umzusteigen.