Freigeben über


Wählen Sie einen Azure-Containerdienst

Azure bietet eine Reihe von Container-Hosting-Diensten, die für verschiedene Arbeitslasten, Architekturen und Geschäftsanforderungen ausgelegt sind. Dieser Leitfaden zur Auswahl des Containerdiensts kann Ihnen helfen, zu verstehen, welcher Azure-Containerdienst am besten für Ihre Arbeitslastzenarien und Anforderungen geeignet ist.

Hinweis

In diesem Leitfaden bezieht sich der Begriff Workload auf eine Sammlung von Anwendungsressourcen, die ein Geschäftsziel oder die Ausführung eines Geschäftsprozesses unterstützen. Eine Workload verwendet mehrere Dienste wie APIs und Datenspeicher, die zusammenarbeiten, um bestimmte End-to-End-Funktionen bereitzustellen.

Verwendung dieses Leitfadens

Dieses Handbuch enthält zwei Artikel: diesen Einführungsartikel und einen weiteren Artikel zu für alle Workloadtypen freigegeben Übelegungen werden.

Hinweis

Wenn Sie sich noch nicht für die Containerisierung entschieden haben, lesen Sie den Abschnitt Auswählen eines Azure-Computediensts, um Informationen zu anderen Computeoptionen zu erhalten, die Sie zum Hosten Ihrer Workload verwenden können.

In diesem Einführungsartikel werden die Azure-Containerdienste beschrieben, die im Rahmen dieses Leitfadens betrachtet werden, und wie sich die Dienstmodelle hinsichtlich der Abwägungen zwischen konfigurierbaren und meinungsbasierten Lösungen vergleichen lassen, zum Beispiel zwischen vom Kunden verwalteten und von Microsoft verwalteten Ansätzen. Nachdem Sie potenzielle Dienste basierend auf Ihren Präferenzen für das Dienstmodell identifiziert haben, besteht der nächste Schritt darin, die Optionen anhand Ihrer Workload-Anforderungen zu bewerten, indem Sie den Artikel zu geteilten Überlegungen für Netzwerke, Sicherheit, Betrieb und Zuverlässigkeit überprüfen.

Dieser Leitfaden berücksichtigt die Kompromisse, die Sie je nach den technischen Anforderungen, dem Umfang und der Komplexität Ihres Workloads und dem Fachwissen Ihres Workload-Teams möglicherweise eingehen müssen.

Azure-Containerdienste im Umfang dieses Handbuchs

Dieser Leitfaden konzentriert sich auf eine Teilmenge der Containerdienste, die Azure derzeit anbietet. Diese Teilmenge bietet einen ausgereiften Featuresatz für Webanwendungen und APIs, Netzwerk, Observability, Entwicklertools und -vorgänge. Folgende Containerdienste werden verglichen:

Azure Container Apps Logo

Azure Container Apps ist eine vollständig verwaltete Plattform, die Ihnen die Möglichkeit bietet, containerisierte Anwendungen auszuführen, ohne sich um Orchestrierung oder Infrastruktur kümmern zu müssen. Weitere Informationen hierzu finden Sie in der Dokumentation von Azure Container Apps.

AKS-Logo

Azure Kubernetes Service (AKS) ist ein verwalteter Kubernetes Dienst zum Ausführen containerisierter Anwendungen. Mit AKS können Sie die Vorteile der verwalteten Add-ons und Erweiterungen für zusätzliche Funktionen nutzen und gleichzeitig ein Höchstmaß an Konfigurierbarkeit beibehalten. Weitere Informationen finden Sie in AKS Dokumentation.

App Service-Logo

Web App für Container ist eine Funktion von Azure App Service, einem vollständig verwalteten Dienst für das Hosten von HTTP-basierten Web-Apps mit integrierter Infrastrukturwartung, Sicherheits-Patching, Skalierung und Diagnose-Tools. Weitere Informationen finden Sie in der App Service-Dokumentation.

Eine vollständige Liste aller Azure-Containerdienste finden Sie auf der Produktkategorieseite für Containerdienste.

Überlegungen zum Dienstleistungsmodell

