Container-Fakten: Nicht ohne meinen Orchestrierer

Mit Containern beschleunigen Unternehmen ihre Softwarebereitstellungszyklen und skalieren Betriebsabläufe, um den Anforderungen eines schnelllebigen Marktes gerecht zu werden.

Das Container-Ökosystem wächst und entwickelt sich stetig, um der zunehmenden Dynamik gerecht zu werden. Wo stehen wir aber heute, da Orchestrierung und Automatisierung zu einem integralen Bestandteil der Bereitstellung und Verwaltung von Containern geworden sind? Um diese Frage zu beantworten, hat Datadog mehr als 1,5 Milliarden Container, die von Zehntausenden Kunden betrieben werden, analysiert.

Anzeige

Fast 90 Prozent der Container sind orchestriert

Da Containerumgebungen immer größer und komplexer werden, wird die Orchestrierung für die Verwaltung dieser dynamischen Arbeitslasten immer wichtiger. Durch die Verwendung eines Orchestrators zur Automatisierung von Aspekten des Container-Deployments und der -Wartung können Unternehmen nicht nur schneller in den Live-Betrieb gehen, sondern auch sicherstellen, dass ihre Anwendungen zuverlässig und skalierbar laufen. Orchestrierung ist heute die Norm für Container-Umgebungen aller Größenordnungen – in der Regel werden 90 Prozent der Container von Kubernetes, Amazon ECS, Mesos oder Nomad orchestriert.

Kubernetes läuft in der Hälfte der Container-Umgebungen

Kubernetes ist dabei der De-facto-Standard für die Container-Orchestrierung. Heute nutzt die Hälfte der Unternehmen mit Containern Kubernetes; sei es in selbst verwalteten Clustern oder über einen Cloud-Service wie Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS) oder Amazon Elastic Kubernetes Service (EKS). Die Akzeptanz von Kubernetes hat sich seit 2017 mehr als verdoppelt und wächst ungebremst weiter.

Kubernetes veröffentlicht jedes Quartal eine neue Minor-Version, die den Usern neue Funktionen und Verbesserungen bietet. Aber trotz dieses schnellen Entwicklungszyklus nutzen die meisten Unternehmen ältere, etablierte Versionen. Im Herbst 2020 war v1.15 die am weitesten verbreitete Version, auch wenn sie zu diesem Zeitpunkt bereits 17 Monaten alt war.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

CPU und Speicher nicht ausgelastet

Kubernetes-User haben die Möglichkeit, per Request die Mindestmenge an Ressourcen vorzugeben, die ein Pod benötigt, um auf einem Knoten eingeplant zu werden. Dabei geht es immer auch um das richtige Gleichgewicht zwischen Kosten und Performance. Wenn Pods mehr Ressourcen anfordern, als sie tatsächlich verbrauchen, kann Kubernetes zwar effizient terminieren, aber teure Ressourcen bleiben ungenutzt geblockt. Der Vergleich zwischen den CPU- und Speicher-Requests von Containern mit ihrer tatsächlichen Nutzung zeigt, dass die meisten Container die angeforderten Ressourcen nicht voll auslasten: 49 Prozent der Container verbrauchen weniger als 30 Prozent ihrer angeforderten CPU. 74 Prozent der Container verbrauchen sogar weniger als 80 Prozent. Der Rest liegt brach. Ähnlich ist die Diskrepanz zwischen Speicherzuweisung und -nutzung: 45 Prozent der Container nutzen weniger als 30 Prozent des angeforderten Speichers und 78 Prozent der Container weniger als 80 Prozent.

Um die optimale Anforderungsgröße für einen Pod zu bestimmen, sollte berücksichtigt werden, wie stark die Auslastung einer Anwendung schwankt, wie gut die Anwendung mit einem Ressourcenmangel umgeht, wie schnell Knoten hochskaliert werden können und wie viel Verzögerung akzeptabel ist. Eine Request-Spezifizierung, die sich an den tatsächlichen Nutzungsmustern orientieren, stellt nicht nur sicher, dass genügend Ressourcen vorhanden sind, um Lastspitzen auszugleichen, sondern kann Kubernetes auch dabei helfen, Pods effizienter zu planen. Im gleichen Zuge sollte auch die ideale Größe der Knoten überprüft werden. Die durchschnittliche Knotengröße ist in den letzten Jahren gewachsen, doch auch hier sollten Kosten- und Performance-Gesichtspunkte gegeneinander abgewogen werden.

