Hosten von Anwendungen in Azure

Dies ist Teil drei in einer Reihe von 7 Artikeln, die Entwicklern bei den ersten Schritten mit Azure helfen.

Azure bietet verschiedene Möglichkeiten, Ihre Anwendung je nach Ihren Anforderungen zu hosten. In diesem Artikel werden Dienste vorgeschlagen, die den Anforderungen entsprechen. Es ist nicht restriktiv gemeint. Sie können Dienste kombinieren und aufeinander abstimmen, um Ihren Anforderungen gerecht zu werden. Die meisten Produktionsumgebungen nutzen eine Kombination aus Diensten, um ihre geschäftlichen und organisatorischen Anforderungen zu erfüllen.

Die von Ihnen gewählten Dienste basieren häufig auf zwei Überlegungen:

  • Bevorzugen Sie Einfachheit oder Kontrolle?
  • Bevorzugen Sie cloudnative (d. h. Container) oder Azure-native (maßgeschneiderte Tools und Integrationen)?

Das folgende Video erläutert die erste Überlegung: Einfachheit im Vergleich zur Kontrolle:

Einfachheit und Kontrolle

Azure-Hostingdienste werden unter zwei Gesichtspunkten bereitgestellt:

  • Einfachheit im Vergleich zur Kontrolle
    • Einfache Hostingplattformen erfordern weniger Konfiguration und Verwaltung, bieten aber weniger Kontrolle über die zugrunde liegende Infrastruktur.
    • Komplexere Hostingplattformen erfordern mehr Konfiguration und Verwaltung, bieten aber auch mehr Kontrolle über die zugrunde liegende Infrastruktur.
  • Cloudnativ im Vergleich zu Azure-nativ
    • Cloudnativ kann man sich als Cloud-portierbar mit Open-Source-Workloads wie Containern und Open-Source-Technologien wie Dapr vorstellen. Die von Ihnen erstellten Anwendungen können für jeden Cloudanbieter bereitgestellt werden.
    • Azure-nativ ist spezifisch für Azure mit einer Investition in Azure-spezifische Tools und Technologien zur Verwaltung dieser Infrastruktur. Während diese Dienste Containerworkloads enthalten, umfassen sie auch Code-first-, Low-Code- und Infrastrukturtools speziell für Azure, wobei der Schwerpunkt auf der Verbindung und Integration zwischen Azure-Diensten liegt.

Vereinfachtes Hosting

Vereinfachte Hostinglösungen werden vollständig von Azure verwaltet. Sie sind für die Funktionalität wie Code- und Umgebungskonfiguration verantwortlich. Azure verwaltet die zugrunde liegende Laufzeit und Infrastruktur, einschließlich Updates und Patches. Vereinfachtes Hosting ist der Azure-native Ansatz.

  • Logic Apps: Erstellen und Ausführen automatisierter Workflows mit wenig bis gar keinem Code.
  • Power Automate: Verwenden Sie diese Anwendung, wenn Sie Geschäftsprozesse und Workflows automatisieren müssen.
  • Azure Static Web Apps: Bereitstellen generierter statischer Web-Apps wie Blazor und React.
  • Azure Functions Apps: serverloses Code- oder Containerhosting.

Ausgewogenes Hosting

Ausgewogene Hostinglösungen bringen die Notwendigkeit der Einfachheit mit der Notwendigkeit der Kontrolle in Einklang. Sie sind für die Funktionalität wie Code- und Umgebungskonfiguration verantwortlich. Azure verwaltet die zugrunde liegende Laufzeit und Infrastruktur, einschließlich Updates und Patches. Sie können auch Ihren eigenen Container zum Dienst mitbringen. Ausgewogenes Hosting ist sowohl Azure-nativ als auch cloudnativ.

Kontrolliertes Hosting

Kontrollierte Hostinglösungen bieten Ihnen die vollständige Kontrolle über die zugrunde liegende Infrastruktur. Sie sind für Updates und Patches sowie ihre Code-, Ressourcen- und Umgebungskonfiguration verantwortlich. Kontrolliertes Hosting ist der cloudnative Ansatz.

Quellcodehosting

Entwickler, die in Azure einsteigen und eine neue Entwicklung beginnen möchten, verwenden das folgende Diagramm, um die vorgeschlagene Hostinglösung zu finden.

Diagramm, das im ersten Feld No-Code/Low-Code, im zweiten Feld Code und im dritten Feld einen Container anzeigt, mit empfohlenen Diensten für jedes Feld.

No-Code oder Low-Code