Das Dienstleistungsmodell bietet den größtmöglichen Einblick in die Flexibilität und Kontrolle, die jeder Azure-Containerdienst bietet, im Austausch für die allgemeine Einfachheit und Benutzerfreundlichkeit.

Eine allgemeine Einführung in die Terminologie und Konzepte rund um Dienstmodelle, einschließlich Infrastruktur as a Service (IaaS) und Plattform as a Service (PaaS), finden Sie unter Gemeinsame Verantwortung in der Cloud.

Vergleich der Dienstleistungsmodell von Azure-Containerlösungen

AKS

Als Hybrid von IaaS und PaaS priorisiert AKS die Kontrolle über die Einfachheit und nutzt dabei den de facto Standard für die Container-Orchestrierung: Kubernetes. Obwohl AKS die Verwaltung der zugrunde liegenden Kerninfrastruktur optimiert, ist diese VM-basierte Plattform weiterhin für Ihre Anwendungen verfügbar und erfordert geeignete Schutzläufe und Prozesse, z. B. Patching, um Sicherheit und Geschäftskontinuität sicherzustellen. Die Computeinfrastruktur wird von zusätzlichen Azure-Ressourcen unterstützt, die direkt in Ihrem Abonnement gehostet werden, z. B. Azure-Lastenausgleichsgeräte.

AKS bietet auch Zugriff auf den Kubernetes-API-Server, mit dem Sie die Container-Orchestrierung anpassen und damit Projekte von der Cloud Native Computing Foundation (CNCF) bereitstellen können. Daher gibt es eine signifikante Lernkurve für Workload-Teams, die für Kubernetes neu sind. Wenn Sie mit containerisierten Lösungen noch nicht fertig sind, muss diese Lernkurve berücksichtigt werden. Die folgenden PaaS-Lösungen bieten eine niedrigere Einstiegsbarriere. Sie können zu Kubernetes wechseln, wenn Ihre Anforderungen die Verschiebung diktieren.

AKS Automatic

AKS Automatic vereinfacht die Einführung von Kubernetes durch die Automatisierung komplexer Clustermanagementaufgaben, wodurch die Notwendigkeit umfassender Kubernetes-Expertise reduziert wird. Es bietet eine optimierte, paaS-ähnliche Erfahrung, während die Flexibilität und Erweiterbarkeit von Kubernetes beibehalten wird. Azure behandelt Clustersetup, Knotenbereitstellung, Skalierung, Sicherheitspatching und wendet standardmäßig einige bewährte Konfigurationen an. Dies reduziert den Betriebsaufwand, verfügt jedoch über einen eingeschränkten Satz verfügbarer Topologieoptionen.

Hinweis

In diesem Leitfaden wird zwischen AKS Standard und AKS Automatic unterschieden, sofern zutreffend. Andernfalls kann davon ausgegangen werden, dass die beschriebene Funktionalität sowohl zwischen Standard- als auch automatischen Angeboten gleich ist.

Azure Container Apps

Azure Container Apps ist eine Abstraktionsschicht auf Kubernetes, die es Ihren Apps erlaubt, ausgeführt und skaliert zu werden, ohne dass Sie die zugrunde liegende Infrastruktur direkt verwalten müssen. Container Apps bietet sowohl serverless als auch dedizierte Compute-Optionen, so dass Sie die volle Kontrolle über die Art und Menge der für Ihre Anwendungen verfügbaren Ressourcen haben. Wenn die Containerorchestrierungs-APIs abstrahiert werden, bietet Container Apps weiterhin sofortigen Zugriff auf wichtige Features wie Layer 7-Eingang, Datenverkehrsteilung, A/B-Tests und Anwendungslebenszyklusverwaltung.

Web-App für Container

Web App für Container ist auch ein PaaS-Angebot, bietet aber mehr Einfachheit und weniger Kontrolle als Container-Apps. Es abstrahiert von der Container-Orchestrierung, bietet aber dennoch eine angemessene Skalierung, Verwaltung des Anwendungslebenszyklus, Aufteilung des Datenverkehrs, Netzwerkintegration und Beobachtbarkeit.

Überlegungen zum Hostingmodell

