Azure Container Services – Modern, effizient und unverzichtbar
Schneller, schlanker, effizienter - die Container-Technologie transformiert die Art und Weise, wie Unternehmen Software entwickeln und bereitstellen. Erfahrt mehr darüber, wie Microsoft Azure als führende Plattform für das Hosting von Containern dient und wie sie die Agilität und Skalierbarkeit von Anwendungen entscheidend verbessern kann.
In unserer schnelllebigen Welt sind Unternehmen ständig mit neuen Herausforderungen konfrontiert, die schnelle und flexible Lösungen erfordern. Eine Schlüsseltechnologie, die diesen Anforderungen gerecht wird, sind Container. Sie ermöglichen es, Softwareentwicklungs- und Bereitstellungsprozesse effizient zu gestalten und an das rasante Tempo der digitalen Transformation anzupassen.
Container, die Grundbausteine moderner CI/CD-Workflows, bieten eine minimalistische und effiziente Laufzeitumgebung, die nur die essenziellen Komponenten zur Ausführung einer Anwendung beinhaltet. Durch die Trennung von zusätzlichen Bestandteilen, die vom Hostsystem bereitgestellt werden, verkürzen Container die Start- und Aktualisierungszeiten erheblich.
Es stellt sich nun die Frage, wie dieses Potenzial am besten genutzt und gemanagt werden kann.
Container Lösungen auf Azure
Microsoft Azure bietet eine breite Palette an Möglichkeiten, Container zu betreiben. Die Optionen reichen von Full Managed Solutions, bei denen Microsoft einen Großteil der Infrastrukturkonfiguration übernimmt, bis hin zu Light Managed Solutions, bei denen das Management und die Pflege des Hostsystems in eigener Verantwortung liegen.
Hier eine Auflistung der Container Hosting Möglichkeiten auf Azure von Light to Full Managed:
- Azure Kubernetes Services (AKS)
- Azure Container Instances (ACI)
- Azure WebApp for Containers
- Azure Container Apps (ACA)
Jeder dieser Dienste bietet seine eigenen Vorteile, abhängig vom geplanten Einsatzszenario.
Die Azure Container Registry (ACR) ermöglicht die zentrale Speicherung von Containern in der eigenen Azure-Umgebung und bietet eine integrierte Lösung, um ACR als Quelle für die verwendeten Container-Images zu nutzen.
Spotlight: Azure Container Apps
Die neueste Hosting-Option für Container von Microsoft sind die Azure Container Apps (ACA). Im Vergleich zu AKS übernimmt Microsoft hier das komplette Management des darunterliegenden Kubernetes, inklusive Updates, Upgrades und Skalierung.
Als Grundlage dient ein sogenanntes Azure Container App Environment, bei dem Microsoft vollständig verwaltete Kubernetes-Ressourcen bereitstellt, die von den Applikationen genutzt werden können. Unterschiedliche Workload-Profile bieten verschiedene Kombinationen aus CPU/RAM und auch die Nutzung von GPU-Systemen.
Der Hauptvorteil dieser Lösung liegt darin, dass man sich lediglich auf seine Anwendung und die applikationsspezifische Konfiguration konzentrieren muss, ohne sich um das Clustermanagement kümmern zu müssen.
ACA bieten vielseitige Möglichkeiten, Anwendungen einfach mit weiteren Azure-Services zu verbinden. So können zum Beispiel FileShares aus einem Azure Storage Account in die eigenen Container eingebunden werden, um persistente Daten zwischen Neustarts oder Versionswechseln der Anwendung zu sichern.
Ein weiteres Feature von ACA ist das sogenannte A/B- oder Green/Blue-Testing, bei dem zwei Versionen einer Anwendung gleichzeitig betrieben werden. Der eingehende Traffic wird zwischen den laufenden Instanzen aufgeteilt, was schnelle Erkenntnisse über den aktuellen Entwicklungsstand ermöglicht und es erlaubt, Bugs direkt zu beheben.
Beispiel aus der Praxis: GitHub Runner on Azure Container Apps
Ein praktisches Beispiel: CI/CD-Workflows benötigen eine Umgebung, in der sie ausgeführt werden können. GitHub sowie Azure DevOps und andere Anbieter stellen öffentliche Agents zur Verfügung, auf denen die Workflows ausgeführt werden können. Diese Runner werden von GitHub verwaltet und kommunizieren über öffentliche Endpunkte. Benötigt man jedoch Zugriff auf interne Ressourcen oder möchte nicht auf öffentlichen Systemen arbeiten, lassen sich diese Runner auch im eigenen Netzwerk betreiben.
Traditionell wurden hierfür 24/7 laufende virtuelle Maschinen verwendet. Azure Container Apps bieten eine kosteneffiziente und skalierbare Alternative. Durch die Nutzung von KEDA (Kubernetes Event Driven Autoscaler) wird eine Verbindung zur eigenen GitHub-Umgebung aufgebaut. ACA überwacht, ob ein Workflow gestartet wurde, startet einen Container zur Ausführung des Workflows und entfernt ihn anschließend wieder. Läuft kein Workflow, wird auch kein Container gestartet, was die Kosten niedrig hält.
Die Skalierbarkeit der Lösung ist ein weiterer Vorteil, da für jeden Workflow eine eigenständige Containerinstanz erstellt wird. Im Vergleich zu einer virtuellen Maschine, wo meist nur ein einzelner Agent einen Workflow bedient, bietet dies eine flexible und effiziente Alternative.
Zusammenfassung
Container bieten eine hervorragende Möglichkeit, die eigene Entwicklung und das Deployment von Applikationen zu modernisieren. Microsoft Azure bietet mit seinem umfangreichen Portfolio an Services die passende Lösung, egal ob man selbst das Management übernehmen möchte oder sich vollständig auf die eigene Applikation konzentrieren will.