Azure unterstützt No-Code-Lösungen, die Teil des Azure-Cloud-Ansatzes sind.

  • Logic Apps: Verwenden Sie einen visuellen Designer mit vordefinierten Vorgängen, um einen Workflow für Ihre Unternehmens- und Geschäftsszenarien zu entwickeln.
  • Power Automate wie Power Apps: Verwenden Sie diese Möglichkeit, um Geschäftsprozesse und Workflows innerhalb der Microsoft 365-Organisation zu automatisieren.

Code im Vergleich zum Container

Low-Code-Hostinglösungen sind so konzipiert, dass Sie Ihre Codefunktionalität bereitstellen können, ohne die Anwendungsinfrastruktur verwalten zu müssen.

  • Azure Static Web Apps: Bereitstellen generierter statischer Web-Apps.
  • Azure Functions: Bereitstellen von Codefunktionen in unterstützten Sprachen, ohne die Anwendungsinfrastruktur verwalten zu müssen.

Code-first-Hostinglösungen sind zum Hosten von Code konzipiert. Sie können Ihren Code direkt in der Hostinglösung bereitstellen.

Container-first-Hostinglösungen sind für das Hosten von Containern konzipiert. Der Dienst stellt containerspezifische Konfigurationsoptionen und -features bereit. Sie sind für die im Container verwendete Rechenleistung verantwortlich. Die Dienstleistungen, die Container hosten, gehen von der verwalteten Kontrolle in die volle Verantwortung über, sodass Sie nur so viel Containerverwaltung übernehmen, wie Sie möchten.

Kubernetes-zentriertes Orchestrierungshosting umfasst:

Dienst Fokus Zweck
Azure Kubernetes Service (AKS) Cloudnativ Wird für Kubernetes-Cluster mit einem deklarativen Ansatz mit Konfigurationsdateien und externen Artefakten verwendet.
Azure Service Fabric Azure-nativ Verwenden Sie einen imperativen Ansatz zum Bereitstellen von Microservices auf Computerclustern. Es bietet ein Programmiermodell, das es Entwicklern ermöglicht, Code zu schreiben, der den gewünschten Zustand des Systems beschreibt, und die Service-Fabric-Laufzeit sorgt dafür, dass das System diesem Zustand entspricht.

Vorkonfiguriertes Containerhosting bedeutet, dass die Orchestrierungsoptionen für Sie vorkonfiguriert sind. Ihre Fähigkeit zur Kommunikation zwischen Containern oder Containerclustern erfordert möglicherweise einen zusätzlichen Dienst wie Dapr.

Dienst Zweck
Azure App Service Full-Service-Webhosting
Azure Spring Apps Spring Boot-Anwendungen
Azure Container Apps Serverloses Containerhosting
Azure Container Instances einfaches, einzelnes Containerhosting

Azure stellt eine Containerregistrierung zum Speichern und Verwalten Ihrer Containerimages bereit, oder Sie können eine Containerregistrierung eines Drittanbieters verwenden.

Dienst Zweck
Azure Container Registry Verwenden Sie diese Methode, wenn Sie eigene Containerimages erstellen und hosten, die mit Quellcode-Commits und Basisimageupdates ausgelöst werden können.

Serverlos

Serverlose Hostinglösungen sind so konzipiert, dass zustandsloser Code ausgeführt wird, der eine verbrauchsbasierte Preisstufe enthält, die bei Verwendung auf Null skaliert wird.

Dienst Zweck
Azure Container Apps Containerhosting.
Azure-Funktionen Code oder Containerhosting.

Microservices

Microservices-Hostinglösungen sind so konzipiert, dass kleine, unabhängige Dienste ausgeführt werden, die zusammenarbeiten, um eine größere Anwendung zu bilden. Microservices werden in der Regel als Container bereitgestellt.

Dienst Zweck
Azure Container Apps Wird für serverlose containerisierte Microservices verwendet.
Azure-Funktionen Wird für serverlosen Code oder containerisierte Microservices verwendet.

Cloud-Edge

Cloud-Edge ist ein Begriff, der angibt, ob der Clouddienst zum Nutzen des Benutzers (Client) oder der Anwendung (Server) positioniert ist.

Client-Computing

Client-Computing ist eine Berechnung, die auf dem Client außerhalb der Azure-Cloud ausgeführt wird. Client-Computing wird in der Regel für das clientseitige Rendering und die clientseitige Verarbeitung verwendet, z. B. für browserbasierte oder mobile Anwendungen.

Dienst Zweck
Azure Static Web Apps Wird für statische Web-Apps verwendet, die clientseitiges Rendering wie React, Angular, Svelte, Vue und Blazor verwenden.

