Azure Container optimal nutzen: mehr Performance für Ihre Cloud
Welche Azure-Container-Services wirklich zu Ihren Anforderungen passen

Container-Technologien haben die Entwicklung, Bereitstellung und Skalierung von Anwendungen grundlegend verändert. Sie bieten eine effiziente, portable und ressourcenschonende Alternative zu klassischen virtuellen Maschinen und ermöglichen Unternehmen, ihre Software-Landschaft flexibler und kosteneffizienter zu gestalten.
Azure stellt eine Vielzahl an Container-Services zur Verfügung, die unterschiedliche Anforderungen abdecken – von der einfachen Bereitstellung einzelner Anwendungen bis hin zur komplexen Orchestrierung containerisierter Microservices-Architekturen [1]. Doch welche Lösung ist die passende für Ihr Unternehmen?
Soll es eine schnell einsetzbare, verwaltete Plattform wie der Azure App Service sein, oder benötigen Sie mehr Kontrolle und Skalierbarkeit, wie sie der Azure Kubernetes Service (AKS) bietet? Vielleicht suchen Sie eine flexible Lösung wie Azure Container Apps, die sich automatisch an die Last anpasst, oder eine minimalistische Möglichkeit, einzelne Container ohne Overhead auszuführen, wie mit Azure Container Instances (ACI).
Dieser Artikel führt Sie durch die wichtigsten Azure-Container-Services, erklärt ihre Einsatzmöglichkeiten sowie Vor- und Nachteile und unterstützt Sie dabei, die beste Lösung für Ihre spezifischen Anforderungen zu finden. Egal, ob Sie eine einfache Web-Anwendung hosten oder hochverfügbare, containerisierte Workloads in großem Maßstab betreiben möchten – hier erhalten Sie einen Überblick über die Möglichkeiten, die Azure bietet.
Was sind Container?
Container haben die Art und Weise, wie Anwendungen entwickelt, bereitgestellt und betrieben werden, grundlegend geändert. Sie ermöglichen es, Software in einer isolierten Umgebung auszuführen, die alle notwendigen Abhängigkeiten enthält – unabhängig davon, wo sie betrieben wird.
Die Grundlage für viele moderne Container-Technologien bildet der offene Standard der Open Container Initiative (OCI) [2]. Dieser definiert, wie Container beschrieben und ausgeführt werden, und sorgt für Kompatibilität zwischen verschiedenen Plattformen und Laufzeitumgebungen. Eine der bekanntesten Implementierungen dieser Standards ist Docker, eine Runtime, die Container anhand einer vordefinierten Beschreibung erstellt und ausführt. Wer hier noch Alternativen sucht, kann sich Podman und Rancher anschauen.
Im Vergleich zu virtuellen Maschinen (VMs) bieten Container einen entscheidenden Vorteil: Sie benötigen kein eigenes Host-Betriebssystem, sondern teilen sich die Ressourcen des zugrunde liegenden Systems. Während jede VM ein vollständiges Betriebssystem mit eigenen Treibern und Konfigurationen mitbringt – was zusätzlichen Speicher und Rechenleistung erfordert – sind Container schlanker, da sie nur das enthalten, was für den Betrieb der Anwendung notwendig ist. Dadurch starten sie deutlich schneller und nutzen die verfügbaren Ressourcen effizienter [3].
Ein weiteres wesentliches Merkmal von Containern ist ihre Portabilität. Ein einmal erstellter Container läuft auf nahezu jeder Infrastruktur gleich – sei es lokal auf einem Entwicklerrechner, auf On-premises-Servern oder in der Cloud. Dies erleichtert nicht nur die Entwicklung und das Testen von Anwendungen, sondern ermöglicht auch eine einfache Skalierung, da zusätzliche Container innerhalb von Sekunden gestartet werden können.
Allerdings bringt die Nutzung von Containern auch neue Herausforderungen mit sich. Themen wie Netzwerkkonfiguration, Sicherheitsrichtlinien und die Verwaltung von Container-Images müssen berücksichtigt werden. Zudem ist es wichtig, regelmäßig Schwachstellen in Container-Images zu überprüfen, da veraltete oder unsichere Abhängigkeiten ein erhebliches Sicherheitsrisiko darstellen können.
Die Erstellung eines Containers beginnt typischerweise mit einem Dockerfile, das die Basisfunktionalitäten eines Containers beschreibt [4]. Hier wird definiert, welches Betriebssystem genutzt wird, welche Abhängigkeiten installiert werden und welche Anwendung ausgeführt wird. Aus diesem Dockerfile wird anschließend ein Container-Image erstellt – eine Art Bauplan, der alle notwendigen Konfigurationen enthält. Beim Starten eines Containers wird dieses Image geladen und in einer isolierten Umgebung ausgeführt.
Für komplexere Anwendungen, die aus mehreren Containern bestehen, kann Docker Compose genutzt werden [5]. Mit einer Docker-Compose-Datei lassen sich mehrere Container orchestrieren, sodass sie miteinander über ein gleiches Netzwerk kommunizieren, ein gemeinsames Dateisystem verwenden und auch bestimmte Einstellungen wie Umgebungsvariable vorkonfiguriert werden können.
Das Wissen über Container-Technologien bildet die Grundlage für den erfolgreichen Betrieb moderner Anwendungen in der Cloud. Die Möglichkeit, fertige Container-Images in eine Cloud-Plattform hochzuladen und dort auszuführen, macht sie zu einer idealen Lösung für skalierbare und flexible Software-Architekturen.
Microsoft-Azure-Services im Überblick
Azure bietet eine breite Palette an Services für unterschiedliche Szenarien im Umgang mit Containern. Diese Services decken eine Vielzahl von Anwendungsfällen ab, von einfachen Lösungen für das Hosten von Webanwendungen bis hin zu komplexeren Szenarien, die eine umfassende Kontrolle, Skalierbarkeit und spezielle Funktionen erfordern.
Es gibt Optionen für das Hosten und Verwalten von Container-Images, wie etwa Azure Container Registry (ACR), sowie für das Betreiben und Orchestrieren von Containern, wobei Lösungen wie Azure Kubernetes Service (AKS) und Azure App Service verschiedene Anforderungen an Flexibilität und Verwaltungsaufwand abdecken.
Darüber hinaus bietet Azure auch spezialisierte Services, die über die grundlegende Container-Orchestrierung hinausgehen, wie etwa Azure Batch für hochparallele Datenverarbeitungsaufgaben oder Azure Service Fabric, das sich ideal für die Entwicklung und den Betrieb komplexer verteilter Systeme eignet. Für Szenarien, in denen Flexibilität und kurzfristige Ausführung gefragt sind, bietet Azure auch Dienste wie Azure Container Instances (ACI), die eine kosteneffiziente Möglichkeit bieten, Container ohne dauerhafte Infrastruktur zu betreiben.
Die große Auswahl an Services ermöglicht es, für nahezu jedes Szenario die passende Lösung zu finden. Die Entscheidung hängt dabei von den spezifischen Anforderungen des Projekts ab, ob Sie maximale Kontrolle und Flexibilität benötigen oder eine vereinfachte, vollständig verwaltete Lösung bevorzugen.
Azure Container Registry
Container-Images sicher speichern und verwalten
Azure Container Registry (ACR) ist ein Dienst in Azure, der es ermöglicht, Container-Images sicher zu speichern und zu verwalten [6]. Dabei können sowohl eigene als auch öffentliche Images abgelegt und in anderen Azure-Diensten genutzt werden. ACR kann entweder als private Registry betrieben werden, um unternehmenseigene Images zu speichern und vor unbefugtem Zugriff zu schützen, oder als öffentliche Registry, um Images für externe Nutzende bereitzustellen. Alle Azure-Services unterstützen eine direkte Integration mit ACR sowie den Zugriff auf externe Registries wie den Docker Hub.
Ein wichtiger Aspekt bei der Nutzung von Container-Registries ist die Entscheidung, ob Anwendungen ausschließlich mit eigenen Images oder auch mit externen Images betrieben werden sollen. Der Einsatz externer Images aus öffentlichen Quellen wie dem Docker-Hub kann Risiken mit sich bringen, da sie aus öffentlichen Registries entfernt oder durch unsichere Versionen ersetzt werden könnten. Unternehmen sollten daher eine Strategie für das Management und die Sicherung dieser Abhängigkeiten entwickeln. Dabei kann der Container-Cache genutzt werden, um externe Images in der eigenen Container-Registry zu speichern [7].
Azure Container Registry ist ein essenzieller Bestandteil für den Betrieb von Containern in Azure.
Die Azure Container-Registry ist strukturell einfach aufgebaut und basiert auf sogenannten Repositories, in denen unterschiedliche Images in verschiedenen Versionen (Tags) gespeichert werden. Dabei stellt sich die Frage, wie die Registry organisiert werden soll [8]. Eine Möglichkeit ist, für jede Anwendung ein eigenes Repository mit mehreren Versionen zu nutzen. Alternativ kann eine zentrale Struktur gewählt werden, in der Images nach Release-Stufen wie Beta, Staging oder Production verwaltet werden. Neben der reinen Organisation der Images spielt auch das Berechtigungsmanagement eine entscheidende Rolle. ACR bietet mit Scope Maps eine flexible Möglichkeit festzulegen, welche Repositories oder Pfade innerhalb eines Repositories von welchen Nutzenden gelesen, geschrieben oder gelöscht werden dürfen [9].
Bei der Planung einer Container-Registry sollte zudem die grundsätzliche Strategie für die Infrastruktur berücksichtigt werden. Eine Option ist es, pro Projekt eine eigene Registry zu erstellen, während eine andere Möglichkeit darin besteht, eine zentrale Registry für das gesamte Unternehmen zu nutzen. Die Wahl hängt von verschiedenen Faktoren ab, insbesondere vom benötigten Sicherheitsniveau, der gewünschten Isolation zwischen Teams und Projekten sowie von Kostenüberlegungen. ACR wird in verschiedenen Leistungsstufen angeboten (Basic, Standard und Premium), die sich hinsichtlich Preis und Funktionalität unterscheiden. Die Nutzung einer einzigen zentralen Registry kann Kosten optimieren, insbesondere wenn Premium-Features wie Content-Signierung oder Image-Replikation über mehrere Regionen hinweg genutzt werden sollen.
Ein weiteres wichtiges Thema ist die Nutzung von ACR in unterschiedlichen Umgebungen wie Entwicklung, Staging und Produktion. Falls eine strikte Trennung der Umgebungen erforderlich ist, kann es sinnvoll sein, für jede Umgebung eine separate Registry einzurichten.
Neben der Speicherung von Images bietet ACR auch integrierte Funktionen zur Verwaltung und Sicherheit von Containern. Dazu gehört die Möglichkeit, alte Images automatisiert zu bereinigen, um Speicherplatz zu sparen und unnötige Kosten zu vermeiden [10]. Zudem lassen sich mit Defender for Containers Sicherheitsprüfungen durchführen, um Schwachstellen in den Images frühzeitig zu identifizieren [11]. Diese Sicherheitsfunktionen sind besonders relevant, da Container-Images oft Abhängigkeiten von Drittanbietern enthalten, die regelmäßig auf Sicherheitslücken überprüft werden sollten.
Azure Container Registry ist ein essenzieller Bestandteil für den Betrieb von Containern in Azure und ermöglicht eine sichere, effiziente Verwaltung von Images. Unternehmen können klein starten und ihre Registry bei Bedarf skalieren. Entscheidend ist, von Anfang an eine durchdachte Struktur für Repositories und Berechtigungen zu etablieren, um den Zugriff effizient zu steuern und einen sicheren Betrieb zu gewährleisten.
Azure App Service
Web-Anwendungen in der Azure-Cloud effizient hosten
Azure App Service ist eine leistungsfähige Plattform zum Hosten von Web-Anwendungen in der Azure Cloud [12]. Viele Nutzende setzen den Dienst ein, indem sie die Binaries ihrer Anwendungen direkt hochladen, die dann vom App Service betrieben werden. Alternativ besteht die Möglichkeit, statt einzelner Dateien ein Docker-Image oder sogar Docker Compose zu nutzen [13]. Letzteres erlaubt es, mehrere Anwendungen innerhalb desselben App Service zu starten, beispielsweise eine Web-Anwendung in Kombination mit einer Datenbank, einem Cache oder Diensten für Hintergrundaufgaben.
Die Nutzung von Container-Images anstelle klassischer Deployments der Binaries bietet mehrere Vorteile. Zum einen lassen sich Abhängigkeiten und Laufzeitumgebungen explizit im Image definieren, sodass keine zusätzlichen Installationen auf dem Betriebssystem des App Service erforderlich sind. Dadurch wird sichergestellt, dass eine Anwendung immer in einer vordefinierten Umgebung läuft, unabhängig davon, auf welcher Instanz sie betrieben wird. Zum anderen sind Rollbacks einfacher, da ein fehlerhaftes Deployment einfach durch das Bereitstellen einer vorherigen Image-Version rückgängig gemacht werden kann, ohne dass veraltete Dateien zurückbleiben – ein Problem, das bei normalen Datei-Deployments auftreten kann. Zudem garantiert die Nutzung von lokal getesteten Container-Images eine höhere Konsistenz zwischen Entwicklungs-, Test- und Produktionsumgebungen.
Ein Nachteil dieser Methode ist der zusätzliche Verwaltungsaufwand. Container-Images müssen zunächst erstellt, getestet und anschließend in eine Container-Registry hochgeladen werden, bevor sie im App Service genutzt werden können. Dies erfordert eine durchdachte CI/CD-Pipeline sowie eine Strategie zur Verwaltung von Image-Versionen. Zudem können durch die Nutzung einer Registry zusätzliche Kosten entstehen.
Hinsichtlich der Skalierbarkeit verhält sich ein Container-basierter App Service ähnlich wie die klassische Variante. Die horizontale Skalierung erfolgt durch das Hinzufügen weiterer Instanzen, auf denen das Container-Image parallel läuft. Damit dies effizient funktioniert, muss die zugrunde liegende Anwendung zustandslos sein, sodass mehrere Instanzen gleichzeitig Anfragen bearbeiten können.
Für Unternehmen und Entwickler, die ihre Webanwendungen ohnehin in Containern betreiben, bietet Azure App Service eine einfache und verwaltete Hosting-Lösung, die ohne zusätzliche Infrastruktur betrieben werden kann. Insbesondere für Anwendungen mit standardisierten Laufzeitumgebungen oder wenigen externen Abhängigkeiten ist dies eine attraktive Option. Wer jedoch mehr Kontrolle über Skalierung, Netzwerk-Konfigurationen oder die Bereitstellung mehrerer miteinander interagierender Anwendungen benötigt, stößt mit App Service an Grenzen. In solchen Fällen können Azure Kubernetes Service (AKS) oder Azure Container Apps besser geeignete Alternativen sein, auf die wir im weiteren Verlauf eingehen werden.
Zusätzlich sei gesagt, dass Azure Function Apps nach dem gleichen Prinzip funktionieren und daher nicht gesondert in der Übersicht aufgeführt sind. Sie können ebenfalls Container nutzen, die auf dem Function Host basieren, wodurch sich serverlose Funktionen flexibel und portabel bereitstellen lassen. Vorteile sind die automatische Skalierung, die Möglichkeit, eigene Abhängigkeiten und Laufzeitumgebungen mitzubringen, sowie die flexible Bereitstellung in Kubernetes, On-Premises oder Azure Container Apps.
Azure Kubernetes Service (AKS)
Containerisierte Anwendungen leichter bereitstellen, skalieren und verwalten
Azure Kubernetes Service (AKS) ist ein vollständig verwalteter Kubernetes-Dienst in Azure, der die Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen erleichtert [14]. Ein großer Vorteil von AKS ist, dass Azure die Verwaltung der zugrunde liegenden Infrastruktur übernimmt. Die Wartung und Skalierung der Knoten (Nodes), auf denen die Container laufen, erfolgt automatisch, sodass sich Nutzer ausschließlich auf das Management ihrer Kubernetes-Cluster und die Bereitstellung ihrer Anwendungen konzentrieren können.
Im Vergleich zu Azure App Service, bei dem Anwendungen innerhalb eines App-Service-Plans gemeinsame Ressourcen nutzen, bietet ein Kubernetes-Cluster eine deutlich flexiblere Architektur. AKS stellt individuelle Nodes bereit, die gezielt für den Betrieb von Containern optimiert sind. Kubernetes selbst ist ein Orchestrierungssystem, das Automatisierungsfunktionen für die Bereitstellung, Skalierung und das Lifecycle-Management von Containern bereitstellt. In diesem Artikel wird nicht tief in die Funktionsweise von Kubernetes eingetaucht, aber grundsätzlich ermöglicht Kubernetes die effiziente Verwaltung komplexer, verteilter Anwendungen.
Im Gegensatz zum Azure App Service bietet AKS deutlich mehr Konfigurationsmöglichkeiten in Bezug auf Infrastruktur, Netzwerk-Setups und die gezielte Verteilung von Anwendungen auf verschiedene Knoten. Dies macht Kubernetes besonders attraktiv für Unternehmen, die mehrere containerisierte Anwendungen betreiben, flexibel skalieren und individuell verwalten möchten. Auch für Lift-and-Shift-Szenarien, bei denen bestehende Anwendungen ohne große Änderungen in die Cloud migriert werden sollen, bietet sich AKS an, da es eine moderne Alternative zur Verwaltung von virtuellen Maschinen bietet. Dieses kann auch mit Azure Arc verknüpft werden, über den on-premise Kubernetes-Cluster in Azure angebunden und von dort verwaltet werden können. So lassen sich langsam die lokalen Ressourcen in die Cloud migrieren.
Kubernetes ist definitiv eine leistungsfähige Lösung.
Wer jedoch eine einfache Möglichkeit sucht, containerisierte Anwendungen zu deployen, ohne sich mit der Verwaltung der Kubernetes-Architektur beschäftigen zu müssen, kann mit Azure App Service oder Azure Container Apps eine deutlich schlankere Lösung wählen. Gerade Kubernetes-Anfänger stehen vor einer steilen Lernkurve, da Konzepte wie Pods, Deployments, Services und Ingress-Controller eine gewisse Einarbeitung erfordern.
Eine Alternative zu AKS stellt Microsoft Service Fabric dar – eine Plattform, die bereits vor der weiten Verbreitung von Kubernetes von Microsoft entwickelt wurde [15]. Service Fabric basiert ebenfalls auf einer Cluster-Architektur und eignet sich insbesondere für stateful und stateless Anwendungen. Neben Containern können dort auch klassische Anwendungen ohne Containerisierung betrieben werden.
Sowohl bei AKS als auch bei Service Fabric besteht die zugrunde liegende Infrastruktur aus virtuellen Maschinen, die die Hauptkostenfaktoren ausmachen. Je nach Anzahl der benötigten Knoten und deren Ausstattung mit CPU, Arbeitsspeicher und Speicherplatz variiert die Kostenstruktur erheblich.
Für Unternehmen, die über einfache Webanwendungen hinausgehen und komplexe, skalierbare Architekturen betreiben möchten, ist Kubernetes definitiv eine leistungsfähige Lösung. Wer jedoch die Vorteile von Kubernetes nutzen möchte, ohne sich mit dessen Verwaltungsaufwand auseinanderzusetzen, findet mit Azure Container Apps eine attraktive Alternative, die Kubernetes-Funktionalitäten abstrahiert und den Betrieb vereinfacht.
Azure Container Apps (ACA)
Containerisierte Anwendungen ohne Kubernetes-Komplexität verwalten
Azure Container Apps (ACA) ist ein vollständig verwalteter Container-Service in Azure, der auf Azure Kubernetes Service (AKS) basiert [16]. Im Gegensatz zu AKS nimmt ACA Nutzenden die gesamte Cluster-Verwaltung ab, sodass sie die Vorteile von Kubernetes nutzen können, ohne sich um Infrastruktur, Skalierung oder Wartung kümmern zu müssen. Dadurch eignet sich der Dienst besonders für Unternehmen, die containerisierte Anwendungen betreiben möchten, aber nicht die Komplexität eines eigenen Kubernetes-Clusters verwalten wollen.
Ein entscheidender Vorteil von ACA ist das kostenoptimierte Preismodell.
Innerhalb von ACA gibt es sogenannte "Environments", die mehrere Container-Anwendungen auf einer gemeinsamen Infrastruktur gruppieren. Dies erleichtert die Kommunikation zwischen Anwendungen innerhalb eines Environments, ohne dass aufwendige Netzwerkkonfigurationen erforderlich sind. Wenn Anwendungen voneinander isoliert werden sollen, empfiehlt es sich, für jede Anwendung ein eigenes Environment anzulegen.
Innerhalb eines Environments können Container-Apps erstellt werden, die aus einem oder mehreren Containern bestehen und sich dieselben Ressourcen teilen. ACA unterstützt eine dynamische Skalierung, bei der Anwendungen flexibel skaliert werden können, indem zusätzliche Container-Instanzen automatisch gestartet oder gestoppt werden. Besonders nützlich ist die Revisionsverwaltung, mit der sich verschiedene Versionen einer Anwendung parallel betreiben lassen. Dies ermöglicht kontrollierte Rollbacks, Blue/Green Deployments und Canary Releases, um neue Versionen schrittweise in Betrieb zu nehmen.
Ein entscheidender Vorteil von ACA ist das kostenoptimierte Preismodell, das sich von AKS unterscheidet. Während bei AKS gewisse Grundkosten anfallen, kann ACA bis auf null skalieren, sodass keine Kosten anfallen, wenn keine Anfragen bearbeitet werden. Zudem bietet ACA einen Consumption Plan, bei dem nur für die tatsächlich genutzten Ressourcen wie CPU, Speicher und eingehende Requests gezahlt wird. Dies macht den Dienst besonders attraktiv für ereignisgesteuerte Workloads oder Anwendungen mit unregelmäßigem Traffic, da ungenutzte Instanzen automatisch heruntergefahren werden.
Azure-Services für Spezialfälle
Es gibt zwei Azure-Services, die Container unterstützen und als Sonderfälle betrachtet werden können. Der erste ist Azure Container Instances. Dieser Service stellte die ursprüngliche Methode dar, um mehrere Container in einer Instanz zu betreiben, bevor Azure Container Apps eingeführt wurden, die für Benutzer entwickelt wurden, die Kubernetes als zu komplex empfinden [17]. Der Hauptvorteil von Container Instances liegt in der granularen Steuerung über die Ausführung der Container. Diese Flexibilität eignet sich besonders gut für externe Anwendungen wie beispielsweise einen eigenen SFTP-Server oder eine selbst gehostete Datenbank. Die Preisgestaltung erfolgt basierend auf den verbrauchten Ressourcen wie CPU und Arbeitsspeicher – und zwar nur, wenn die Container tatsächlich ausgeführt werden. Eine Container-Instanz kann vollständig gestoppt werden, was sich besonders für Anwendungen eignet, die nicht rund um die Uhr laufen müssen, sondern nur bei Bedarf. So lässt sich der Betrieb effizienter und kostensparender gestalten. Mit der Einführung von Azure Container Apps, die das vollautomatisierte Skalieren bis auf null ermöglichen, hat Container Instances jedoch eine eher randständige Rolle übernommen. Container Apps bieten mittlerweile ähnliche Möglichkeiten zur Kostenoptimierung und Skalierung, was dazu führt, dass Container Instances in den meisten Szenarien nicht mehr häufig verwendet werden.
Ein weiterer Azure-Service, der in der Praxis weniger häufig genutzt wird, ist Azure Batch [18]. Dieser Service ermöglicht das Ausführen hochparallelisierter Jobs auf einer Vielzahl virtueller Maschinen. Ähnlich wie App Services unterstützt Azure Batch die Möglichkeit, nicht nur herkömmliche Binaries, sondern auch Container zu betreiben. Der Vorteil dieses Ansatzes liegt darin, dass Container mit eigenen Abhängigkeiten und vorinstallierter Software ausgestattet werden können, die für die Ausführung der hochparallelen Aufgaben erforderlich sind. Die Preisgestaltung von Azure Batch richtet sich nach den verbrauchten Ressourcen – also CPU, Arbeitsspeicher, Laufzeit und der Anzahl der verwendeten Knoten. Für Unternehmen, die große Aufgaben parallel und mit hoher Geschwindigkeit bearbeiten möchten, stellt Azure Batch eine leistungsstarke Option dar.
Cloud auf den diesjährigen IT-Tagen
Spannende Vorträge und Workshops zum Thema Cloud erwarten Euch auch auf den IT-Tagen, der Jahreskonferenz von Informatik Aktuell. Die IT-Konferenz findet jedes Jahr im Dezember in Frankfurt statt – dieses Jahr vom 08.-11.12.
Fazit
Die Wahl des richtigen Container-Services in Azure hängt maßgeblich von den spezifischen Anforderungen, der gewünschten Flexibilität und den vorhandenen Ressourcen ab. Wenn Sie eine schnelle, vollständig verwaltete Lösung für Webanwendungen suchen, bietet sich Azure App Service an. Möchten Sie jedoch Anwendungen in Containern betreiben, aber gleichzeitig einen möglichst einfachen Betrieb ohne tiefgehende Verwaltung und auch eine sehr flexible Skalierung, dann sind Azure Container Apps eine ausgezeichnete Wahl.
Für komplexe, hochskalierbare Anwendungen, die spezifische Anforderungen an Netzwerk, Sicherheit und Deployment stellen, ist Azure Kubernetes Service (AKS) die leistungsfähigste, aber auch anspruchsvollste Lösung. AKS bietet umfassende Kontrolle und Anpassungsfähigkeit, ist jedoch auch mit einer höheren Komplexität in der Verwaltung und dem Betrieb verbunden. Wenn Sie hingegen kurzfristige Workloads ausführen möchten, die nicht kontinuierlich laufen müssen, sind Azure Container Instances (ACI) eine kostengünstige und flexible Alternative, die Dir erlaubt, Container nur bei Bedarf zu starten und zu stoppen, ohne dass eine dauerhafte Infrastruktur erforderlich ist.
Für hochparallele Berechnungen oder datenintensive Verarbeitungsszenarien könnte Azure Batch die beste Wahl sein. Dieser Service ist besonders gut für rechenintensive Aufgaben geeignet, bei denen viele Prozesse parallel ausgeführt werden müssen, beispielsweise in der Simulation oder in der Datenverarbeitung.
Letztlich gibt es keine universelle Lösung. Die richtige Wahl hängt von Ihren spezifischen Use Cases, dem Know-how im Umgang mit Containern und der langfristigen Strategie ab. Mit der richtigen Auswahl können Sie die Vorteile der Cloud optimal nutzen, Anwendungen effizient betreiben und gleichzeitig Kosten optimieren. Azure bietet eine breite Palette an Lösungen für Container-Anforderungen – die Herausforderung besteht darin, die für Ihr Unternehmen passende Option zu finden.
Folgende Tabelle gibt eine Übersicht über Services, ihre Vor- und Nachteile, das Pricing als auch eine Auswahl der möglichen Use Cases.
Tabelle 1: Übersicht über Azure Container Services
Azure Service | Vorteile | Nachteile | Pricing | Use Cases |
Azure App Service | Vollständig verwaltete Plattform für Webanwendungen. Einfache CI/CD-Integration. | Eingeschränkte Kontrolle über Infrastruktur. Limitierungen bei "Lift and Shift". | Mittel, abhängig von Ressourcen. | Hosten von Web-Anwendungen in Containern. Anpassung des App Service Base Images. |
Azure Container Apps | Einfache Bereitstellung und Verwaltung von containerisierten Anwendungen. Skalierung bis Null. Viele Funktionen out-of-the-box (z. B. DAPR, KEDA, Secrets, Ingress). | Eingeschränkte Kontrolle. Komplexe Konzepte und Features erfordern Einarbeitung. | Niedrig bis mittel, abhängig von Last und Ressourcen. | Scale-to-zero-Szenarien, Kubernetes Light, schnelle Bereitstellung ohne Infrastrukturverwaltung. |
Azure Kubernetes Service (AKS) | Vollständig verwalteter Kubernetes-Dienst. Hohe Verfügbarkeit, Fehlertoleranz und starkes Ökosystem. | Erfordert Kubernetes-Kenntnisse (steile Lernkurve). | Hoch, abhängig von Clustergröße und Ressourcen. | Vollständige Verwaltung und Orchestrierung von Containern, Versionierung, Failover. |
Azure Container Instances (ACI) | Schnelle, einfache Ausführung von Containern ohne zusätzliche Verwaltung. Ad-hoc-Stop möglich. | Eingeschränkte Infrastrukturkontrolle. Nicht für komplexe Anwendungen geeignet. Kein Scale-to-zero. | Mittel, abhängig von Ressourcen. | Kurzlebige Aufgaben, Batch-Aufträge, geringe Ressourcenanforderungen. |
Azure Batch | Effiziente Ausführung von parallelen Batch-Workloads. Intelligentes Scheduling und Verwaltung. | Höherer Verwaltungsaufwand, besonders bei Infrastrukturverwaltung. | Mittel, abhängig von VMs und Ressourcen. | Parallele Verarbeitung, rechenintensive Workloads. |
Azure Service Fabric | Unterstützt stateless und stateful Services. Hohe Flexibilität für komplexe Anwendungen. | Komplexität in der Verwaltung und Überwachung des Clusters. Erfordert spezifisches Wissen. | Hoch, abhängig von Clustergröße und Ressourcen. | Microservice-Architekturen mit stateful Services, Alternative zu AKS. |
- Azure Containers
- Open Container Initiative
- Containers vs. Virtual Machines
- Dockerfile
- Docker Compose
- Azure Container Registry
- Manage public content in private container registry
- About registries, repositories, and artifacts
- Permissions to Repositories in Azure Container Registry
- Automatically purge images from an Azure container registry
- Container protection in Defender for Cloud
- Azure App Service
- Configure a custom container for Azure App Service
- Azure Kubernetes Service
- Azure Service Fabric
- Azure Container Apps
- Azure Container Instances
- Azure Batch