Sie können Azure-Ressourcen wie AKS-Cluster verwenden, um mehrere Workloads zu hosten. Auf diese Weise können Sie Vorgänge optimieren und dadurch die Gesamtkosten reduzieren. Wenn Sie diesen Pfad auswählen, sind hier einige wichtige Überlegungen aufgeführt:

  • AKS wird in der Regel zum Hosten mehrerer Workloads oder unterschiedlicher Workload-Komponenten verwendet. Sie können diese Workloads und Komponenten isolieren, indem Sie systemeigene Kubernetes-Funktionen wie Namespaces, Zugriffssteuerungen und Netzwerksteuerelemente verwenden, um die Sicherheitsanforderungen zu erfüllen.

    Sie können AKS auch in Einzelarbeitslastszenarien verwenden, wenn Sie die zusätzlichen Funktionen benötigen, die die Kubernetes-API bereitstellt, und Ihr Arbeitslastteam über genügend Erfahrung verfügt, um einen Kubernetes-Cluster zu betreiben. Teams mit weniger Kubernetes-Erfahrung können weiterhin ihre eigenen Cluster erfolgreich betreiben, indem sie von von Azure verwalteten -Add-Ons und Features wie automatischen Clusterupgradesnutzen, um den Betriebsaufwand zu reduzieren.

  • Container Apps sollte verwendet werden, um eine einzelne Workload mit einer gemeinsamen Sicherheitsgrenze zu hosten. Container-Apps verfügen über eine einzige logische Grenze auf oberster Ebene, die als Container-Apps-Umgebung bezeichnet wird, die auch als erweiterte Sicherheitsgrenze dient. Es gibt keine Mechanismen für eine zusätzliche granulare Zugriffssteuerung. Beispielsweise ist die Kommunikation innerhalb der Umgebung uneingeschränkt, und alle Anwendungen teilen einen einzigen Log Analytics-Arbeitsbereich.

    Wenn die Workload über mehrere Komponenten und mehrere Sicherheitsgrenzen verfügt, stellen Sie mehrere Container-Apps-Umgebungen bereit, oder erwägen Sie stattdessen AKS.

  • Web-App für Container ist ein Feature von App Service. App Service gruppiert Anwendungen in einer Abrechnungsgrenze, die als App Service-Plan. bezeichnet wird. Da Sie rollenbasierte Zugriffssteuerung (RBAC) auf Anwendungsebene festlegen können, ist es möglicherweise verlockend, mehrere Workloads in einem einzigen Plan zu hosten. Es wird jedoch empfohlen, eine einzelne Workload pro Plan zu hosten, um das Problem "Lauter Nachbar" zu vermeiden. Alle Apps in einem einzelnen App Service-Plan verwenden den gleichen zugewiesenen Compute, Arbeitsspeicher und Speicher.

    Wenn Sie die Hardwareisolation in Betracht ziehen, müssen Sie beachten, dass App Service-Pläne in der Regel auf der Infrastruktur ausgeführt werden, die für andere Azure-Kunden freigegeben ist. Sie können dedizierte Ebenen für dedizierte VMs oder isolierte Ebenen für dedizierte virtuelle Computer in einem dedizierten virtuellen Netzwerk auswählen.

Im Allgemeinen können alle Azure-Containerdienste mehrere Anwendungen hosten, die über mehrere Komponenten verfügen. Container-Apps und die Web App für Container eignen sich jedoch besser für eine einzelne Workload-Komponente oder mehrere stark miteinander verbundene Workload-Komponenten, die denselben Lebenszyklus haben und von einem einzigen Team betreut und ausgeführt werden.

Wenn Sie verschiedenartige und möglicherweise nicht zusammenhängende Anwendungskomponenten oder Workloads auf einem Host unterbringen müssen, sollten Sie AKS in Betracht ziehen.

Der Kompromiss zwischen Kontrolle und Benutzerfreundlichkeit

AKS bietet die größte Konfigurierbarkeit, aber diese Konfigurierbarkeit erfordert mehr betrieblichen Aufwand im Vergleich zu den anderen Diensten. Obwohl Container Apps und Web App for Containers beides PaaS-Dienste sind, die ein ähnliches Maß an von Microsoft verwalteten Funktionen aufweisen, legt Web App for Containers den Schwerpunkt auf Einfachheit, um seine Zielgruppe anzusprechen: bestehende Azure PaaS-Kunden, denen die Schnittstelle vertraut ist.

