Auswählen eines Azure-Computediensts

App Service
Kubernetes-Dienst

Azure bietet eine Vielzahl von Möglichkeiten zum Hosten Ihres Anwendungscodes. Der Begriff Compute bezieht sich auf das Hostingmodell für die Computeressourcen, auf denen Ihre Anwendung ausgeführt wird. Das folgende Flussdiagramm unterstützt Sie bei der Auswahl eines Computediensts für Ihre Anwendung.

Wenn Ihre Anwendung aus mehreren Workloads besteht, bewerten Sie jede Workload getrennt. Eine vollständige Lösung kann zwei oder mehr Computedienste umfassen.

Auswählen eines Kandidatendiensts

Verwenden Sie das folgende Flussdiagramm, um einen Kandidaten für den Computedienst auszuwählen.

Decision tree for Azure compute services

Definitionen:

  • Lift & Shift ist eine Strategie zum Migrieren einer Workload zur Cloud ohne Überarbeitung der Anwendung oder Änderung des Codes. Dies wird auch als erneutes Hosten bezeichnet. Weitere Informationen finden Sie im Azure-Migrations- und Modernisierungscenter.
  • Cloudoptimierung ist eine Strategie für die Migration zur Cloud durch Umgestaltung einer Anwendung, um cloudeigene Features und Funktionen zu nutzen.

Die Ausgabe dieses Flussdiagramms stellt einen Ausgangspunkt für Ihre Überlegungen dar. Führen Sie als Nächstes eine ausführlichere Auswertung des Diensts durch, um zu ermitteln, ob er Ihren Anforderungen entspricht.

Dieser Artikel enthält mehrere Tabellen, die Ihnen helfen können, diese Kompromissentscheidungen zu treffen. Basierend auf dieser Analyse stellen Sie eventuell fest, dass der erste Kandidat nicht für Ihre spezifische Anwendung oder Workload geeignet ist. Dehnen Sie in diesem Fall Ihre Analyse auf andere Computedienste aus.

Grundlegendes zu den Basisfunktionen

Wenn Sie mit dem im vorherigen Schritt ausgewählten Azure-Dienst nicht vertraut sind, lesen Sie die Übersichtsdokumentation, um die Grundlagen des Diensts zu verstehen.

  • App Service. Ein verwalteter Dienst zum Hosten von Web-Apps, mobilen App-Back-Ends, RESTful-APIs oder automatisierten Geschäftsprozessen
  • Azure Spring Cloud. Ein verwalteter Dienst, der für das Hosting von Spring Boot-Apps entworfen und optimiert ist.
  • Azure Kubernetes Service (AKS): Ein verwalteter Kubernetes-Dienst für die Ausführung von Containeranwendungen
  • Batch: Ein verwalteter Dienst zum Ausführen von umfassenden parallelen HPC-Anwendungen (High-Performance Computing)
  • Container Instances: Die schnellste und einfachste Methode zum Ausführen von Containern in Azure, ohne dass Sie virtuelle Computer bereitstellen oder einen übergeordneten Dienst einführen müssen
  • Funktionen. Ein verwalteter FaaS-Dienst
  • Service Fabric: Eine Plattform für verteilte Systeme, die in vielen Umgebungen ausgeführt werden kann, z. B. Azure oder lokal
  • Virtuelle Computer: Bereitstellung und Verwaltung virtueller Computer in einem virtuellen Azure-Netzwerk

Grundlegendes zu den Hostingmodellen

Clouddienste, einschließlich Azure-Dienste, sind in der Regel in drei Kategorien unterteilt: IaaS, PaaS und FaaS. (Darüber hinaus gibt es noch SaaS (Software-as-a-Service). Diese Option wird jedoch in diesem Artikel nicht behandelt.) Es ist hilfreich, die Unterschiede zu verstehen.

Mit Infrastructure-as-a-Service (IaaS) können Sie einzelne virtuelle Computer zusammen mit den zugehörigen Netzwerk- und Speicherkomponenten bereitstellen. Anschließend stellen Sie die Software und Anwendungen bereit, die für diese VMs jeweils vorgesehen sind. Dieses Modell weist die größte Ähnlichkeit mit einer herkömmlichen lokalen Umgebung auf – mit der Ausnahme, dass die Infrastruktur von Microsoft verwaltet wird. Sie verwalten weiterhin die einzelnen VMs.

Bei PaaS (Platform-as-a-Service) ist eine verwaltete Hostingumgebung vorhanden, in der Sie Ihre Anwendung bereitstellen können, ohne VMs oder Netzwerkressourcen verwalten zu müssen. Azure App Service ist ein PaaS-Dienst.

