Un conteneur est une technologie de virtualisation conçue pour créer et prendre en charge un format portable pour les applications. Autrement dit, il facilite le déploiement d’une application sur différentes plateformes. Un conteneur regroupe tous les éléments nécessaires à l’application — son code, ses dépendances, telles que les bibliothèques dont elle a besoin pour fonctionner, ainsi que l’environnement d’exécution de l’application et de ses dépendances — dans un format qui peut être transporté et exécuté de manière autonome sur différentes plateformes. Les conteneurs permettent d’abstraire une application de l’environnement d’exécution habituel du système d’exploitation.

Docker est le format d’implémentation de conteneurs le plus connu. Il existe toutefois d’autres technologies de conteneurs, telles que rkt/CoreOS, containerd et les conteneurs Hyper‑V, ainsi que des technologies de plus bas niveau comme les cgroups et les espaces de noms (tous deux utilisés pour isoler les applications à la manière des moteurs de conteneurs, mais sans offrir la même portabilité isolée que les conteneurs). Vous pouvez utiliser des outils de plateforme comme Docker ou rkt pour gérer directement les conteneurs, mais la plupart des déploiements font appel à un outil d’orchestration tel que Kubernetes pour gérer les conteneurs. Bien qu’il ne soit pas indispensable, Kubernetes est en passe de devenir l’outil de référence pour les déploiements de conteneurs en production.

Les conteneurs sont devenus un choix architectural très répandu, car ils permettent de décomposer une application en composants plus petits et distincts, et ainsi de répartir les responsabilités entre les responsables de l’infrastructure et les développeurs. Cette approche est avantageuse lors du développement, puisque des équipes distinctes peuvent travailler en parallèle sur les différents composants, mais aussi lors du déploiement, car elle permet de transférer un conteneur donné d’une plateforme à une autre. Les conteneurs offrent également un outil plus efficace aux responsables des applications et de l’infrastructure, car ils peuvent fournir des plateformes immuables qui permettent aux développeurs de publier des conteneurs applicatifs conformément à un ensemble d’exigences connues, sans avoir à gérer eux-mêmes ces exigences.

Le terme conteneurisation des applications désigne souvent le processus de migration d’une application depuis un environnement d’exécution Linux standard vers un format autonome pouvant fonctionner dans de nombreux environnements. De nombreuses entreprises ont déjà bien avancé dans leur démarche de conteneurisation et ont commencé à migrer soit vers des conteneurs de base, soit vers une stratégie plus complète de gestion des conteneurs à l’aide d’un outil tel que Kubernetes.

Comment NGINX peut-il vous aider ?

Tous les produits NGINX peuvent soit s’exécuter dans des conteneurs, notamment NGINX Open Source, NGINX Plus (éventuellement avec NGINX App Protect), NGINX Unit, NGINX Service Mesh, NGINX Ingress Controller, soit reposer sur des technologies de conteneurisation (NGINX Controller).

Contactez-nous dès aujourd’hui pour découvrir comment nous pouvons vous aider à déployer des applications modernes.