Qu’est-ce que l’orchestration de conteneurs ?

Photo aérienne par drone représentant une autoroute surélevée, des voitures et des camions

Auteurs

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Qu’est-ce que l’orchestration de conteneurs ?

L’orchestration de conteneurs provisionne, déploie, met à l’échelle et gère automatiquement le cycle de vie des applications conteneurisées. Les développeurs se tournent vers l’orchestration de conteneurs pour rationaliser les workflows Agile ou DevOps, assurant la flexibilité et la rapidité nécessaires pour prendre en charge l’infrastructure multicloud hybride moderne.

La plateforme d’orchestration de conteneurs la plus populaire à l’heure actuelle est Kubernetes, c’est pourquoi la plupart des grands fournisseurs de services cloud 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.

Vue aérienne d’autoroutes

Gardez la tête dans le cloud 


Recevez la newsletter hebdomadaire Think pour obtenir des conseils d’experts sur l’optimisation des paramètres multicloud à l’ère de l’IA.

Pourquoi les conteneurs doivent-ils être orchestrés ?

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. 

Si la possibilité de créer des conteneurs existe depuis des décennies, elle est devenue largement accessible en 2008, lorsque Linux a intégré des fonctions de conteneur dans son noyau. Son rôle est devenu essentiel 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). Aujourd’hui, les conteneurs sont compatibles avec de nombreux autres systèmes d’exploitation autres que Linux, dont Windows.

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.

En petit nombre, les conteneurs sont assez faciles à déployer et à gérer manuellement. Toujours est-il que les applications conteneurisées, qui exigent une gestion à l’échelle, sont désormais incontournables pour la plupart des grandes entreprises.

Par exemple, un pipeline d’intégration continue/livraison continue (CI/CD) ou DevOps est impossible sans l’orchestration des conteneurs, qui automatise les tâches opérationnelles concernant le déploiement et l’exécution des applications et services conteneurisés.

Selon une étude réalisée par IBM, 70 % des développeurs interrogés utilisent des solutions d’orchestration des conteneurs. Dans 70 % des cas, il s’agit d’un service d’orchestration des conteneurs entièrement géré dans le cloud.

Comment fonctionne l’orchestration de conteneurs ?

L’architecture d’orchestration de conteneurs permet d’exécuter des clusters de conteneurs sur plusieurs machines et environnements. Chaque cluster comporte généralement un groupe de nœuds (également appelés « instances de serveur »). Les worker nodes (nœuds de travail) gèrent les conteneurs à l’aide de systèmes d’exécution de conteneurs tels que Docker. Un groupe de nœuds du plan de contrôle fait office d’orchestrateur du cluster. Les utilisateurs peuvent gérer et surveiller les workloads conteneurisées grâce à des outils associant interfaces de programmation d’application (API) et interfaces utilisateur graphiques (GUI).

Bien que les méthodologies et les capacités diffèrent d’une plateforme et 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) :

  1. Provisionner
  2. Déploiement
  3. Gestion du cycle de vie

1. Provisionnement

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 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éfinir les images de conteneur qui composent l’application et leur emplacement (le registre de conteneurs).
  • 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).

2. Déploiement

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. Il choisit le meilleur hôte en fonction de la capacité de l’unité centrale de traitement (CPU) disponible, de la mémoire et d’autres exigences ou contraintes spécifiées dans le fichier de configuration.

3. Gestion du cycle de vie

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 (souvent un fichier Docker).

Voici quelques exemples de tâches de gestion du cycle de vie :

  • 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 ;
  • Collecter et stocker les données de journal, ainsi que d’autres données télémétriques qui permettent de surveiller l’état et la performance de l’application.

Regardez cette vidéo pour en savoir plus sur l’orchestration de conteneurs :

Avantages de l’orchestration de conteneurs

Voici les principaux avantages de l’orchestration de conteneurs :

  • Automatisation
  • Résilience
  • Utilisation des ressources et performance améliorées
  • Rentabilité économique
  • Rapidité et agilité
  • Amélioration de la sécurité
  • Amélioration de la productivité

