C’est quoi au juste … un conteneur ?

Larry Garfield
Larry Garfield
Director of Developer Experience
05 Oct 2020

Demandez à un professionnel du digital non-technique quelle est la partie la plus difficile de leur travail et vous entendrez souvent, « Comprendre exactement ce dont les développeurs parlent. » La série “C’est quoi au juste…?” explique les concepts techniques les plus communs dans un langage simple. Aujourd’hui, nous vous détaillons de quoi parlent vos développeurs quand ils parlent d’un « conteneur ».

Les conteneurs permettent aux développeurs de séparer les processus informatiques les uns des autres

Lorsque les développeurs parlent de conteneurs, ils parlent d’une méthode qui évite aux processus informatiques de communiquer entre eux. Tout comme le terme l’implique, les conteneurs gardent les processus informatiques contenus.

Normalement, un système d’exploitation exécute chaque programme dans un « processus » séparé. Chaque processus est une combinaison de code + l’espace mémoire pour ses données. Un système d’exploitation peut gérer des centaines ou des milliers de processus en même temps.

En plus de pouvoir communiquer avec le système d’exploitation, les processus peuvent communiquer avec d’autres processus. Mais parfois, on ne veut pas qu’ils le fassent. Chaque fois qu’un processus peut interagir avec un autre processus, il peut potentiellement causer des problèmes. Les processus peuvent communiquer des informations corrompues les uns aux autres menant à des problèmes de sécurité. Ils peuvent aussi rivaliser l’un avec l’autre pour des ressources opérationnelles, comme la mémoire. Ainsi, lorsque vous exécutez plusieurs processus en même temps, vous voulez souvent les garder isolés les uns des autres. C’est là qu’interviennent les conteneurs.

Les conteneurs travaillent en utilisant des “namespaces” pour mentir à un processus sur son environnement. Il existe différents types d’espaces-nom, chacun avec sa propre technique de tromperie. Par exemple, les espaces-nom regroupent les processus en groupes et trompent les processus de ces groupes pour leur faire croire qu’aucun autre processus n’existe. L’espace-nom de montage donne à chaque groupe de processus un système de fichiers indépendant et différent afin qu’ils ne puissent pas déchiffrer les fichiers de l’autre. Et ainsi de suite.

« Contenus » par cette fausse information, les processus fonctionnent comme s’ils étaient sur leur propre ordinateur privé. Plusieurs processus peuvent maintenant fonctionner en toute sécurité, en même temps, sans être un risque de sécurité l’un pour l’autre et sans rivaliser pour des ressources limitées.

Pourquoi les conteneurs sont-ils importants ?

Les caractéristiques d’isolation d’un conteneur offrent des avantages importants :

  • De nombreuses applications peuvent partager les ressources d’un ordinateur sans introduire de risques de sécurité ou de goulots d’étranglement de ressources.
  • Il n’y a presque pas de frais pour le fonctionnement d’un processus dans un conteneur vs. hors-conteneur.
  • Les ressources disponibles d’un conteneur peuvent être mises à l’échelle dynamiquement sans changement matériel.
  • Les programmes peuvent être déplacés d’un conteneur sur un ordinateur à un conteneur sur un autre.

Conteneurs et Platform.sh

Parce que les conteneurs sont si flexibles, les contrôler et les configurer peut être compliqué pour les utilisateurs. (Le marché explose d’outils qui gèrent les outils qui gèrent les conteneurs).

Platform.sh utilise un système de conteneurs spécialement construit qui vous offre tous les avantages des conteneurs sans aucun tracas. Par exemple, nous installons automatiquement toutes les mises à jour relatifs à des bugs et ou à la sécurité, mais vous donnons un contrôle complet sur l’installation des mises à jour de nouvelles fonctionnalités. Nous offrons également une grande variété de services clé en main que vous pouvez activer sur un projet avec presque aucune configuration requise.

L’isolation de processus apportée par les conteneurs permet à vos applications actives d’être sécurisées et de fonctionner sans problème. Le système de conteneurs Platform.sh vous libérera du temps pour gérer votre entreprise de la même manière.

(Pour une explication plus approfondie des conteneurs, veuillez lire « The container is a lie! »)