Qu’est-ce que l’orchestration de conteneurs ?
L’orchestration de conteneurs automatise et simplifie la mise à disposition, le déploiement et la gestion des applications conteneurisées.
Abonnez-vous à la newsletter IBM
Fond bleu et noir
Qu’est-ce que l’orchestration de conteneurs ? 

L’orchestration de conteneurs automatise la mise à disposition des conteneurs, leur déploiement, leur mise en réseau, leur mise à l’échelle, leur disponibilité et la gestion de leur cycle de vie. La plateforme d’orchestration de conteneurs la plus populaire à l’heure actuelle est Kubernetes, c’est pourquoi la plupart des grands fournisseurs de services de cloud public proposent des services Kubernetes gérés, notamment Amazon Web Services (AWS), Google Cloud Platform, IBM Cloud et Microsoft Azure. Il existe néanmoins d’autres outils sur le marché, tels que Docker Swarm et Apache Mesos.

Zoom sur les conteneurs et le besoin d’orchestration

Les conteneurs sont des composants d’application légers et exécutables qui regroupent le code source de l’application et toutes les bibliothèques et dépendances du système d’exploitation nécessaires à l’exécution du code dans n’importe quel environnement. 

La possibilité de créer des conteneurs existe depuis des décennies, mais elle s’est démocratisée en 2008 lorsque Linux a inclus la fonctionnalité de conteneur au sein de son noyau, avant de généraliser largement avec l’arrivée de la plateforme de conteneurisation open source Docker en 2013. (Docker est si populaire que les termes « conteneurs Docker » et « conteneurs » sont souvent utilisés de manière interchangeable). 

Parce qu’ils sont plus petits, plus économes en ressources et plus portables que les machines virtuelles, les conteneurs, et plus précisément les microservices conteneurisés ou les fonctions sans serveur, se sont imposés de facto comme les unités de calcul des applications cloud natives modernes. (Pour en savoir plus sur les avantages des conteneurs, consultez la présentation interactive ci-dessous.)

Il est assez facile de déployer et de gérer manuellement un petit nombre de conteneurs. Or, le nombre d’applications conteneurisées augmente rapidement dans la plupart des organisations, si bien que leur gestion à grande échelle, en particulier dans le cadre d’un pipeline d’intégration continue/de distribution continue (CI/CD) ou de DevOps, s’avère impossible sans automatisation.

L’orchestration de conteneurs permet d’automatiser les tâches liées au déploiement et à l’exécution d’applications et de services conteneurisés. Selon une récente étude d’IBM (PDF, 1,4 Mo), 70 % des développeurs qui ont recours aux conteneurs déclarent utiliser une solution d’orchestration, et 70 % d’entre eux déclarent utiliser un service entièrement géré (dans le cloud).

Télécharger le rapport complet : Containers in the enterprise (Les conteneurs dans l’entreprise)
Fonctionnement de l’orchestration de conteneurs

Bien que les méthodologies et les capacités diffèrent d’un outil à l’autre, l’orchestration de conteneurs se déroule essentiellement en trois étapes (ou en un cycle, lorsqu’elle fait partie d’un pipeline agile ou DevOps itératif).

La plupart de ces outils s’appuient sur un modèle de configuration déclaratif : un développeur rédige un fichier de configuration (en YAML ou JSON selon l’outil) qui définit l’état de configuration souhaité ; puis l’outil d’orchestration exécute le fichier dans le but d’atteindre cet état en faisant appel à sa propre intelligence. En règle générale, le fichier de configuration :

  • définit les images de conteneurs qui composent l’application et leur emplacement (c’est-à-dire le registre) ;

  • fournit aux conteneurs diverses ressources, notamment en matière de stockage ;

  • définit et sécurise les connexions réseau entre les conteneurs ;

  • spécifie la version (pour les rollouts progressifs ou canari).

L’outil d’orchestration planifie le déploiement des conteneurs (et des répliques de conteneurs pour plus de résilience) sur un hôte, et choisit le meilleur hôte en fonction de la capacité CPU et de la mémoire disponibles, ou d’autres exigences ou contraintes spécifiées dans le fichier de configuration. 

Une fois les conteneurs déployés, l’outil d’orchestration gère le cycle de vie de l’application conteneurisée en fonction du fichier de définitions des conteneurs (très souvent un fichier Docker). Ces définitions incluent : 

  • la gestion de la mise à l’échelle (vers le haut et vers le bas), de l’équilibrage de la charge et de l’allocation des ressources entre les conteneurs ;

  • le maintien de la disponibilité et des performances grâce au réadressage des conteneurs vers un autre hôte en cas de panne ou de pénurie de ressources système ;

  • la collecte et le stockage des données de journal et autre télémétrie utilisée pour surveiller l’état de santé et les performances de l’application.

Avantages de l’orchestration de conteneurs


Il apparaît assez clairement que le principal avantage de l’orchestration de conteneurs est l’automatisation, et pas seulement parce qu’elle permet de gérer un vaste parc d’applications conteneurisées de manière beaucoup plus simple et efficace. L’automatisation donne la possibilité d’adopter une approche agile ou DevOps, des cycles de développement et de déploiement rapides et itératifs, et donc de publier de nouvelles fonctionnalités et capacités plus rapidement.