Automatisation

Le principal avantage qu’offre l’orchestration des conteneurs est l’automatisation, qui réduit considérablement l’effort manuel et simplifie la gestion des parcs d’applications conteneurisées à grande échelle.

Résilience

Les solutions d’orchestration de conteneurs améliorent la résilience en les redémarrant ou en les mettant à l’échelle si l’un d’entre eux échoue. Cette capacité permet de garantir la disponibilité et de prolonger le temps de fonctionnement des applications.

Utilisation des ressources et performance améliorées

Automatiser la sélection des hôtes et l’allocation des ressources permet d’optimiser l’utilisation des ressources informatiques. Par exemple, les solutions d’orchestration de conteneurs ajustent la mémoire et le stockage des processeurs en fonction d’un conteneur donné, ce qui évite le surprovisionnement et améliore la performance globale.

Rentabilité économique

L’orchestration de conteneurs élimine la nécessité d’intervenir manuellement, ce qui réduit les coûts opérationnels. En outre, les conteneurs requièrent moins de ressources que les machines virtuelles, ce qui peut réduire les besoins en infrastructure informatique et les frais généraux.

Rapidité et agilité

Les outils d’orchestration de conteneurs permettent d’accélérer le développement et le déploiement des applications. Leur rôle est donc essentiel dans les processus cloud natif modernes.

Sécurité renforcée

Les conteneurs améliorent la sécurité en isolant les applications du système hôte et les unes des autres, réduisant ainsi les surfaces d’attaque. De nombreuses plateformes intègrent une analyse automatisée pour détecter les vulnérabilités et sécuriser les registres d’images, renforçant ainsi la protection globale.

Productivité améliorée

L’automatisation donne la possibilité d’adopter une approche agile ou DevOps, de mettre en place 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.

AI Academy

Se préparer à l’IA avec le cloud hybride

Dirigé par des leaders d’opinion IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires qui leur permettront d’orienter leurs investissements IA vers les opportunités les plus prometteuses.

Avantages de Kubernetes

Développé par Google et publié en 2014, Kubernetes est l’un des logiciels open source ayant connu la croissance la plus rapide. Kubernetes est actuellement géré par la Cloud Native Computing Foundation (CNCF). Depuis que Kubernetes a rejoint la CNCF en 2016, le nombre de contributeurs est passé de 731 à 8 012.1

Associé à d’autres outils de l’écosystème de conteneurs, Kubernetes permet aux entreprises de fournir une plateforme à la demande (PaaS) hautement productive. Ce modèle de cloud computing prend en charge une grande partie des tâches et des problèmes liés à l’infrastructure et aux opérations lors du développement d’applications cloud natives. Les équipes de développement peuvent ainsi se concentrer exclusivement sur le codage et l’innovation.

Si Kubernetes s’avère plus avantageux que d’autres solutions d’orchestration, c’est principalement en raison de ses fonctions plus complètes et plus performantes :

  • Déploiement de conteneurs
  • Rollouts
  • Découverte de services
  • Provisionnement du stockage
  • Équilibrage de charge et évolutivité
  • Auto-réparation pour garantir une haute disponibilité
  • Prise en charge et portabilité auprès de plusieurs fournisseurs de services cloud
  • Écosystème open source

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é.

Rollouts

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

Découverte de services

Kubernetes peut automatiquement exposer un conteneur à Internet ou à d’autres conteneurs en utilisant un nom DNS (Domain Name System) ou une adresse IP pour découvrir les services. 

Provisionnement du stockage

Les développeurs peuvent faire en sorte que Kubernetes installe un espace de stockage local ou cloud permanent pour leurs conteneurs, en fonction des besoins.

Équilibrage de charge et évolutivité

En cas de pic de trafic vers un conteneur, Kubernetes peut faire appel à l’équilibrage de charge et à une mise à l’échelle automatique pour répartir le trafic sur le réseau et assurer stabilité et performance. Cette fonctionnalité évite également aux développeurs d’avoir à configurer un équilibreur de charge.

