MySQL- und PostgreSQL-Datenbankdienste in Azure

Abgeschlossen

Sie verfügen über eine funktionale lokale Datenbank – warum sollten Sie erwägen, Sie in einen Clouddienst wie Azure zu verschieben? Und warum sollten Sie auch erwägen, ein neues Datenbanksystem in Azure zu implementieren? Viele Organisationen führen diese Migration aus, da es verglichen mit einem lokalen Rechenzentrum einfach und relativ kostengünstig ist, einen hoch verfügbaren und skalierbaren Dienst in der Cloud zu erstellen.

Für Ihr Startup-Unternehmen sind Datenbanken, die derzeit unter MySQL und PostgreSQL lokal ausgeführt werden, unternehmenskritisch, aber durch die Größe Ihres Rechenzentrums und die Größe Ihres Verwaltungsteams beschränkt. Sie möchten überprüfen, ob Sie diese Einschränkungen mithilfe von Azure-Diensten beheben können, und wenn dies der Fall ist, welche Dienste am besten für Ihre Anforderungen geeignet sind.

Hier erfahren Sie mehr über Azure Database for MySQL, Azure Database for MariaDB und Azure Database for PostgreSQL sowie über die Bereitstellungsoptionen, die Sie mit ihnen verwenden können. Außerdem erfahren Sie mehr über die Vorteile der Ausführung von Open-Source-Datenbanken auf virtuellen Computern oder Containern in Azure und den IaaS-Ansatz (Infrastructure-as-a-Service).

Verfügbarkeit

Die von Azure-Vereinbarungen zum Service Level (Service Level Agreements, SLAs) garantierte Verfügbarkeit hängt von den genauen Details Ihrer Implementierung ab – sie ist jedoch immer hoch. Beispielsweise garantiert Microsoft für Azure Database for PostgreSQL eine Verfügbarkeit von 99,99 % ohne zusätzliche Kosten. Für eine noch höhere Verfügbarkeit können Sie Flexible Server verwenden.

Wenn Sie diese Verfügbarkeit in einem lokalen Netzwerk anstreben würden, müssten Sie ein System entwerfen, das gegen Hardwarefehler resilient ist. Sie würden Folgendes benötigen:

  • Mehrere physische Server.
  • Einen Lastenausgleich, der Abfragen bei einem Serverausfall umleiten könnte.
  • Ein Storage Area Network, das Daten zwischen Servern freigibt, oder eine Möglichkeit, Daten zwischen Servern zu replizieren.
  • Resiliente Netzwerkhardware.
  • Ein umweltgesteuertes Rechenzentrum.
  • Unterbrechungsfreie Stromversorgung und Backupgeneratoren.

Alle diese Komponenten sind kostspielig, und ihre Implementierung und ihr Betrieb erfordern Spezialkenntnisse. Sie würden auch beträchtliche Verwaltungsressourcen beanspruchen. Mit Azure sind diese Anforderungen bereits gelöst. Sie erstellen einfach die Datenbank, und die Hochverfügbarkeit ist integriert.

Skalierbarkeit

Wenn Ihre Benutzerbasis wächst, wachsen auch die Anforderungen an das System. Jedes lokale System verfügt über eine maximale Kapazität. Wenn Sie dieses Limit erreichen, müssen Sie es erhöhen, indem Sie mehr Hardware hinzufügen. Die Kapazität kann nicht spontan erweitert werden. Stattdessen müssen Sie die Hardware erwerben, das erforderliche Betriebssystem und die Software installieren, Updates anwenden und die Daten dann der neuen Datenbankinstanz hinzufügen. Dies alles nimmt einige Zeit in Anspruch.

Beachten Sie auch, dass hoher Bedarf oft temporär ist. Wenn Sie z. B. eine erfolgreiche Marketingkampagne durchführen, sehen Sie möglicherweise einen Spitzenwert für den Datenverkehr, worauf der Abfall zu geringerem Bedarf erfolgt. In einer lokalen Einrichtung müssen Sie das System für diese Spitzen auslegen. Dies bedeutet, dass das System meistens nicht ausgelastet ist, aber trotzdem entsprechende Kosten und Wartungsmaßnahmen anfallen.

Diesen Herausforderungen können Sie in der Cloud viel einfacher begegnen. Wenn Ihr System seine Kapazität erreicht, können Sie sehr schnell reagieren – beispielsweise durch Verschieben auf eine größere Ebene oder Hinzufügen virtueller Computer. Wenn die Nachfrage sinkt, sparen Sie schnell Geld, indem Sie die Kapazität entfernen. In Azure bezahlen Sie nur für die Kapazität, die Sie verwenden.

IaaS und PaaS