En outre, l’intelligence des outils d’orchestration améliore ou étend de nombreux avantages inhérents à la conteneurisation. Par exemple, l’automatisation de la sélection des hôtes et de l’allocation des ressources, sur la base d’une configuration déclarative, optimise l’utilisation des ressources informatiques, tandis que l’automatisation de la surveillance de l’état de santé et du réadressage des conteneurs optimise la disponibilité.

Kubernetes

Comme indiqué ci-dessus, Kubernetes est la plateforme d’orchestration de conteneurs la plus populaire. En association avec d’autres outils de l’écosystème de conteneurs, le système permet aux entreprises de proposer un service PaaS (Plateforme-as-a-Service) haute performance qui prend en charge une grande partie des tâches et des problèmes liés à l’infrastructure et aux opérations dans le cadre du développement d’applications cloud natives. Ainsi, les équipes de développement peuvent se concentrer exclusivement sur le codage et l’innovation.

Les avantages offerts par Kubernetes par rapport à d’autres solutions d’orchestration résultent en grande partie de ses fonctionnalités plus complètes et plus sophistiquées dans plusieurs domaines, notamment :

  • Le déploiement de conteneurs. Kubernetes déploie un nombre spécifique de conteneurs sur un hôte donné et les maintient dans l’état souhaité.

  • Les rollouts. Un rollout est une modification apportée à un déploiement. Kubernetes vous permet d’initier, de mettre en pause, de reprendre ou d’annuler des rollouts.

  • La découverte de services. Kubernetes peut automatiquement exposer un conteneur à Internet ou à d’autres conteneurs à l’aide d’un nom DNS ou d’une adresse IP.

  • La mise à disposition d’espace de stockage. Les développeurs peuvent faire en sorte que Kubernetes installe un espace de stockage local ou cloud permanent pour vos conteneurs, en fonction des besoins.

  • L’équilibrage de la charge et la mise à l’échelle. En cas de pic de trafic vers un conteneur, Kubernetes peut faire appel à une fonction d’équilibrage de charge et de mise à l’échelle afin de le répartir sur le réseau et d’assurer stabilité et performances. (Cela évite également aux développeurs d’avoir à configurer un équilibreur de charge.)

  • L’auto-réparation pour garantir une haute disponibilité. Lorsqu’un conteneur tombe en panne, Kubernetes est capable de le redémarrer ou de le remplacer automatiquement. Il peut également mettre hors service les conteneurs qui ne répondent pas à vos exigences en matière de contrôle de l’état de santé du système.

     
  • La prise en charge et la portabilité auprès de plusieurs fournisseurs de services cloud. Comme indiqué précédemment, Kubernetes est pris en charge par les principaux fournisseurs de services cloud. Ce point est particulièrement important pour les organisations qui souhaitent déployer des applications dans un environnement de cloud hybride ou multicloud hybride.

  • Un écosystème croissant d’outils open source. Kubernetes bénéficie également d’une gamme élargie d’outils permettant d’améliorer ses capacités via l’API Kubernetes. Il s’agit notamment de Knative, qui permet aux conteneurs de fonctionner comme des charges de travail sans serveur, et d’Istio, un maillage de services open source. 

En savoir plus sur Kubernetes

Solutions connexes
Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloud exploite OpenShift dans des environnements publics et hybrides pour garantir vitesse, évolutivité, fiabilité et réactivité vis-à-vis du marché.

Découvrir Red Hat OpenShift on IBM Cloud
IBM Cloud Satellite

Avec IBM Cloud Satellite, vous pouvez lancer des services cloud cohérents où vous le souhaitez : sur site, en périphérie (edge) et dans des environnements de cloud public.

Découvrir IBM Cloud Satellite
IBM Cloud Code Engine

Ce produit permet d’exécuter des images de conteneurs, des tâches par lots ou du code source en tant que charges de travail sans serveur, le tout, sans dimensionnement, déploiement, mise en réseau ou mise à l’échelle. 

Découvrir IBM Cloud Code Engine
Optimisation de Kubernetes avec IBM Turbonomic

Ce logiciel identifie automatiquement les bonnes actions d’allocation des ressources et le moment où elles doivent être réalisées pour que vos environnements Kubernetes et les applications vitales de votre entreprise obtiennent exactement ce dont ils ont besoin pour respecter vos SLO.

Découvrez IBM Turbonomic
Ressources Containers in the enterprise (Les conteneurs dans l’entreprise)

Une nouvelle étude d’IBM décortique l’essor fulgurant des conteneurs et de Kubernetes.

Associer les meilleures fonctionnalités cloud et traditionnelles

L’orchestration de conteneurs, qui permet de créer et de gérer des charges de travail à partir de n’importe quel endroit, joue un rôle essentiel dans les stratégies de cloud hybride ouvert.

Qu’est-ce que Docker ?

Docker est une plateforme open source permettant de créer, de déployer et de gérer des applications conteneurisées.

Passez à l’étape suivante

Red Hat OpenShift sur IBM Cloud offre aux développeurs un moyen rapide et sécurisé de conteneuriser et de déployer des charges de travail d’entreprise au sein de clusters Kubernetes. Fini les tâches fastidieuses et répétitives liées à la gestion de la sécurité, de la conformité, du déploiement et du cycle de vie en cours. IBM s’occupe d’OpenShift Container Platform (OCP), ce qui vous laisse plus de temps pour vous concentrer sur votre cœur de métier. 

Découvrir Red Hat OpenShift on IBM Cloud