Clientverfügbarkeit

Dienst Zweck
Azure Front Door Wird für alle in das Internet zugänglichen Anwendungen verwendet, um ein globales zwischengespeichertes und sicheres Netzwerk für Ihre statischen und dynamischen Ressourcen bereitzustellen, einschließlich DDoS-Schutz, End-to-End-TLS-Verschlüsselung, Anwendungsfirewalls und Geofilterung.

Server-Computing

Server-Computing-Assets sind Dateien, die vom Server verarbeitet werden, bevor sie dem Client bereitgestellt werden. Dynamische Ressourcen werden mithilfe des Back-End-Server-Computing entwickelt, optional in andere Azure-Dienste integriert.

Dienst Zweck
Azure App Service Verwenden Sie diesen Dienst für standardmäßiges Webhosting. Dies unterstützt eine Vielzahl von Funktionen-API-Endpunkten, Full-Stack-Anwendungen und Hintergrundaufgaben. Dieser Dienst enthält viele Programmiersprachenlaufzeiten sowie die Möglichkeit, Ihren eigenen Stapel, Ihre Sprache oder Workload aus einem Container bereitzustellen.
Azure-Funktionen Verwenden Sie diesen Dienst, um Ihren eigenen Code in den unterstützten Sprachen für HTTP-Endpunkte oder ereignisbasierte Trigger von Azure-Diensten bereitzustellen.
Azure Spring Apps Verwenden Sie diese Option, um Spring Boot-Anwendungen ohne Codeänderungen bereitzustellen.
Azure Container Apps Verwenden Sie diese Option, um verwaltete Microservices und containerisierte Anwendungen auf einer serverlosen Plattform zu hosten.
Azure Container Instances Verwenden Sie diese Option für einfache Containerszenarien, die keine Containerorchestrierung benötigen.
Azure Kubernetes Service (AKS) Verwenden Sie diesen Dienst, wenn Sie einen Kubernetes-Cluster benötigen. Die Kontrollebene zum Verwalten des Clusters wird erstellt und für Sie ohne zusätzliche Kosten bereitgestellt.

Serverendpunktverwaltung

Die Serverendpunktverwaltung ist die Möglichkeit, Ihren Serverendpunkt und seine Berechnung über ein Gateway zu verwalten. Dieses Gateway bietet Funktionen wie Versionsverwaltung, Zwischenspeichern, Transformation, API-Richtlinien und Überwachung.

Dienst Zweck
Azure API Management Verwenden Sie diesen Dienst, wenn Sie Ihre REST-, OpenAPI- und GraphQL-APIs mit einem API-Gateway in die Produktion überführen, einschließlich Kontingente und Ratenbeschränkungen, Authentifizierung und Autorisierung, Transformation und zwischengespeicherte Antworten.
Azure Application Gateway Wird für den regionalen Lastenausgleich (OSI-Schicht 7) verwendet. Sie kann verwendet werden, um Datenverkehr basierend auf URL-Pfad- oder Hostheadern weiterzuleiten und unterstützt SSL-Offloading-, cookiebasierte Sitzungsaffinitäts- und WAF-Funktionen (Web Application Firewall).
Azure Front Door Wird für den globalen Lastenausgleich (OSI-Schicht 7) verwendet, um ein globales zwischengespeichertes und sicheres Netzwerk für Ihre statischen und dynamischen Ressourcen bereitzustellen, einschließlich DDoS-Schutz, End-to-End-TLS-Verschlüsselung, Anwendungsfirewalls und Geofilterung.
Azure Traffic Manager Wird für die Verteilung von Datenverkehr nach DNS (OSI-Schicht 7) an Ihre öffentlich zugänglichen Anwendungen in den globalen Azure-Regionen verwendet. Traffic Manager verwendet DNS, um die Clientanforderungen auf der Grundlage einer Datenverkehrsrouting-Methode an den passenden Dienstendpunkt weiterzuleiten. Es unterstützt verschiedene Datenverkehrsroutingmethoden wie Priorität, Leistung und geografisches Routing. Es ist ideal für die Verwaltung des Datenverkehrs über mehrere Regionen oder Rechenzentren hinweg.

Automatisiertes Computing

Das automatisierte Computing wird von einem Ereignis wie einem zeitgesteuerten Zeitplan oder einem anderen Azure-Dienst automatisiert und wird in der Regel für Hintergrundverarbeitung, Batchverarbeitung oder lange ausgeführte Prozesse verwendet.