Wenn Sie eine Datenbank in Azure implementieren, können Sie abhängig von der benötigten Steuerungsebene aus mindestens zwei Ansätzen wählen:

  • Infrastructure-as-a-Service (IaaS) Wenn Sie den IaaS-Ansatz auswählen, führt Azure die physische Infrastruktur für Sie aus. Sie erstellen virtuelle Computer und virtuelle Netzwerke, um sie zu verbinden, und installieren dann die erforderliche Software und die erforderlichen Daten. Das Ausführen eines virtuellen Computers ist wie das Ausführen eines physischen Servers. Sie behalten das Betriebssystem und die Software bei, aber Sie müssen sich nicht um das Rechenzentrum, die Kontrolle der Umgebung oder die Verbindungen mit dem Internet kümmern.
  • Platform-as-a-Service (PaaS) Wenn Sie sich für den PaaS-Ansatz entscheiden, führt Azure die physische Infrastruktur, die erforderlichen virtuellen Server und die Datenbanksoftware aus. Sie müssen für diese Komponenten keine Konfigurations- oder Wartungsaufgaben ausführen. Azure wendet z. B. Service Packs automatisch an. Sie können sich auf die Datenbankverwaltung konzentrieren. Zu den PaaS-Angeboten zum Ausführen von Open-Source-Datenbanken in Azure zählen Azure Database for MySQL, Azure Database for MariaDB und Azure Database for PostgreSQL.

Was sind die Azure-Datenbankdienste für MySQL, MariaDB und PostgreSQL?

Wenn Sie über ein auf MySQL, MariaDB oder PostgreSQL basierendes lokales Datenbanksystem verfügen und Ihre Datenbank in die Cloud verschieben möchten, sollten Sie erwägen, Azure Database for MySQL, Azure Database for MariaDB oder Azure Database for PostgreSQL zu verwenden. Möglicherweise sollten Sie diese Dienste auch zum Implementieren neuer Datenbanken verwenden. Wenn Ihre Entwickler und Datenbankadministratoren z. B. über Erfahrungen mit diesen Datenbankservern verfügen, und Sie nicht möchten, dass sie Zeit in das Erlernen eines neuen Systems investieren müssen, kann Ihr Personal mit Azure Database for MySQL, Azure Database for MariaDBoder Azure Database for PostgreSQL sein vorhandenes Wissen nutzen. Azure Database for MySQL, Azure Database for MariaDB und Azure Database for PostgreSQL sind PaaS-Systeme, sodass Sie sich nicht mit der Architektur oder Implementierung von virtuellen Servern oder Netzwerken befassen müssen.

Was ist Azure Database for MySQL?

Azure Database for MySQL ist eine PaaS-Implementierung von MySQL in der Azure-Cloud, die auf der Community-Edition von MySQL basiert. Abhängig von Ihren Anforderungen können Sie derzeit die Unterstützung für die MySQL-Versionen 5.6, 5.7 und 8.0 auswählen. Unterstützung für zusätzliche Versionen wird im Zuge der Weiterentwicklung von MySQL bereitgestellt.

Mit Azure Database for MySQL erhalten Sie die folgenden Funktionen:

  • Integrierte Funktionen für Hochverfügbarkeit.
  • Vorhersagbare Leistung.
  • Einfache Skalierung, die schnell auf Bedarf reagieren kann.
  • Sichere Daten (im Ruhezustand und bei Übertragungen).
  • Automatische Sicherungen und Point-in-Time-Wiederherstellung für die letzten 35 Tage.
  • Sicherheit und Einhaltung von Bestimmungen auf Unternehmensebene.

Das System verwendet nutzungsbasierte Bezahlung, sodass Sie nur für das bezahlen, was Sie tatsächlich nutzen.

Sie können zwischen zwei Bereitstellungsoptionen wählen:

Azure Database for MySQL: Flexibler Server

Azure Database for MySQL Flexible Server bietet mehr Verfügbarkeit, indem Ihre Datenbanken in mehreren Verfügbarkeitszonen repliziert werden. Außerdem können Sie den Datenbankdienst schnell starten und beenden, um die Kosten zu optimieren.

Azure Database for MySQL bietet ein globales Datenbanksystem, das auf große Datenbanken hochskaliert werden kann, ohne Hardware, Netzwerkkomponenten, virtuelle Server, Softwarepatches und andere zugrunde liegende Komponenten verwalten zu müssen.

Was ist Azure Database for MariaDB?

MariaDB ist ein Fork von MySQL, der von der Community als Reaktion auf den Erwerb von MySQL durch Oracle erstellt wurde. Azure Database for MariaDB ist die PaaS-Implementierung von MariaDB in der Azure-Cloud.

MariaDB ist als Ersatz für MySQL konzipiert, damit Sie eine MySQL-Datenbank ohne umfangreiche Aufzeichnung von Client-Apps oder Änderungen im Datenbankschema durch eine MariaDB-Datenbank ersetzen können. Viele Funktionen von MariaDB sind identisch mit denen in MySQL, z. B.:

  • Datenbankstrukturen und -indizes
  • Datendefinitionsbefehle
  • Clientprotokolle, Strukturen und APIs
  • Die Programme mysqldump und mysqladmin

Diese Ähnlichkeit zwischen MySQL und MariaDB bedeutet, dass Aufgaben zur Migration von MySQL zu Azure Database for MySQL für die Migration von MariaDB zu Azure Database for MariaDB sehr ähnlich sind. Es gibt einige Unterschiede zwischen den Systemen. MariaDB unterstützt z. B. ColumnStore und Redis Cache, die beide zur Optimierung der Leistung verwendet werden können.

