Auswählen einer geeigneten Hostingoption für Ihre MySQL-App

Abgeschlossen

Wenn Sie eine neue App entwickeln oder eine bestehende modernisieren, ist die Auswahl der richtigen Hostingoption entscheidend, um Leistung, Sicherheit und Kosteneffizienz zu optimieren. Traditionell wurden Apps auf Webservern wie den Internetinformationsdiensten (Internet Information Services, IIS), in Apache oder in NGINX auf physischer oder virtualisierter lokaler Hardware gehostet. Während dieser Ansatz den Vorteil bietet, dass das Infrastrukturteam die vollständige Kontrolle über die Umgebung hat, erfordert er zusätzliche Schritte bei der Verwaltung von Mehraufwand, Vorabkosten, Verfügbarkeit, Skalierbarkeit, Resilienz, Sicherheit und Compliance.

Wenn Sie Ihre App in der Cloud bereitstellen, entfällt der Verwaltungsaufwand für diese Bereiche. Eine App in der Cloud zu hosten, reduziert die Gesamteinrichtungskosten und verbessert die Verfügbarkeit und Zuverlässigkeit dank BCDR (Business Continuity & Disaster Recovery). Zudem können Sie Ihre Anwendungsressourcen bedarfsgesteuert skalieren und von erweiterter Sicherheit profitieren.

Microsoft Azure bietet eine Vielzahl von App-Hostingoptionen, die an die individuellen Architekturanforderungen und Anwendungsfälle Ihrer App angepasst werden können.

Abbildung: MySQL-Anwendungstypen und entsprechende Azure-Dienste

Viele dieser App-Hostingoptionen lassen sich nahtlos in Azure Database for MySQL – Flexibler Server integrieren, einem aufgrund seiner Skalierbarkeit, Leistung und Verwaltbarkeit besonders effektiven Dienst für Back-End-Datenbanken. In dieser Lerneinheit werden einige allgemeine MySQL-App-Architekturen und Azure-Dienste vorgestellt, um die am besten geeignete Hostingoption für Ihre App-Workload ermitteln zu können.

Web-Apps in Azure App Service

MySQL ist aufgrund seiner Portierbarkeit, Geschwindigkeit, Skalierbarkeit und Zuverlässigkeit bei niedrigen Kosten eine der beliebtesten Datenbanken für die Entwicklung von Web-Apps und Mobile Apps. Mit Azure Database for MySQL – Flexible Server im Back-End können Sie leichter einfache oder missionskritische Internet-Apps erstellen, die auf dem LAMP-Stapel (Linux-Apache-MySQL-PHP) basieren. Sie können bei der Entwicklung auch gängige Content-Management-Systeme wie WordPress, Drupal oder Joomla, Lernmanagementsysteme wie Moodle sowie E-Commerce-Plattformen wie Magento verwenden. Alle diese Optionen sind mit Azure Database for MySQL – Flexible Server kompatibel.

Entwickler können diese von MySQL gestützten Web-Apps und Mobile Apps mit Azure App Service, einer HTTP-basierten Plattform-as-a-Service-Lösung (PaaS) für das Hosting von Web-Apps, REST-APIs und mobile Back-Ends, in einer Windows- oder Linux-Umgebung bereitstellen. Mit Azure App Service können Sie den Verwaltungsaufwand reduzieren, in Ihren bevorzugten Sprachen entwickeln, die App-Bereitstellung automatisieren und schnell hoch- und herunterskalieren und Ihre App sogar dockerisieren, um benutzerdefinierte Windows- oder Linux-Container zu hosten.

Containerisierte Apps in Azure Kubernetes Service oder Azure Container Apps (Microservices-Architektur)

In der letzten Zeit wurden Apps mit Microservices-Architekturen aufgrund ihrer Effizienz, Resilienz und Skalierbarkeit sowie der einfachen Bereitstellung immer beliebter. Im Gegensatz zu herkömmlichen monolithischen Apps funktioniert jeder Microservice oder Container unabhängig und kann aktualisiert werden, ohne die gesamte App erneut bereitstellen zu müssen.

In Azure können Sie diese Microservices in Azure Kubernetes Service (AKS) bereitstellen, einem vollständig verwalteten Kubernetes-Dienst, der Ihnen dabei hilft, selbst die komplexesten containerisierten Apps schnell und einfach zu definieren, bereitzustellen, zu debuggen und zu upgraden.