Container

GKE, AKS und EKS dominieren ihre Plattformen

Da die User Kubernetes nutzen, nutzen sie auch zunehmend Managed Kubernetes-Dienste wie Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS) und Amazon Elastic Kubernetes Service (EKS). GKE, der erste Managed Service, dominiert auch fünf Jahre nach seiner Veröffentlichung noch immer in der Google Cloud. Ungefähr 90 Prozent der Unternehmen verlassen sich hier bei der Verwaltung ihrer zunehmend dynamischen Umgebungen auf GKE. AKS und EKS, beides relativ neue Dienste, haben in den letzten Jahren ebenfalls einen starken Aufschwung erlebt. AKS entwickelt sich schnell zur Norm für Kubernetes-User auf Azure und wird von zwei Dritteln eingesetzt. Unterdessen legt EKS zwar weiter stetig zu, kommt aber erst auf eine Abdeckung von knapp über 50 Prozent.

AWS-Container lieben Fargate Mit dem Serverless-Dienst AWS Fargate laufen Container ohne Verwaltung der zugrundeliegenden Infrastruktur. Und die Nutzung von Fargate in AWS-Container-Umgebungen nimmt stetig zu. Heute nutzen 32 Prozent der Unternehmen mit Containern in der AWS-Cloud Fargate, gegenüber 19 Prozent vor einem Jahr und 6 Prozent vor zwei Jahren. Die schnelle Entwicklung von Fargate dürfte zu diesem Trend beitragen. Während Fargate beim Launch 2017 zunächst nur den Amazon Elastic Container Service (ECS) unterstützte, kam Ende letzten Jahres die Unterstützung des Amazon Elastic Kubernetes Service (EKS) hinzu.

Die Hälfte aller Container wird extern verwaltet

Docker Hub ist seit langem die wichtigste Registrierungsstelle für den Bau und die Verwaltung von Containeranwendungen. Obwohl Docker Hub nach wie vor beliebt ist, wird die Hälfte der Container-Images inzwischen in von Cloud-Anbietern verwalteten Registern und in Registern von Drittanbietern gehostet. Azure Container Registry, Amazon Elastic Container Registry und Google Container Registry machen 39 Prozent der Images aus, während der restliche Teil auf Drittanbieter-Register entfällt. Unter den Lösungen von Drittanbietern sind GitLab Container Registry und JFrog Container Registry führend.

Im Blick behalten

Moderne, orchestrierte Container-Umgebungen werden immer größer und komplexer. Unterschiedliche Programmiersprachen und Container-Images, Service-Meshes, DaemonSets und Serverless-Funktionen – die Liste der individuellen Container-Ausprägungen in einzelnen Unternehmen ist lang. Die eigenen Services in Gänze zu verstehen und effektiv zu skalieren, kann da schnell zur Herausforderung werden. Ein entsprechendes Monitoring ist daher essentiell, um in Echtzeit Einblick in den Zustand und die Leistung dynamischen Container-Infrastrukturen zu liefern und die Überwachung der Container im Kontext der gesamten Infrastruktur sicherzustellen.

Marx Stefan

Datadog -

Director Product Management EMEA

Marx ist seit über 20 Jahren in der IT-Entwicklung und -Beratung tätig. In den vergangenen Jahren arbeitete er mit verschiedenen Architekturen und Techniken wie Java Enterprise Systemen und spezialisierten Webanwendungen. Seine Tätigkeitsschwerpunkte liegen in der Planung, dem Aufbau und dem Betrieb der Anwendungen mit Blick auf die Anforderungen und Problemstellungen hinter den konkreten
Anzeige

Artikel zu diesem Thema

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.