MySQL- und PostgreSQL-Datenbankdienste in Azure
Wenn Sie über eine funktionsfähige lokale Datenbank verfügen, warum sollten Sie die Datenbank in einen Clouddienst wie Azure verschieben? Warum sollten Sie auch ein neues Datenbanksystem in Azure implementieren? Viele Organisationen führen diese Migration aus, da es einfach und relativ billig ist, einen hochverwendbaren und skalierbaren Dienst in der Cloud zu erstellen, verglichen mit der Verwendung eines lokalen Rechenzentrums.
Für Ihr Start-up-Unternehmen sind Datenbanken, die derzeit auf MySQL und PostgreSQL lokal ausgeführt werden, unternehmenskritisch, aber begrenzt durch die Größe Ihres Rechenzentrums und die Größe Ihres Verwaltungsteams. Sie möchten untersuchen, ob Sie diese Einschränkungen mithilfe von Azure-Diensten beheben können und wenn ja, welche Dienste für Ihre Anforderungen am besten geeignet sind.
Hier erfahren Sie mehr über Azure Database for MySQL, Azure Database for MariaDB und Azure Database for PostgreSQL und 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 dem IaaS-Ansatz (Infrastructure-as-a-Service).
Verfügbarkeit
Die Verfügbarkeit, die von Azure Service Level Agreements (SLAs) garantiert wird, hängt von den genauen Details Ihrer Implementierung ab, aber sie sind immer hoch. Beispielsweise garantieren Microsoft für Azure Database for PostgreSQL 99,99% Verfügbarkeit ohne zusätzliche Kosten. Für eine noch höhere Verfügbarkeit können Sie flexiblen Server verwenden.
Wenn Sie diese Verfügbarkeit in einem lokalen Netzwerk erreichen möchten, müssten Sie ein System entwerfen, das für Hardwarefehler widerstandsfähig ist. Sie benötigen Folgendes:
- Mehrere physische Server.
- Ein Lastenausgleichsmodul, das Abfragen umleiten kann, wenn ein Serverfehler auftritt.
- Ein Speicherbereichsnetzwerk, das Daten zwischen Servern teilt, oder eine Möglichkeit zur Replikation von Daten zwischen Servern.
- Robuste Netzwerkhardware.
- Ein umweltfreundliches Rechenzentrum.
- Nicht unterbrechungsfreie Stromversorgungen und Sicherungsgeneratoren.
All diese Komponenten sind teuer und erfordern Fähigkeiten zur Implementierung und Ausführung. Sie würden auch erhebliche Verwaltungsressourcen verbrauchen. Mit Azure werden diese Anforderungen bereits gelöst; Sie erstellen einfach die Datenbank, und hohe Verfügbarkeit ist integriert.
Skalierbarkeit
Wenn Ihre Benutzerbasis wächst, wächst die Systemnachfrage damit. Jedes lokale System verfügt über eine maximale Kapazität – wenn Sie diesen Grenzwert erreichen, müssen Sie es erhöhen, indem Sie weitere Hardware hinzufügen. Sie können keine Kapazität sofort hinzufügen. Stattdessen müssen Sie die Hardware erwerben, das erforderliche Betriebssystem und die erforderliche Software installieren, Updates anwenden und dann die Daten zur neuen Datenbankinstanz hinzufügen. All diese Dinge nehmen Zeit.
Denken Sie auch daran, dass hohe Nachfrage oft vorübergehend ist. Wenn Sie beispielsweise eine erfolgreiche Marketingkampagne durchführen, könnten Sie einen Höchststand bei den Besucherzahlen beobachten, gefolgt von einem Rückgang zu geringerer Nachfrage. In einer lokalen Einrichtung müssen Sie das System für diese Spitzen auslegen. Dies bedeutet, dass das System die meiste Zeit nicht genutzt wird, aber weiterhin Rechnungen ausführt und Wartung erfordert.
Diese Herausforderungen sind viel einfacher in der Cloud zu bewältigen. Wenn Ihr System seine Kapazität erreicht, können Sie sehr schnell reagieren, z. B. indem Sie zu einer größeren Ebene wechseln oder virtuelle Computer hinzufügen. Wenn die Nachfrage sinkt, sparen Sie schnell Geld, indem Sie Kapazität entfernen. In Azure bezahlen Sie nur für die von Ihnen verwendete Kapazität.
IaaS und PaaS
Sie können aus mindestens zwei Ansätzen wählen, wenn Sie eine Datenbank in Azure implementieren, je nachdem, welche Steuerungsebene Sie benötigen:
- Infrastruktur als Dienst (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 Daten. Das Ausführen eines virtuellen Computers ist wie das Ausführen eines physischen Servers. Sie verwalten das Betriebssystem und die Software, aber Sie müssen sich keine Gedanken über das Rechenzentrum, die Umgebungskontrolle oder verbindungen mit dem Internet machen.
- Plattform als Dienst (PaaS). Wenn Sie den PaaS-Ansatz auswählen, führt Azure die physische Infrastruktur, die erforderlichen virtuellen Server und die Datenbanksoftware aus. Sie müssen keine Konfigurations- oder Wartungsaufgaben für diese Komponenten ausführen. Beispielsweise wendet Azure Services Packs automatisch an. Sie können sich auf die Datenbankverwaltung konzentrieren. PaaS-Angebote für die Ausführung von Open Source-Datenbanken in Azure umfassen 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 lokales Datenbanksystem verfügen, das auf MySQL, MariaDB oder PostgreSQL basiert und Sie Ihre Datenbank in die Cloud verschieben möchten, erwägen Sie die Verwendung von Azure Database for MySQL, Azure Database for MariaDB oder Azure Database for PostgreSQL. Möglicherweise möchten Sie diese Dienste auch verwenden, um neue Datenbanken zu implementieren. Wenn Ihre Entwickler und Datenbankadministratoren beispielsweise Erfahrung mit diesen Datenbankservern haben und nicht möchten, dass sie Zeit mit dem Erlernen eines neuen Systems verbringen, können Mitarbeiter ihr vorhandenes Wissen mit Azure Database for MySQL, Azure Database for MariaDB oder Azure Database for PostgreSQL nutzen. Azure Database for MySQL, Azure Database for MariaDB, und Azure Database for PostgreSQL sind PaaS-Systeme, daher müssen Sie sich nicht um die Architektur oder Implementierung von virtuellen Servern oder Netzwerken kümmern.
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. Sie können derzeit je nach Ihren Anforderungen die Unterstützung für MySQL-Versionen 5.6, 5.7 und 8.0 auswählen. Unterstützung für zusätzliche Versionen wird bereitgestellt, wenn MySQL weiterentwickelt wird.
Mit Azure Database for MySQL erhalten Sie die folgenden Funktionen:
- Integrierte Features für hohe Verfü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 aus zwei Bereitstellungsoptionen wählen:
Azure Database for MySQL – Flexibler Server
Azure-Datenbank für MySQL – Flexibler Server bietet eine höhere Verfügbarkeit, indem Ihre Datenbanken in mehrere Verfügbarkeitszonen repliziert werden. Außerdem können Sie ihren 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-Datenbank für MariaDB?
MariaDB ist eine Verzweigung von MySQL, die von der Community als Reaktion auf die Übernahme von MySQL von Oracle geschaffen wurde. Azure Database for MariaDB ist die PaaS-Implementierung von MariaDB in der Azure-Cloud.
MariaDB ist als Drop-In-Ersatz für MySQL konzipiert, sodass Sie eine MySQL-Datenbank durch eine MariaDB-Datenbank ersetzen können, ohne umfangreiche Neucodierung von Client-Apps oder Änderungen im Datenbankschema. Viele Features von MariaDB sind identisch wie in MySQL, z. B.:
- Datenbankstrukturen und Indizes
- Datendefinitionsbefehle
- Clientprotokolle, Strukturen und APIs
- Die Programme
mysqldumpundmysqladmin
Diese Ähnlichkeit zwischen MySQL und MariaDB bedeutet, dass die Migrationsaufgaben von MySQL zu Azure Database for MySQL den Migrationsaufgaben von MariaDB zu Azure Database for MariaDB sehr ähnlich sind. Es gibt einige Unterschiede zwischen den Systemen. MariaDB unterstützt beispielsweise ColumnStore und Redis Cache, die beide zum Optimieren der Leistung verwendet werden können.
Hinweis
Da die Migration von Datenbanken von MySQL und MariaDB in Azure so ähnlich ist, werden sie in diesem Kurs zusammen behandelt.
Von Bedeutung
Zum Zeitpunkt des Schreibens gibt es keine Flexible Server-Bereitstellungsoption für Azure-Datenbank für MariaDB.
Was ist Azure Database for PostgreSQL?
Wenn Sie PostgreSQL bevorzugen, können Sie Azure-Datenbank für PostgreSQL auswählen, um eine PaaS-Implementierung dieses Datenbankservers in der Azure Cloud zu erhalten. Dies bietet die gleiche Verfügbarkeit, Leistung, Skalierung, Sicherheit und administrative Vorteile wie der MySQL-Dienst.
Sie können aus drei Bereitstellungsoptionen wählen:
Azure Database for PostgreSQL – Flexible Server
Azure Database for PostgreSQL – Flexible Server bietet ähnliche Vorteile wie MySQL Flexible Server. Sie können es verwenden, um die größtmögliche Verfügbarkeit und bequeme Neustarts bereitzustellen.
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önnen IaaS auswählen, wenn Sie mehr Kontrolle über die Betriebssysteme und Software behalten möchten, die Ihrem System zugrunde liegt.
Es gibt jedoch mehrere Ansätze, mit denen Sie den IaaS-Ansatz je nach Ihren Anforderungen und der Komplexität Ihrer vorhandenen Systeme implementieren können.
Lift-and-shift
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. Sie installieren und konfigurieren Ihre Datenbankverwaltungssystemsoftware (MySQL, MariaDB oder PostgreSQL) auf den virtuellen Computern. Anschließend platzieren Sie das System mit geringen Änderungen an Clientcode oder Konfiguration mit Lift & Shift in der Cloud.
Mit dieser Strategie folgen Sie einem schrittweisen Prozess für die Migration. Sie verschieben Teile Ihres Systems inkrementell in die Cloud, während andere Elemente lokal beibehalten werden, indem Sie das Azure-Netzwerkgateway verwenden. Verwenden Sie diesen Hybridansatz, um das System bei jedem Schritt zu stabilisieren, und führen Sie bei Bedarf einen Rollback durch.
Verwenden von vorgefertigten virtuellen Computern
Der Marketplace umfasst 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 erwägen Sie die Verwendung.
Sie können auch ein benutzerdefiniertes Image eines virtuellen Computers in Azure hochladen und verwenden, um virtuelle Computer zu erstellen. Dieses Bild kann die Datenbanksoftware Ihrer Wahl und sogar die Datenbank selbst enthalten. Weitere Informationen finden Sie im Lernprogramm: Erstellen eines benutzerdefinierten Images einer Azure-VM mit Azure PowerShell.
Verwenden von MySQL-, MariaDB- oder PostgreSQL-Containern
Eine andere Virtualisierungstechnologie, die Sie berücksichtigen können, ist containerisierung. Ein Container ist wie ein virtueller Computer, teilt jedoch das Betriebssystem mit dem Hostcomputer. Container sind kleiner als virtuelle Computer, sodass Sie mehr davon auf einem Hostcomputer ausführen und neue schneller starten können. Sie können jedoch keinen Linux-Container auf einem Windows-Computer ausführen, z. B. weil das Betriebssystem freigegeben ist. Zum Ausführen von Containern auf einem physischen Server benötigen Sie Containerhostsoftware wie Docker. Container werden von Images bereitgestellt und wie virtuelle Computer können diese Images Datenbanksoftware wie MySQL, MariaDB und PostgreSQL enthalten.
Wenn Sie kleine Anzahl von Containern in Azure ausführen möchten, installieren Sie Docker auf einem virtuellen Computer. Alternativ können Sie, wenn Sie den Containerinstanzendienst verwenden, Container auf Azure ausführen, ohne eigene virtuelle Computer einzurichten. Wenn Sie eine große Anzahl von Containern, die miteinander kommunizieren müssen, ganz einfach verwalten möchten, verwenden Sie den Azure Kubernetes-Dienst.