Auto-réparation pour garantir une haute disponibilité

Lorsqu’un conteneur tombe en panne, Kubernetes le redémarre ou le remplace automatiquement. Il peut également mettre hors service les conteneurs dont l’état ne répond pas aux exigences de l’entreprise.

Prise en charge et portabilité auprès de plusieurs fournisseurs de services cloud

Kubernetes est plébiscité par les principaux fournisseurs de services cloud. Ses fonctionnalités sont essentielles aux entreprises qui souhaitent déployer des applications dans un cloud hybride (la combinaison cloud public, cloud privé et infrastructure sur site) ou multicloud (utilisation de services cloud proposés par plusieurs fournisseurs).

Écosystème 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 workloads sans serveur, et d’Istio, un maillage de services open source.

Qu’est-ce que le CaaS (conteneurs en tant que service) ?

Le CaaS (conteneurs à la demande) est un service géré qui permet aux développeurs de gérer et de déployer des applications conteneurisées. Les entreprises bénéficient ainsi de solutions cloud portables et facilement évolutives. En 2022, le marché mondial du CaaS était évalué à près de 2 milliards de dollars.2 Selon les spécialistes, le marché devrait dépasser 7 milliards de dollars d’ici 2027, avec un TCAC de 30,2 % pendant cette période.

Les fournisseurs de CaaS offrent de nombreux avantages aux entreprises : environnements d’exécution de conteneurs, couches d’orchestration, gestion du stockage persistant, intégration avec d’autres services et plus encore. La plupart des grands fournisseurs publics proposent des services gérés d’orchestration de conteneurs, avec Kubernetes comme technologie sous-jacente.

Les principaux fournisseurs de CaaS sont les suivants :

  • Le service Amazon Elastic Container Service (Amazon ECS) d’AWS
  • Google Kubernetes Engine (GKE) de Google Cloud
  • IBM Cloud Kubernetes Service
  • Microsoft Azure Container Instances (ACI)
  • Red Hat OpenShift

Orchestration de conteneurs et IA

Les plateformes d’orchestration conteneurisées comme Kubernetes peuvent automatiser certains aspects de l’IA et du ML, comme les workflows de maintenance prédictive (par exemple, contrôler l’état en temps réel et planifier les ressources).

Le machine learning s’appuie sur des grands modèles de langage (LLM) pour effectuer un traitement automatique du langage naturel (NLP) de haut niveau, tel que la classification de texte, l’analyse des sentiments et la traduction automatique. L’orchestration de conteneurs contribue à accélérer le déploiement de grands modèles de langage (LLM) afin d’automatiser le processus NLP. En outre, les organisations ont recours à l’orchestration de conteneurs pour exécuter et faire évoluer des modèles d’IA générative, garantissant ainsi une haute disponibilité et une tolérance aux pannes.

Solutions connexes
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud est une plateforme de conteneurs OpenShift entièrement gérée.

Découvrir Red Hat OpenShift
Solutions de conteneurs

Les solutions de conteneurs exécutent et étendent les workloads conteneurisés avec sécurité, innovation open source et déploiement rapide.

Découvrir les conteneurs
Services de conseil cloud 

Déverrouillez de nouvelles fonctionnalités et stimulez l’agilité de votre entreprise grâce aux services de conseil d’IBM Cloud. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.

Services cloud
Passez à l’étape suivante

Modernisez votre infrastructure grâce aux solutions de conteneurs IBM. Exécutez, mettez à l’échelle et gérez des workloads conteneurisés dans tous les environnements avec flexibilité, sécurité et efficacité en utilisant la plateforme complète de conteneurs d’IBM.

Découvrir les solutions de conteneurs Créer votre compte IBM Cloud gratuit
Notes de bas de page

Kubernetes Project Journey Report, Cloud Native Computing Foundation, 8 juin 2023.

Containers as a Service Market worth USD 5.6 billion by 2027 - Exclusive Study by MarketsandMarkets, Cision, 30 novembre 2022.

3 Container as a Service Global Market Report 2023, Yahoo Finance, 1er juin 2023.