Bei FaaS (Functions-as-a-Service) geht dies noch weiter, da es auch nicht mehr erforderlich ist, sich um die Hostingumgebung zu kümmern. In einem FaaS-Modell stellen Sie einfach Ihren Code bereit, und der Dienst führt ihn automatisch aus. Azure Functions ist ein FaaS-Dienst.

Hinweis

Azure Functions ist eine serverlose Computeoption von Azure. Unter Auswählen der richtigen Integrations- und Automatisierungsdienste in Azure erhalten Sie weitere Informationen dazu, welche Funktionen dieser Dienst im Vergleich zu anderen serverlosen Optionen von Azure bietet, z. B. Logic Apps. Hierbei stehen serverlose Workflows zur Verfügung.

Es wird ein Spektrum von IaaS bis zu PaaS in Reinform abgedeckt. Für Azure-VMs kann die Autoskalierung beispielsweise mithilfe von VM-Skalierungsgruppen durchgeführt werden. Diese Funktion für die automatische Skalierung entspricht nicht genau PaaS, aber es handelt sich um die Art von Verwaltungsfeature, das Teil eines PaaS-Diensts ist.

Im Allgemeinen muss ein Kompromiss zwischen Kontrolle und einfacher Verwaltung gefunden werden. IaaS bietet das höchste Maß an Kontrolle, Flexibilität und Portabilität, aber Sie müssen die von Ihnen erstellten virtuellen Computer und Netzwerkkomponenten bereitstellen, konfigurieren und verwalten. FaaS-Dienste verwalten automatisch nahezu alle Aspekte der Ausführung einer Anwendung. PaaS-Dienste liegen irgendwo dazwischen.

Kriterien Virtual Machines App Service Azure Spring Cloud Service Fabric Azure-Funktionen Azure Kubernetes Service Container Instances Azure Batch
Anwendungskomposition Agnostisch Anwendungen, Container Anwendungen, Microservices Dienste, ausführbare Gastdateien, Container Functions Container Container Geplante Aufträge
Dichte Agnostisch Mehrere Apps pro Instanz über App Service-Pläne Mehrere Apps pro Dienstinstanz Mehrere Dienste pro VM Serverlos 1 Mehrere Container pro Knoten Keine dedizierten Instanzen Mehrere Apps pro VM
Mindestanzahl von Knoten 12 1 2 53 Serverlos 1 3 3 Keine dedizierten Knoten 14
Zustandsverwaltung Zustandslos oder zustandsbehaftet Zustandslos Zustandslos Zustandslos oder zustandsbehaftet Zustandslos Zustandslos oder zustandsbehaftet Zustandslos Zustandslos
Webhosting Agnostisch Integriert Integriert Agnostisch Nicht verfügbar Agnostisch Agnostisch Nein
Bereitstellung in dediziertem VNET möglich? Unterstützt Unterstützt5 Unterstützt Unterstützt Unterstützt5 Unterstützt Unterstützt Unterstützt
Hybridkonnektivität Unterstützt Unterstützt6 Unterstützt Unterstützt Unterstützt7 Unterstützt Nicht unterstützt Unterstützt

Notizen

  1. Bei Verwendung eines Verbrauchsplans. Bei Verwendung eines App Service-Plans werden Funktionen auf den VMs ausgeführt, die Ihrem App Service-Plan zugeordnet sind. Weitere Informationen finden Sie unter Auswählen des richtigen Serviceplans für Azure Functions.
  2. Höhere SLA mit mindestens zwei Instanzen.
  3. Empfohlen für Produktionsumgebungen.
  4. Kann nach Abschluss eines Auftrags auf 0 herunterskaliert werden.
  5. Erfordert App Service-Umgebung (App Service Environment, ASE).
  6. Verwenden Sie Azure App Service-Hybridverbindungen.
  7. Erfordert App Service Plan oder Azure Functions Premium-Plan.

DevOps

Kriterien Virtual Machines App Service Azure Spring Cloud Service Fabric Azure-Funktionen Azure Kubernetes Service Container Instances Azure Batch
Lokales Debugging Agnostisch IIS Express, weitere1 Visual Studio Code, Intellij, Eclipse Lokaler Knotencluster Visual Studio oder Azure Functions-Befehlszeilenschnittstelle Minikube, andere Lokale Containerruntime Nicht unterstützt
Programmiermodell Agnostisch Web- und API-Anwendungen, WebJobs für Hintergrundtasks Spring Boot, Steeltoe Ausführbare Gastdatei, Dienstmodell, Akteurmodell, Container Funktionen mit Auslösern Agnostisch Agnostisch Befehlszeilenanwendung
Anwendungsupdate Keine integrierte Unterstützung Bereitstellungsslots Paralleles Upgrade, Blau-Grün-Bereitstellung Rollierendes Upgrade (pro Dienst) Bereitstellungsslots Paralleles Update Nicht verfügbar