Dienst Zweck
Power Automate Verwenden Sie diese Vorgehensweise, wenn Sie Geschäftsprozesse und Workflows automatisieren müssen.
Azure-Funktionen Verwenden Sie diese Vorgehensweise, wenn Sie Code basierend auf einem zeitlich festgelegten Zeitplan oder als Reaktion auf Ereignisse in anderen Azure-Diensten ausführen müssen.
Containerdienste (Azure Container Instances, Azure Kubernetes Service, Azure Container Apps) Verwendung für automatisierbare Standardworkloads
Azure Batch Verwenden Sie diese Anwendung, wenn Sie eine leistungsstarke Automatisierung benötigen.

Hybrid Cloud

Eine Hybrid-Cloud ist eine Computerumgebung, die die lokalen privaten Clouddienste eines Unternehmens und die öffentliche Cloud eines Drittanbieters zu einer einzigen, flexiblen Infrastruktur für die Ausführung der Anwendungen und Workloads des Unternehmens verbindet.

Dienst Zweck
Azure Arc Verwenden Sie, wenn Sie Ihre gesamte Umgebung verwalten müssen, sowohl Cloud- als auch lokale Ressourcen, einschließlich Sicherheit, Governance, Bestand und Verwaltung.

Wenn Sie ihre eigene Infrastruktur nicht verwalten müssen, verwenden Sie Azure Stack HCI, um virtuelle Computer lokal auszuführen.

High Performance Computing

High-Performance Computing (HPC) ist die Verwendung paralleler Verarbeitung für die effiziente, zuverlässige und schnelle Ausführung erweiterter Anwendungsprogramme. Der Begriff gilt insbesondere für Systeme, die über einem Teraflop oder 10^12 Gleitkommaoperationen pro Sekunde funktionieren.

Dienst Zweck
Azure Batch Azure Batch erstellt und verwaltet einen Pool mit Computeknoten (virtuelle Computer), installiert die Anwendungen, die Sie ausführen möchten, und plant Aufträge für die Ausführung auf den Knoten. Entwickler können Batch als Plattformdienst verwenden, um SaaS-Anwendungen oder Client-Apps zu erstellen, für die große Mengen von Ausführungen erforderlich sind.
Azure BareMetal-Instanzen Verwenden Sie diese Funktion, wenn Sie in einer nicht virtualisierten Umgebung mit Zugriff auf die Stammebene auf das Betriebssystem, den Speicher und das Netzwerk ausgeführt werden müssen.
Azure Quantum-Arbeitsbereich Verwenden Sie diese Anwendung, wenn Sie Quantenalgorithmen entwickeln und experimentieren müssen.
Microsoft Genomics Verwendung für ISO-zertifizierte, HIPAA-kompatible genomische Verarbeitung.

Erfahren Sie mehr über High Performance Computing in Azure.

Ereignisbasiertes Computing

Das ereignisbasierte Computing ist eine Berechnung, die von einem Ereignis wie einem zeitgesteuerten Zeitplan oder einem anderen Azure-Dienst ausgelöst wird. Ereignisbasiertes Computing wird in der Regel für Hintergrundverarbeitung, Batchverarbeitung oder lange ausgeführte Prozesse verwendet.

Dienst Zweck
Power Virtual Agents Verwenden Sie diese Anwendung, wenn Sie Chatbots mit einer Code-Schnittstelle erstellen müssen.
Azure-Funktionen Verwenden Sie diese Vorgehensweise, wenn Sie Code basierend auf einem zeitlich festgelegten Zeitplan oder als Reaktion auf Ereignisse in anderen Azure-Diensten ausführen müssen.
Azure Service Bus-Messaging Verwenden Sie diese Funktion, wenn Sie Anwendungen und Dienste entkoppeln müssen.

CI/CD-Computing

CI/CD-Computing ist eine Berechnung, die zum Erstellen und Bereitstellen Ihrer Anwendung verwendet wird.

Dienst Beschreibung
Azure DevOps Verwenden Sie Azure DevOps für eine enge Integration in die Azure-Cloud, einschließlich Authentifizierung und Autorisierung für die gehosteten Agents, die Ihre Anwendung erstellen und bereitstellen.
GitHub-Aktionen Verwenden Sie GitHub Actions, um Ihre GitHub-Repository-Anwendungen zu erstellen und bereitzustellen. Verwenden Sie die Azure CLI, um sicher auf Azure innerhalb der Aktion zuzugreifen.
Dokumentation zu virtuellen Computern Wenn Sie ein anderes CI/CD-System verwenden, können Sie Azure Virtual Machines verwenden, um Ihr CI/CD-System zu hosten.

Java-Ressourcen

Zusätzliche Ressourcen