Hosten von Anwendungen in Azure

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 proscriptiv. Sie können Dienste kombinieren und aufeinander abstimmen, um Ihren Anforderungen gerecht zu werden. Die meisten Produktionsumgebungen verwenden eine Kombination von Diensten, um ihren Geschäftlichen und organisatorischen Anforderungen gerecht zu werden.

Einfachheit und Kontrolle

Azure-Hostingdienste werden mit zwei Überlegungen bereitgestellt:

  • Einfachheit im Vergleich zu Steuerelementen
    • Einfache Hostingplattformen erfordern weniger Konfiguration und Verwaltung, bieten jedoch weniger Kontrolle über die zugrunde liegende Infrastruktur.
    • Komplexere Hostingplattformen erfordern mehr Konfiguration und Verwaltung, bieten jedoch mehr Kontrolle über die zugrunde liegende Infrastruktur.
  • Cloudnativ im Vergleich zu Azure-nativen
    • Cloudnativ kann man sich als cloud-portierbar mit Open-Source-Workloads wie Containern und Open-Source-Technologien wie Dapr überlegen. Die von Ihnen erstellten Anwendungen können für jeden Cloudanbieter bereitgestellt werden.
    • Azure-native 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.

  • Logik-Apps: Erstellen und Ausführen automatisierter Workflows ohne 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 nutzen die Notwendigkeit der Einfachheit mit der Notwendigkeit der Kontrolle. 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 in den Dienst bringen. Ausgewogenes Hosting ist sowohl azure-native als auch Cloud-native.

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 cloudeigene Ansatz.

Quellcodehosting

Für Entwickler, die mit Azure neu beginnen möchten, verwenden Sie das folgende Diagramm, um die vorgeschlagene Hostinglösung zu finden.

Diagram showing no code, low code in the first box, code in the second box and container in the third box with recommended services for each box.

Kein Code oder niedriger Code

Azure-Support s no-code solutions are part of its Azure-Cloud approach.

  • Logik-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

Hostinglösungen mit geringem Code 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-Funktionen: Bereitstellen von Codefunktionen in unterstützten Sprachen, ohne die Anwendungsinfrastruktur verwalten zu müssen.

Code-first-Hostinglösungen sind für hosten Code konzipiert. Sie können Ihren Code direkt in der Hostinglösung bereitstellen.

Container-first Hosting-Lö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 Berechnung verantwortlich. Die Dienste, die Container hosten, werden von der verwalteten Kontrolle in die volle Verantwortung verschoben, sodass Sie nur die gewünschte Containerverwaltung übernehmen.

Kubernetes-zentriertes Orchestrierungshosting umfasst:

Dienst Fokus Verwenden
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 clustern Computern. Es stellt ein Programmiermodell bereit, mit dem Entwickler Code schreiben können, der den gewünschten Zustand des Systems beschreibt, und die Service Fabric-Laufzeit kümmert sich um die Übereinstimmung des Systems mit diesem Zustand.

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 Verwenden
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 Verwenden
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 Verwenden
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 Verwenden
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 sich der Clouddienst befindet, um dem Benutzer (Client) oder der Anwendung (Server) zu profitieren.

Client compute

Client compute is compute that runs on the client away from the Azure cloud. Client compute is typically used for client-side rendering and client-side processing such as browser-based or mobile applications.

Dienst Verwenden
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 Verwenden
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 compute

Server compute assets are files that are processed by the server before being served to the client. Dynamische Ressourcen werden mithilfe der Back-End-Server-Compute entwickelt, optional in andere Azure-Dienste integriert.

Dienst Verwenden
Azure App Service Verwenden Sie diesen Dienst für typisches Webhosting. Dies unterstützt eine vielzahl von Funktionen-API-Endpunkten, Vollstapelanwendungen 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 Wird verwendet, um Spring Boot-Anwendungen ohne Codeänderungen bereitzustellen.
Azure Container Apps Wird verwendet, 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 Container-Orchestrierung benötigen.
Azure Kubernetes Service (AKS) Verwenden Sie diesen Dienst, wenn Sie einen Kubernetes-Cluster benötigen. Die Steuerebene 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 Verwenden
Azure API Management Verwenden Sie diesen Dienst, wenn Sie Ihre REST-, OpenAPI- und GraphQL-APIs mit einem API-Gateway produktisieren, einschließlich Kontingente und Ratenbeschränkungen, Authentifizierung und Autorisierung, Transformation und zwischengespeicherte Antworten.
Azure Application Gateway Wird für den regionalen Lastenausgleich (OSI-Ebene 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 Layer 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 Layer 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.

Automatisierte Berechnung

Die automatisierte Berechnung 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 Verwenden
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 standardautomatierbare Workloads
Azure Batch Verwenden Sie diese Anwendung, wenn Sie eine leistungsstarke Automatisierung benötigen.

Hybrid Cloud

Hybrid cloud is a computing environment that connects a company's on-premises private cloud services and third-party public cloud into a single, flexible infrastructure for running the organization's applications and workloads.

Dienst Verwenden
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 Standard müssen, können Sie Azure Stack HCI verwenden, 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 Verwenden
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 nichtvirtualisierten 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.

Ereignisbasierte Berechnung

Die ereignisbasierte Berechnung wird berechnet, die von einem Ereignis wie einem zeitgesteuerten Zeitplan oder einem anderen Azure-Dienst ausgelöst wird. Ereignisbasierte Compute wird in der Regel für Hintergrundverarbeitung, Batchverarbeitung oder lange ausgeführte Prozesse verwendet.

Dienst Verwenden
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 Compute

CI/CD compute is compute that is used to build and deploy your application.

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-Aktionen, um Ihre GitHub-Repositoryanwendungen 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