Als Ergänzung zu AKS bietet Azure Container Apps einen serverlosen Containerhostingdienst, der sich ideal für moderne Microservices-Apps eignet. Azure Container Apps vereinfacht die Bereitstellung und Skalierung von Containern, ohne die zugrunde liegende Infrastruktur wie VMs oder Kubernetes-Cluster zu verwalten. Für eine ereignisgesteuerte Architektur lässt es sich gut mit Azure Logic Apps und Azure Functions integrieren und unterstützt eine schnelle Skalierung und Verwaltung von App-Komponenten. Azure Container Apps eignet sich besonders für Apps, die agile Vorgänge und schnelle Iterationen erfordern, und bietet dynamische Skalierungsoptionen basierend auf dem HTTP-Datenverkehr oder ereignisgesteuerten Triggern. Dieser Dienst unterstützt sowohl Windows- als auch Linux-Container, sodass Sie Microservices, die in unterschiedlichen Programmierumgebungen entwickelt wurden, nahtlos bereitstellen können.

Die Kombination von Azure Container Apps mit herkömmlichen Kubernetes-Bereitstellungen in AKS ermöglicht Ihnen mehr Flexibilität bei der Orchestrierung, Skalierung und Verwaltung von containerisierten Apps. Dieser Ansatz maximiert nicht nur die operative Effizienz, sondern verbessert auch die Fähigkeit, schnell auf Marktänderungen und Kundenanforderungen zu reagieren.

Ereignisgesteuerte serverlose Apps mit Azure Functions und Azure Logic Apps

Serverlose Apps beschleunigen die Entwicklung mithilfe eines ereignisgesteuerten Modells und mit Triggern, die Code automatisch ausführen, um auf Ereignisse und Bindungen zu reagieren und zusätzliche Dienste nahtlos zu integrieren. Die Abrechnung erfolgt nur für die Zeit und die verbrauchten Ressourcen, die für die Ausführung des Codes nötig waren.

Azure Functions und Azure Logic Apps sind serverlose Lösungen in Azure, mit denen Sie Systeme erstellen können, um auf eine Reihe kritischer Ereignisse zu reagieren.

  • Azure Functions ist ein sehr vielseitiger serverloser Computedienst, der Code als Reaktion auf verschiedene Trigger wie HTTP-Anforderungen, Timerereignisse (Cronjobs) oder Azure-Dienstereignisse (z. B. Nachrichten aus Azure Storage-Warteschleifen oder Service Bus) ausführt. Dank dieser Flexibilität können Sie Apps erstellen, die in Echtzeit auf Änderungen reagieren, ohne dass Sie die Serverinfrastruktur verwalten. Azure Functions unterstützt eine breite Palette von Programmiersprachen wie C#, Java, JavaScript, Python und PowerShell, was den Dienst für eine breite Entwicklerbasis zugänglich macht. Diese Funktionen können auch mit anderen Azure-Ressourcen interagieren.
  • Azure Logic Apps ist eine serverlose Entwurfsumgebung, mit der Tasks, Prozesse und Workflows App- und unternehmensübergreifend automatisiert und koordiniert werden können. Mithilfe eines visuellen Designers können Sie im Azure-Portal oder in Visual Studio Workflows einrichten, um komplexe Geschäftsszenarios mit minimalem Programmieraufwand zu automatisieren. Diese Workflows orchestrieren eine Reihe von Funktionen oder Schritten (sogenannte Aktionen), die zum Durchführen eines komplexen Tasks ausgeführt werden, zum Beispiel zum Verarbeiten von Batchaufträgen und Aggregieren von Ergebnissen.

Azure bietet auch Dienste wie Azure Event Grid, Azure Service Bus und Azure Event Hubs zum Weiterleiten und Verwalten von Ereignissen und Nachrichten, die serverlose Apps in ereignisgesteuerten Workflows auslösen können.

Monolithische Legacy-Apps auf Azure-VMs

Einige Organisationen verfügen möglicherweise noch über Legacy-Apps mit monolithischen Architekturen, die eng an Geschäftsprozesse gekoppelt und schwer zu modernisieren sind. Sie können diese Apps mithilfe eines Lift & Shift-Modells zu Azure migrieren und auf Azure Virtual Machines hosten, einem Infrastructure-as-a-Service-Dienst (IaaS).

Azure bietet zwar Vorteile wie die Möglichkeit, Sicherungs- und Wiederherstellungsdienste, die Datenträgerverschlüsselung und Skalierungsoptionen ohne Vorabkosten zu aktivieren, Sie müssen Apps jedoch weiterhin manuell auf Azure-VMs bereitstellen, warten und verwalten.