Hinweis

Da die Datenbankmigrationen von MySQL und MariaDB zu Azure sehr ähnlich sind, werden sie in diesem Kurs zusammen behandelt.

Wichtig

Zum Zeitpunkt der Erstellung dieses Artikels gibt es keine Flexible Server-Bereitstellungsoption für Azure Database for MariaDB.

Was ist Azure Database for PostgreSQL?

Wenn Sie PostgreSQL bevorzugen, können Sie Azure Database for PostgreSQL auswählen, um eine PaaS-Implementierung dieses Datenbankservers in die Azure-Cloud auszuführen. Dies bietet die gleichen Verfügbarkeits-, Leistungs-, Skalierungs-, Sicherheits- und Verwaltungsvorteile wie der MySQL-Dienst.

Sie können zwischen drei Bereitstellungsoptionen wählen:

Azure Database for PostgreSQL – Flexible Server

Azure Database for PostgreSQL Flexible Server bietet ähnliche Vorteile wie MySQL Flexible Server. Diese Option bietet die höchste Verfügbarkeit und komfortable Neustarts.

IaaS-Optionen zum Ausführen von MySQL, MariaDB und PostgreSQL in Azure

Verwenden Sie den IaaS-Ansatz, um eine physische Architektur in der Cloud zu replizieren. Sie könnten IaaS auswählen, wenn Sie stärkere Kontrolle über die Betriebssysteme und die Software behalten möchten, die Ihrem System zugrunde liegen.

Es gibt jedoch abhängig von Ihren Anforderungen und der Komplexität Ihrer vorhandenen Systeme mehrere Ansätze, die Sie anwenden könnten, um den IaaS-Ansatz zu implementieren.

Per Lift & Shift migrieren

Ein Ansatz besteht darin, Ihre lokale Architektur in der Cloud zu spiegeln, indem Sie eine virtuelle Netzwerkinfrastruktur erstellen, die mit der Ihres Rechenzentrums übereinstimmt – Sie erstellen einen virtuellen Computer für jeden Server in Ihrem lokalen System. Die Software für das Datenbankverwaltungssystem (MySQL, MariaDB oder PostgreSQL) installieren und konfigurieren Sie auf den virtuellen Computern. Anschließend platzieren Sie das System mit geringen Änderungen an Clientcode oder Konfiguration mit Lift & Shift in der Cloud.

Bei dieser Strategie befolgen Sie einen schrittweisen Migrationsprozess. Sie verschieben Teile Ihres Systems inkrementell in die Cloud, während andere Elemente mithilfe des Netzwerkgateways von Azure lokal beibehalten werden. Verwenden Sie diesen hybriden Ansatz, um das System bei jedem Schritt zu stabilisieren und ggf. ein Rollback auszuführen.

Verwenden vordefinierter VMs

Der Marketplace bietet virtuelle Computer, die für MySQL-, MariaDB- und PostgreSQL-Server vorkonfiguriert sind. Diese Images sparen Zeit, da Sie die Datenbankserversoftware nicht selbst installieren müssen. Wenn Sie virtuelle Datenbankcomputer einrichten, überprüfen Sie, ob im Marketplace ein Image mit der richtigen Version der Datenbanksoftware vorhanden ist, und verwenden Sie es.

Sie könnten auch ein benutzerdefiniertes VM-Image in Azure hochladen und zum Erstellen virtueller Computer verwenden. Dieses Image könnte die Datenbanksoftware Ihrer Wahl und sogar die Datenbank selbst enthalten. Weitere Informationen finden Sie im Tutorial: Erstellen von Windows-VM-Images mit Azure PowerShell.

Verwenden von MySQL-, MariaDB- oder PostgreSQL-Containern

Eine andere Virtualisierungstechnologie, die Sie erwägen könnten, ist die Containerisierung. Ein Container ist wie ein virtueller Computer, nutzt jedoch das Betriebssystem mit dem Hostcomputer gemeinsam. Container sind kleiner als virtuelle Computer, sodass Sie mehr von Ihnen auf einem Hostcomputer ausführen und neue schneller starten können. Doch nur weil das Betriebssystem freigegeben ist, können Sie beispielsweise noch lange keinen Linux-Container auf einem Windows-Computer ausführen. Um Container auf einem physischen Server auszuführen, benötigen Sie Containerhostsoftware wie Docker. Container werden aus Images bereitgestellt, und diese Images können wie virtuelle Computer Datenbanksoftware wie MySQL, MariaDB und PostgreSQL enthalten.

Wenn Sie eine kleine Anzahl von Containern in Azure ausführen möchten, installieren Sie Docker auf einem virtuellen Computer. Wenn Sie den Container Instances-Dienst verwenden, können Sie alternativ Container in Azure ausführen, ohne eigene virtuelle Computer einrichten zu müssen. Wenn Sie problemlos eine große Anzahl von Containern verwalten möchten, die miteinander kommunizieren müssen, verwenden Sie den Azure Kubernetes-Dienst.