Notizen

  1. Optionen umfassen IIS Express für ASP.NET oder node.js (iisnode); PHP-Webserver; Azure Toolkit für IntelliJ, Azure Toolkit für Eclipse. App Service unterstützt auch das Remotedebuggen einer bereitgestellten Web-App.
  2. Informationen dazu finden Sie unter Anbieter, Regionen, API-Versionen und Schemas für den Ressourcen-Manager.

Skalierbarkeit

Kriterien Virtual Machines App Service Azure Spring Cloud Service Fabric Azure-Funktionen Azure Kubernetes Service Container Instances Azure Batch
Automatische Skalierung VM-Skalierungsgruppen Integrierter Dienst Integrierter Dienst VM-Skalierungsgruppen Integrierter Dienst Automatisches Skalieren von Pods1, automatisches Skalieren von Clustern2 Nicht unterstützt
Load Balancer Azure Load Balancer Integriert Integriert Azure Load Balancer Integriert Azure Load Balancer oder Application Gateway Keine integrierte Unterstützung Azure Load Balancer
Skalierungslimit3 Plattformimage: 1.000 Knoten pro Skalierungsgruppe, benutzerdefiniertes Image: 600 Knoten pro Skalierungsgruppe 30 Instanzen, 100 mit App Service-Umgebung 500 App-Instanzen in Standard 100 Knoten pro Skalierungsgruppe 200 Instanzen pro Funktionen-App 100 Knoten pro Cluster (Standardgrenzwert) 20 Containergruppen pro Abonnement (Standardgrenzwert) 20 Kerne (Standardgrenzwert)

Notizen

  1. Informationen finden Sie unter Automatisches Skalieren von Pods.
  2. Informationen finden Sie unter Automatisches Skalieren eines Clusters zur Erfüllung von Anwendungsanforderungen in Azure Kubernetes Service (AKS).
  3. Weitere Informationen finden Sie unter Einschränkungen für Azure-Abonnements und Dienste, Kontingente und Einschränkungen.

Verfügbarkeit

Kriterien Virtual Machines App Service Azure Spring Cloud Service Fabric Azure-Funktionen Azure Kubernetes Service Container Instances Azure Batch
SLA SLA für Virtual Machines SLA für App Service SLA für Azure Spring Cloud SLA für Service Fabric SLA für Functions SLA für AKS SLA für Container Instances SLA für Azure Batch
Failover über mehrere Regionen Traffic Manager Traffic Manager Traffic Manager, regionsübergreifender Cluster Azure Front Door Traffic Manager Nicht unterstützt Nicht unterstützt

Geführte Tutorials zu Servicegarantien finden Sie unter Core Cloud Services – Azure-Architektur und Servicegarantien.

Sicherheit

Machen Sie sich mit den verfügbaren Sicherheitskontrollen und Sichtbarkeiten der einzelnen Dienste vertraut.

Andere Kriterien

Kriterien Virtual Machines App Service Spring Cloud-App Service Fabric Azure-Funktionen Azure Kubernetes Service Container Instances Azure Batch
SSL In VM konfiguriert Unterstützt Unterstützt Unterstützt Unterstützt Eingangscontroller Verwenden eines Sidecar-Containers Unterstützt
Kosten Windows, Linux App Service – Preise Azure Spring Cloud, Preise Service Fabric – Preise Azure Functions – Preise AKS – Preise Container Instances – Preise Azure Batch – Preise
Geeignete Architekturstile n-schichtig, Big Compute (HPC) Web-Warteschlange-Worker, n-schichtig Spring Boot, Microservices Microservices, ereignisgesteuerte Architektur Microservices, ereignisgesteuerte Architektur Microservices, ereignisgesteuerte Architektur Microservices, Automatisierung von Aufgaben, Batchaufträge Big Compute (HPC)

Die Ausgabe dieses Flussdiagramms stellt einen Ausgangspunkt für Ihre Überlegungen dar. Führen Sie als Nächstes eine ausführlichere Auswertung des Diensts durch, um zu ermitteln, ob er Ihren Anforderungen entspricht.

Abwägen von Grenzwerten und Kosten

Führen Sie eine ausführlichere Auswertung der folgenden Aspekte des Diensts aus:

Nächste Schritte