Vergleich von Container-Apps mit anderen Azure-Containeroptionen
Es stehen zahlreiche Optionen für Teams zur Verfügung, um cloudnative und containerisierte Anwendungen in Azure zu entwickeln und bereitzustellen. Dieser Artikel hilft Ihnen zu verstehen, welche Szenarien und Anwendungsfälle sich am besten für Azure Container Apps eignen und wie sie im Vergleich zu anderen Containeroptionen in Azure abschneiden. Zum Beispiel:
- Azure Container Apps
- Azure App Service
- Azure Container Instances
- Azure Kubernetes Service
- Azure-Funktionen
- Azure Spring Apps
- Azure Red Hat OpenShift
Es gibt keine perfekte Lösung für jeden Anwendungsfall und jedes Team. Die folgenden Erläuterungen bieten allgemeine Hinweise und Empfehlungen als Ausgangspunkt, um die beste Lösung für Ihr Team und Ihre Anforderungen zu finden.
Vergleich der Containeroptionen
Azure Container Apps
Mit Azure Container Apps können Sie serverlose Microservices und Aufträge basierend auf Containern erstellen. Zu den besonderen Merkmalen von Container Apps gehören:
- Optimiert für die Ausführung von universellen Containern, insbesondere für Anwendungen, die sich über viele in Containern bereitgestellte Microservices erstrecken.
- Basiert auf Kubernetes und Open-Source-Technologien wie Dapr, KEDA und envoy
- Unterstützung für Apps im Kubernetes-Stil und Microservices mit Features wie Dienstermittlung und Datenverkehrstrennung
- Ermöglicht ereignisgesteuerte Anwendungsarchitekturen durch Unterstützung einer Skalierung auf Grundlage des Datenverkehrs und des Abrufs von Ereignisquellen wie z. B. Warteschlangen, einschließlich Skalierung auf 0
- Unterstützt die Ausführung von bedarfsbasierten, geplanten und ereignisgesteuerten Aufträgen.
Azure Container Apps bietet keinen direkten Zugriff auf die zugrunde liegenden Kubernetes-APIs. Wenn Sie Zugriff auf die Kubernetes-APIs und die Steuerungsebene benötigen, sollten Sie Azure Kubernetes Service verwenden. Wenn Sie jedoch Anwendungen im Kubernetes-Stil erstellen möchten und keinen direkten Zugriff auf sämtliche nativen Kubernetes-APIs und die Clusterverwaltung benötigen, bietet Container Apps eine vollständig verwaltete Benutzeroberfläche basierend auf Best Practices. Aus diesen Gründen bevorzugen viele Teams die Erstellung von Container-Microservices mit Azure Container Apps.
Die Schnellstartanleitungen unterstützen Sie beim Erstellen Ihrer ersten Container-App.
Azure App Service
Azure App Service bietet ein vollständig verwaltetes Hosting für Webanwendungen, einschließlich Websites und Web-APIs. Sie können diese Webanwendungen durch Code oder Container bereitstellen. Azure App Service ist für Webanwendungen optimiert. Azure App Service ist in andere Azure-Dienste wie Azure Container Apps oder Azure Functions integriert. Beim Erstellen von Web-Apps ist Azure App Service eine ideale Option.
Azure Container Instances
Azure Container Instances (ACI) bietet einen einzelnen Pod mit Hyper-V-isolierten Containern nach Bedarf. Im Vergleich zu Container Apps kann man sie als „Baustein“-Option auf niedrigerer Ebene betrachten. Konzepte wie Skalierung, Lastenausgleich und Zertifikate werden bei ACI-Containern nicht angewendet. Um beispielsweise auf fünf Containerinstanzen zu skalieren, erstellen Sie fünf verschiedene Containerinstanzen. Azure Container Apps bieten viele anwendungsspezifische Konzepte auf der Grundlage von Containern, darunter Zertifikate, Revisionen, Skalierung und Umgebungen. Benutzer interagieren häufig über andere Dienste mit Azure Container Instances. Beispielsweise kann Azure Kubernetes Service über virtuelle Knoten auf ACI aufsetzen und eine Orchestrierung und Skalierung unterstützen. Wenn Sie einen weniger starren Baustein benötigen, der nicht auf Szenarien ausgerichtet ist, für die Azure Container Apps optimiert wurde, ist Azure Container Instances eine ideale Option.
Azure Kubernetes Service
Azure Kubernetes Service (AKS) bietet eine vollständig verwaltete Kubernetes-Option in Azure. Es unterstützt den direkten Zugriff auf die Kubernetes-API und führt beliebige Kubernetes-Workloads aus. Der vollständige Cluster befindet sich in Ihrem Abonnement, wobei Sie die Kontrolle und Verantwortung für die Clusterkonfigurationen und -vorgänge haben. Teams, die nach einer vollständig verwalteten Version von Kubernetes in Azure suchen, ist Azure Kubernetes Service die ideale Option.
Azure-Funktionen
Azure Functions ist eine serverlose FaaS-Lösung (Functions-as-a-Service). Sie ist für die Ausführung ereignisgesteuerter Anwendungen unter Verwendung des Funktionsprogrammiermodells optimiert. Azure Functions weist viele Gemeinsamkeiten mit Azure Container Apps auf, was die Skalierung und die Integration in Ereignisse betrifft, ist aber für kurzlebige Funktionen optimiert, die entweder als Code oder als Container bereitgestellt werden. Das Programmiermodell von Azure Functions bietet Produktivitätsvorteile für Teams, die die Ausführung Ihrer Funktionen bei Ereignissen auslösen und andere Datenquellen als Bindungsziele verwenden möchten. Für die Entwicklung von Funktionen im FaaS-Stil ist Azure Functions die ideale Option. Das Azure Functions-Programmiermodell steht als Basiscontainerimage zur Verfügung und ist somit auf andere containerbasierte Computeplattformen portierbar, sodass Teams den Code wiederverwenden können, wenn sich die Umgebungsanforderungen ändern.
Azure Spring Apps
Azure Spring Apps ist ein vollständig verwalteter Dienst für Spring-Entwickler. Wenn Sie Spring Boot, Spring Cloud oder jegliche andere Spring-Anwendung in Azure ausführen möchten, ist Azure Spring Apps eine ideale Option. Der Dienst verwaltet die Infrastruktur von Spring-Anwendungen und ermöglicht es Entwicklern dadurch, sich auf ihren Code zu konzentrieren. Azure Spring Apps bietet eine Lebenszyklusverwaltung mit umfassender Überwachung und Diagnose, Konfigurationsverwaltung, Dienstermittlung, CI/CD-Integration, Blau/Grün-Bereitstellungen und mehr.
Azure Red Hat OpenShift
Azure Red Hat OpenShift ist ein integriertes Produkt, das gemeinsam von Red Hat und Microsoft konzipiert, betrieben und unterstützt wird. Diese Zusammenarbeit bietet eine integrierte Produkt- und Supporterfahrung für die Ausführung von OpenShift auf Basis von Kubernetes. Mit Azure Red Hat OpenShift können Teams ihre eigenen Registrierungs-, Netzwerk-, Speicher- und CI/CD-Lösungen auswählen. Stattdessen können sie die integrierten Lösungen für automatisierte Quellcodeverwaltung, Container- und Anwendungsbuilds, Bereitstellungen, Skalierung, Integritätsverwaltung und andere Funktionen von OpenShift verwenden. Wenn Ihr Team oder Ihre Organisation OpenShift verwendet, ist Azure Red Hat OpenShift eine ideale Option.