Amazon Elastic Container Service (ECS) et Kubernetes sont les deux orchestrateurs les plus utilisateurs de conteneurs. C’est ce qui ressort de la dernière édition du rapport intitulé 8 Emerging trends in container Orchestration publié par le spécialiste du monitoring des services cloud Datadog.

Quelle domination de Kubernetes ? Quel orchestrateur favori en environnements AWS ? Quelle influence de l’orchestration sur la durée de vie des conteneurs ? Comment varie la densité des conteneurs en fonction de l’orchestration ? Autant de questions auxquelles cette nouvelle édition publiée par Datadog apporte des réponses.

Ce rapport résulte d’une compilation de données d’usage de milliers d’entreprises utilisant les services de Datadog, qui quotidiennement exécutent collectivement des millions de conteneurs. De la start-up aux sociétés du Fortune 100, l’éditeur indique que les entreprises de son portefeuille clients représentent la plupart des industries. Un peu comme si Amazon donnait des tendances sur la lecture à partir des interactions clients sur son site Internet. Cette précaution d’usage étant prise, le rapport de Datadog permet de dégager des tendances sur l’utilisation des conteneurs dont la première conclusion est que la conteneurisation n’est plus une technologie de niche et plus de 35% des clients de Datadog comptant au moins 500 hôtes ont adopté la technologie Docker.

Dans cette enquête, précise l’éditeur, sont exclus les conteneurs qui ne sont pas en liaison avec des charges de travail réelles, telles que les conteneurs DNS, l’Agent Datadog, l’Agent ECS, les conteneurs du système Kubernetes et les composants d’administration des clusters (addon-resizer, kubernetes-dashboard, heapster, etc.).

8 fortes tendances d’orchestration des conteneurs émergent de ce rapport

ECS l’emporte dans AWS, mais Kubernetes domine ailleurs
L’environnement de services cloud dans lequel évoluent les conteneurs semble fortement influencer le choix de l’orchestrateur. Dans l’univers AWS, qui domine assez largement le marché du cloud public, c’est Elastic Container Service (Amazon ECS) qui est le premier choix devant Kubernetes. Dans les autres environnements ainsi que dans les data centers sur site, c’est ce dernier qui est utilisé en priorité.

Kubernetes et Docker en pointe
Les conteneurs Docker sont de plus en plus utilisés et la solution d’orchestration Kubernetes est de plus en plus utilisé pour gérer ces conteneurs. Le cumul de ces deux tendances entraîne une accélération de la domination de Kubernetes. Datadog indique cela correspond à une augmentation d’environ 50% des clients de Datadog qui utilisent Kubernetes.

ECS en environnements AWS Docker gagne du terrain
En environnements AWS, les sociétés adoptent de plus en plus Amazon ECS pour gérer l’ensemble de leurs conteneurs. En octobre 2017, ECS détenait 34% des parts des environnements Docker dans AWS, comparé à 27% en janvier 2017. Avec un usage accru de Docker dans AWS, cela correspond à une croissance effective d’environ 40%.

L’orchestration réduit de 40% la durée de vie des hôtes Docker
Au-delà du parc de conteneurs, l’orchestration intervient également au niveau de l’infrastructure sous-jacente. Au sein des clusters orchestrés par ECS ou Kubernetes, les hôtes ont une durée de vie moyenne d’environ 10 jours, contre 17 jours pour les hôtes Docker sans orchestration, et 23 jours pour les hôtes non-Docker.

L’orchestration permet donc aux entreprises de se concentrer sur les services et charges de travail, et de traiter les hôtes comme des unités d’infrastructure consommables qui peuvent être automatiquement provisionnées ou détruites en fonction de la demande. C’est précisément dans ce but que les conteneurs ont été créés et donc le résultat correspond aux attentes et permet aux DSI de se concentrer sur les applications et les projets et d’alléger les tâches de gestion d’infrastructure.

Les conteneurs Kubernetes se renouvèlent 8 x plus vite que les conteneurs ECS
En environnement Kubernetes, les conteneurs ont une durée de vie de 1,5 jour, comparé à 12 jours pour les conteneurs orchestrés par ECS. Cet écart est en partie dû à la disponibilité des objets Kubernetes qui mettent fin automatiquement aux conteneurs une fois qu’ils ont achevé leur exécution.

ECS exécute moins d’images standards
Au sein des clusters Kubernetes, on observe un large déploiement d’images de conteneurs pour les technologies d’infrastructures courantes telles que NGINX, ElasticSearch, and Postgres. Les mêmes images ont tendance également à apparaitre en environnements Docker non orchestrés, bien qu’en moindre quantité. Mais au sein des clusters ECS, l’étude montre une très faible adoption des images courantes de conteneurs publiquement disponibles. Il en résulte que de nombreux utilisateurs d’ECS ont adopté des services AWS hébergés tels qu’Amazon RDS (Relational Database Service), Amazon ElasticSearch Service, et Amazon SQS (Simple Queue Service), plutôt que des services conteneurisés de ces composants d’architecture.

La densité de conteneurs de Kubernetes est supérieure à celle d’ECS
Chaque hôte d’une entreprise qui utilise Kubernetes exécute environ neuf conteneurs sur une période d’échantillonnage de 5 minutes, comparé à trois conteneurs en environnements ECS. Combiné au taux de renouvellement de conteneurs d’un facteur 5, il apparait que les utilisateurs de Kubernetes exécutent de nombreux conteneurs légers à courte durée de vie, tandis qu’ECS gère des conteneurs à durée de vie plus longue de type applications indépendantes.

La plupart des entreprises combinent conteneurs les plus récents avec versions spécifiques
En extrayant une image de conteneur d’un hub Docker ou d’un autre registre, l’utilisateur peut retrouver une version spécifique d’une image à partir d’un tag. Trois entreprises sur quatre utilisent un mélange de tags visant à extraire l’image la plus récente dans certains cas et une version particulière dans d’autres. Environ 16% des entreprises utilisent exclusivement le tag le plus récent (par défaut avec Docker, si le tag n’est pas précisé) et 10% un tag spécifique exclusivement.

 


Zoom sur Amazon ECS et Amazon EKS

Amazon Elastic Container Service (Amazon ECS) est un service de gestion de conteneurs qui prend en charge les conteneurs Docker et vous permet d’exécuter des applications sur un cluster géré d’instances Amazon EC2. Avec Amazon ECS, grâce à des appels d’API, il est possible de lancer et d’arrêter les applications activées par des conteneurs Docker, connaître l’état complet des clusters et d’accéder à des fonctionnalités courantes telles que les groupes de sécurité, Elastic Load Balancing, les volumes EBS et les rôles IAM. Amazon Elastic Container Service est disponible sans frais supplémentaires.

Amazon Elastic Container Service for Kubernetes (Amazon EKS) est un service géré qui permet d’exécuter Kubernetes sur AWS sans devoir installer et faire fonctionner ses propres clusters Kubernetes. L’utilisation de Kubernetes pour les applications de production présente un certain nombre de défis. Avec Amazon EKS, les mises à niveau et la haute disponibilité sont gérées automatiquement par AWS. Amazon EKS est également intégré à de nombreux services AWS pour assurer la scalabilité et la sécurité des applications, notamment Elastic Load Balancing pour la répartition des charges, IAM pour l’authentification, Amazon VPC pour l’isolation, AWS PrivateLink pour l’accès au réseau privé et AWS CloudTrail pour la journalisation.