Faustformel

Im Allgemeinen eignen sich Dienste, die mehr Einfachheit bieten, für Kunden, die sich lieber auf die Funktionsentwicklung statt auf die Infrastrukturverwaltung konzentrieren möchten. Dienste, die mehr Kontrolle bieten, sind geeignet für Kunden, die mehr Konfigurierbarkeit benötigen. Diese Kunden verfügen über die Fähigkeiten, Ressourcen und die geschäftliche Begründung, die für die Verwaltung ihrer eigenen Infrastruktur erforderlich sind.

Gemeinsame Überlegungen für alle Workloads

Obwohl ein Workloadteam möglicherweise ein bestimmtes Dienstleistungsmodell bevorzugt, erfüllt dieses Modell möglicherweise nicht die Anforderungen der Gesamten Organisation. Entwickler bevorzugen z. B. weniger betrieblichen Aufwand, aber Sicherheitsteams können diese Art von Aufwand berücksichtigen, der zur Erfüllung der Complianceanforderungen erforderlich ist. Teams müssen zusammenarbeiten, um die entsprechenden Kompromisse zu erzielen.

Beachten Sie, dass gemeinsame Überlegungen weit gefasst sind. Je nach Workloadtyp, aber auch ihrer Rolle innerhalb der Organisation kann nur eine Teilmenge für Sie relevant sein.

Die folgende Tabelle enthält eine Übersicht über Überlegungen, einschließlich Vergleiche von Servicefunktionen. Überprüfen Sie die Überlegungen in jeder Kategorie, und vergleichen Sie sie mit den Anforderungen Ihrer Workload.

Kategorie Übersicht
Überlegungen zum Networking Das Netzwerk in Azure-Containerdiensten variiert je nach Ihren Vorlieben für die Einfachheit im Vergleich zur Konfigurierbarkeit. AKS ist sehr konfigurierbar und bietet umfassende Kontrolle über den Netzwerkfluss, erfordert jedoch mehr operationellen Aufwand. Container-Apps bieten von Azure verwaltete Netzwerkfeatures. Es ist eine Mitte zwischen AKS und Web App für Container, die auf Kunden zugeschnitten ist, die mit App Service vertraut sind.

Entscheidend ist, dass Entscheidungen im Netzwerkentwurf langfristige Folgen haben können, da es schwierig ist, Änderungen vorzunehmen, ohne Workloads erneut bereitzustellen. Verschiedene Faktoren, z. B. IP-Adressplanung, Lastenausgleichsaufgaben, Methoden zur Dienstermittlung und private Netzwerkfunktionen, unterscheiden sich in diesen Diensten. Sie sollten sorgfältig überprüfen, wie die Dienste bestimmte Netzwerkanforderungen erfüllen.
Überlegungen zur Sicherheit Container-Apps, AKS und Web App für Container bieten alle die Integration mit wichtigen Azure-Sicherheitsangeboten wie Azure Key Vault und verwalteten Identitäten. AKS bietet zusätzliche Features wie Laufzeit-Bedrohungsschutz und Netzwerkrichtlinien. Obwohl paaS-Dienste wie Container-Apps weniger Sicherheitsfeatures bieten, liegt dies zum Teil daran, dass mehr der zugrunde liegenden Infrastrukturkomponenten von Azure verwaltet werden und nicht für Kunden verfügbar gemacht sind, was das Risiko verringert.
Überlegungen zur Verwendung AKS bietet die meisten Anpassungsmöglichkeiten, erfordert jedoch einen höheren betrieblichen Aufwand. Im Gegensatz dazu lassen PaaS-Lösungen wie Container-Apps und Web-App für Container Azure Aufgaben wie Betriebssystemupdates übernehmen. Skalierbarkeit und Hardware-SKU-Flexibilität sind entscheidend. AKS bietet flexible Hardwareoptionen, während Container-Apps und Web App für Container weniger Optionen bieten. Die Anwendungsskalierbarkeit in AKS liegt in der Verantwortung des Kunden, was bedeutet, dass Sie jede Kubernetes-kompatible Lösung anwenden können. AKS Automatic, Container Apps und Web App for Containers konzentrieren sich auf einfachere Ansätze.
Überlegungen zur Zuverlässigkeit Die Konfigurationen für den Integritätstest von Web-Apps für Container und Container Apps sind im Vergleich zu AKS begrenzt, aber einfacher einzurichten, da sie die bekannte Azure Resource Manager API verwenden. AKS erfordert die Verwendung der Kubernetes-API. Außerdem müssen Sie die zusätzliche Verantwortung für die Verwaltung der Skalierbarkeit und Verfügbarkeit von Kubernetes-Knotenpools übernehmen, um Anwendungsinstanzen ordnungsgemäß zu planen. Diese Anforderungen führen zu zusätzlichem betrieblichen Aufwand für AKS.

