Que sont les applications conteneurisées ?

Les applications conteneurisées sont des applications exécutées dans des packages de code isolés appelés conteneurs. Les conteneurs regroupent toutes les dépendances dont une application peut avoir besoin pour s'exécuter sur n'importe quel système d'exploitation hôte, telles que les bibliothèques, les fichiers binaires, les fichiers de configuration et les frameworks, dans un seul exécutable léger.

Le processus de conteneurisation des applications rend le développement d'applications plus rapide, plus efficace et plus sécurisé en séparant les différentes fonctionnalités des dépendances matérielles et des autres logiciels. Les conteneurs peuvent s'exécuter sur n'importe quel système d'exploitation hôte et sont isolés des autres objets logiciels et matériels, ce qui en fait des outils polyvalents pour créer des applications qui peuvent être créées une seule fois et exécutées n'importe où.

De la recherche Google à YouTube en passant par Gmail, tout est exécuté par des conteneurs chez Google. Les plates-formes Open Source Kubernetes et Knative ont été développées par Google. Elles figurent parmi les outils les plus utilisés pour gérer les conteneurs et les applications.  

Avantages des applications conteneurisées

Isolation

Étant donné que chaque application conteneurisée existe dans un environnement isolé à distance des autres applications et composants système, les pannes d'une application n'affectent pas les autres applications ni le système local, ce qui peut limiter l'étendue des bugs signalés.

Portabilité

Les applications conteneurisées fonctionnent indépendamment du système d'exploitation et peuvent donc être transférées vers presque tous les environnements (serveurs physiques, machines virtuelles, ordinateur personnel d'un développeur, cloud, etc.).

Configuration légère

Contrairement aux machines virtuelles, les conteneurs ne possèdent pas de version du système d'exploitation, ce qui les rend beaucoup plus légers et plus efficaces que les autres méthodes de virtualisation.

Efficience

Les applications de conteneurisation peuvent partager le noyau informatique et les ressources d'une machine, tandis que les couches d'application d'un conteneur peuvent être partagées entre plusieurs conteneurs. Les applications conteneurisées nécessitent donc moins de ressources, ce qui permet d'exécuter plusieurs conteneurs sur la même machine ou le même environnement virtuel.

Évolutivité

Vous pouvez rapidement ajouter des instances de conteneur supplémentaires pour gérer l'augmentation de la charge des applications.

Comment la technologie de conteneurisation d'applications fonctionne-t-elle ?

Les applications conteneurisées fonctionnent en exécutant un package logiciel exécutable (le conteneur) qui inclut toutes les dépendances d'application nécessaires à l'exécution de l'application sur un système d'exploitation hôte. L'application conteneurisée comporte plusieurs objets, y compris tous les composants de l'application (par exemple, les frameworks et les bibliothèques) qui constituent l'image du conteneur, qui est ensuite exécutée par le moteur de conteneur. L'image de conteneur est le plan ou l'architecture du système de conteneurs. Lorsque l'application est exécutée, le contenu de l'image est copié dans une instance de conteneur, puis il peut être utilisé dans autant de conteneurs que vous le souhaitez au sein de l'application. Les images de conteneurs sont créées selon une norme du secteur appelée Open Container Initiative (OCI), qui facilite le partage et la compatibilité des conteneurs.

Les moteurs de conteneurs constituent l'environnement d'exécution du conteneur et la plate-forme à partir de laquelle les applications conteneurisées sont exécutées. Les moteurs de conteneurs acceptent les commandes permettant de créer, de gérer et de démarrer des conteneurs via des outils clients. Les moteurs de conteneurs les plus populaires sont des outils tels que Docker ou CRI-O.

Les outils d'orchestration sont utilisés pour gérer les applications conteneurisées, en particulier dans les environnements comportant de nombreux conteneurs. Les outils d'orchestration, comme Kubernetes, permettent de déployer, de gérer et de faire évoluer des conteneurs. 

Comparer les conteneurs et les machines virtuelles

Les conteneurs et les machines virtuelles ont des fonctions similaires, mais ils ont tendance à utiliser moins de ressources et sont plus flexibles.

Les machines virtuelles permettent à plusieurs applications et systèmes d'exploitation de partager les ressources d'un seul ordinateur ou serveur physique et de s'exécuter simultanément (comme Windows et Linux partageant le même ordinateur). Une machine virtuelle contient ses fichiers et ses dépendances, ainsi que sa propre copie du système d'exploitation.

Contrairement aux machines virtuelles, les conteneurs ne contiennent pas de copie du système d'exploitation. C'est pourquoi la principale différence entre les conteneurs et les machines virtuelles réside dans le fait que la conteneurisation utilise les ressources de calcul plus efficacement. À la place, l'environnement d'exécution du conteneur est installé sur le système d'exploitation existant de l'ordinateur ou du serveur, ce qui permet à tous les conteneurs de partager le même système d'exploitation.

Types de conteneurs d'applications

Au niveau le plus élémentaire, il existe deux types de conteneurs : les conteneurs système et les conteneurs d'applications

Conteneurs d'applications

Les conteneurs d'applications sont des solutions sans état qui exécutent généralement un seul processus. Les applications conteneurisées exécutent des conteneurs d'applications dans lesquels chaque conteneur gère un processus, avec plusieurs conteneurs ordonnés par un outil comme Kubernetes.

Les conteneurs d'applications abondent sur le marché. Docker est considéré comme le plus populaire, même s'il en existe plusieurs autres. Le développement Open Source des conteneurs est géré par l'OCI.

Conteneurs système

Les conteneurs système (également appelés conteneurs de système d'exploitation) sont plus anciens et fonctionnent de la même manière que les machines virtuelles, mais sans entraîner les mêmes coûts de calcul. Il se comporte comme un système autonome et n'inclut pas l'image de conteneur ni ne nécessite de logiciel spécialisé. Les conteneurs système étaient généralement utilisés dans les anciennes applications monolithiques.

Voici quelques-uns des types d'outils et de moteurs courants d'applications conteneurisées :

Docker

La plate-forme Open Source la plus populaire pour la conteneurisation Docker permet de créer et d'exploiter des conteneurs basés sur Linux.

LXC

Projet Open Source de LinuxContainers.org, LXC permet à une application d'exécuter plusieurs systèmes Linux simultanément, en utilisant un seul noyau Linux comme système d'exploitation.

rkt

Également connu sous le nom de Rocket, rkt est un moteur de conteneurs basé sur des applications qui permet un contrôle ultraprécis des conteneurs. Il peut également être utilisé en tant que composants spécifiques dans un système de conteneurs Docker.

CRI-O

Interface d'exécution de conteneur (CRI, Container Runtime Interface) pour la plate-forme de gestion de conteneurs Kubernetes, qui permet d'activer des environnements d'exécution compatibles avec l'OCI. Souvent utilisé pour remplacer Docker lors de l'utilisation de Kubernetes.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.
Contactez un spécialiste des ventes Google Cloud pour discuter plus en détail de votre propre défi.

Passez à l'étape suivante avec la conteneurisation

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Console
  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud