Conteneur (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

En informatique, un conteneur est une structure de données, une classe, ou un type de données abstrait, dont les instances représentent des collections d'autres objets. Autrement dit, les conteneurs sont utilisés pour stocker des objets sous une forme organisée qui suit des règles d'accès spécifiques. On peut implémenter un conteneur de différentes façons, qui conduisent à des complexités en temps et en espace différentes. On choisira donc l'implémentation selon les besoins.

Un conteneur est une enveloppe virtuelle qui permet de distribuer une application avec tous les éléments dont elle a besoin pour fonctionner : fichiers source, environnement d'exécution, librairies, outils et fichiers. Ils sont assemblés en un ensemble cohérent et prêt à être déployé sur un serveur et son système d'exploitation (OS). Contrairement à la virtualisation de serveurs et à une machine virtuelle, le conteneur n’intègre pas de noyau, il s’appuie directement sur le noyau de l'ordinateur sur lequel il est déployé.

Vue générale[modifier | modifier le code]

Un conteneur peut être étudié selon trois points de vue :

  • l'accès, c'est-à-dire la manière d'accéder aux éléments du conteneur. Dans le cas des tableaux, l'accès se fait selon des indices. Dans le cas des piles (stack), l'accès se fait selon l'ordre LIFO (dernier entré, premier sorti), et dans le cas des files (queue) selon l'ordre FIFO (premier entré, premier sorti) ;
  • le stockage, c'est-à-dire la manière de stocker les éléments du conteneur ;
  • le parcours, c'est-à-dire la manière de parcourir les éléments du conteneur.

Les conteneurs implémentent en général des méthodes pour :

  • créer un conteneur vide ;
  • ajouter des objets au conteneur ;
  • supprimer un ou plusieurs objets du conteneur ;
  • supprimer tous les objets du conteneur ;
  • accéder aux objets du conteneur ;
  • accéder au nombre d'objets du conteneur.

Les conteneurs sont parfois implémentés conjointement avec des itérateurs.

Technologies[modifier | modifier le code]

  • Kubernetes (K8s) est un système open-source permettant d’automatiser le déploiement, la mise à l’échelle et la gestion des applications conteneurisées[1].
  • Docker est une surcouche qui rend le développement et le déploiement des conteneurs beaucoup plus simple tout en les standardisant. La première version Docker 1.0 date de 2020, mais son adoption par les plus grands comptes de l’informatique en fait déjà un outil de référence[2].
  • OpenShift est une plateforme de conteneurs d’applications open source, principalement basée sur Docker et orchestrée à l’aide de la gestion des clusters de conteneurs Kubernetes, qui est chargé du démarrage et du « scaling » des conteneurs[3].

OpenShift propose également des objets de configuration plus poussés comme :

  • Construire des images
  • Intégrer un registre privé paramétrable pour séparer les images par projet
  • Proposer une interface utilisable par un « non-administrateur »
  • Proposer des routeurs vers les applications
  • Gérer les droits, restriction, authentification, etc.

Références[modifier | modifier le code]

  1. « La meilleure solution d'orchestration de conteneurs en production », sur kubernetes.io (consulté le 3 février 2020).
  2. « Conteneur, Docker, fonctionnement et avantages pour héberger ses applications ? », sur Alfa-Safety (consulté le 3 février 2020).
  3. « Construire et déployer ses applications avec OpenShift », sur Nexworld, (consulté le 3 février 2020).

Voir aussi[modifier | modifier le code]