Darüber hinaus sind SLAs für Container-Apps und Web App für Container einfacher zu berechnen als die von AKS, für die die Steuerebene und Knotenpools jeweils über eigene SLAs verfügen und entsprechend zusammengesetzt werden müssen. Alle Dienste bieten Zonenredundanz in den entsprechenden Rechenzentren.

Nachdem Sie die vorstehenden Überlegungen überprüft haben, haben Sie möglicherweise noch nicht die perfekte Passform gefunden. Das ist vollkommen normal.

Kompromisse abwägen

Die Auswahl eines Clouddiensts ist keine einfache Übung. Angesichts der Komplexität von Cloud Computing, der Zusammenarbeit zwischen vielen Teams und Ressourceneinschränkungen mit Personen, Budgets und Zeit hat jede Lösung Nachteile.

Beachten Sie, dass für jede bestimmte Workload einige Anforderungen möglicherweise kritischer sind als andere. Ein Anwendungsteam bevorzugt z. B. eine PaaS-Lösung wie Container-Apps, wählt jedoch AKS aus, da sein Sicherheitsteam standardmäßige Netzwerksteuerelemente zwischen komponenten für die verlagerte Workload erfordert, bei dem es sich um ein Nur-AKS-Feature handelt, das Kubernetes-Netzwerkrichtlinien verwendet.

Beachten Sie schließlich, dass die vorherigen gemeinsamen Überlegungen die häufigsten Anforderungen enthalten, aber nicht umfassend sind. Es liegt in der Verantwortung des Workloadteams, jede Anforderung anhand des Featuresatzes des bevorzugten Diensts zu untersuchen, bevor eine Entscheidung bestätigt wird.

Zusammenfassung

In diesem Handbuch werden die häufigsten Überlegungen beschrieben, denen Sie beim Auswählen eines Azure-Containerdiensts begegnen. Es wurde entwickelt, um Teams, die mit der Arbeitslast befasst sind, bei fundierten Entscheidungen zu unterstützen. Der Prozess beginnt mit der Auswahl eines Clouddienstmodells, bei dem die gewünschte Steuerungsebene bestimmt wird. Die Kontrolle geht auf Kosten der Einfachheit. Mit anderen Worten, es ist ein Prozess der Suche nach dem richtigen Gleichgewicht zwischen einer selbstverwalteten Infrastruktur und einer, die von Microsoft verwaltet wird.

Viele Workload- Teams können einen Azure-Containerdienst ausschließlich basierend auf dem bevorzugten Dienstmodell auswählen: PaaS im Vergleich zu IaaS. Andere Teams müssen weiter untersuchen, um zu ermitteln, wie dienstspezifische Features Workload oder Organisationsanforderungen erfüllen.

Alle Workload- Teams sollten diesen Leitfaden zusätzlich zur Einbeziehung von Due Diligence verwenden, um schwierig zu rückgängig zu machende Entscheidungen zu vermeiden. Beachten Sie jedoch, dass die Entscheidung erst bestätigt wird, wenn Entwickler den Dienst ausprobieren und basierend auf Erfahrung und Theorie entscheiden.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautoren:

Andere Mitwirkende:

Nächster Schritt

Erfahren Sie mehr über gemeinsame architektonische Überlegungen für die Dienste, die in diesem Artikel Erwähnung.