We couldn't find a match for given <KEYWORD>, please try again.

Qu’est qu’un conteneur ?

Un conteneur est un package autonome léger qui encapsule un environnement d’exécution entier, comprenant une application et ses dépendances (bibliothèques, fichiers binaires et tout fichier de configuration supplémentaire), ce qui augmente la portabilité, la scalabilité, la sécurité et l’agilité d’une application.

Les conteneurs sont populaires auprès des développeurs et des opérateurs, car ils offrent un moyen simple de déployer et de gérer les applications, quel que soit l’environnement cible. Ils facilitent les pratiques DevOps et DevSecOps en améliorant les transferts entre les équipes responsables des opérations et du développement.

Les conteneurs consomment efficacement les ressources, ce qui permet une densité et une utilisation des ressources élevées. Bien que les conteneurs puissent être utilisés avec pratiquement n’importe quelle application, ils sont souvent associés à des microservices, dans lesquels plusieurs conteneurs exécutent des composants d’application ou des services distincts. Les conteneurs qui composent une application sont généralement coordonnés et gérés à l’aide d’une plate-forme d’orchestration de conteneurs comme Kubernetes.

Les conteneurs sont générés en créant des packages d’applications à partir de plusieurs images d’un ou de plusieurs référentiels, ainsi que de toutes les bibliothèques ou autres dépendances d’applications, éliminant ainsi les problèmes de portabilité et de compatibilité.

Une nouvelle façon de créer des conteneurs pour Kubernetes

Une nouvelle façon de créer des conteneurs pour Kubernetes

Les synergies entre les conteneurs et les machines virtuelles

Conteneurs et machine virtuelle

Chaque machine virtuelle (VM) exécute une instance complète ou partielle d’un système d’exploitation, alors que plusieurs conteneurs partagent une seule instance de système d’exploitation. Un conteneur comprend tous les éléments nécessaires pour exécuter une application, ce qui permet à plusieurs applications conteneurisées de s’exécuter indépendamment sur un système hôte unique. Étant donné que plusieurs conteneurs peuvent être exécutés à l’intérieur d’une VM, il est possible d’utiliser les deux technologies conjointement.

Quels sont les avantages des conteneurs ?

L’utilisation de conteneurs pour concevoir des applications accélère la fourniture de nouvelles fonctionnalités et favorise un environnement d’innovation continue. Principaux avantages :

L’agilité : grâce à une agilité accrue pour les développeurs, la productivité et la vitesse de développement des applications augmentent. Les conteneurs rationalisent les pipelines d’intégration et de livraison continues (CI/CD) sont idéaux pour les équipes DevOps et les déploiements de microservices.

La scalabilité et la haute disponibilité : à l’aide de Kubernetes, les déploiements de conteneurs peuvent être automatiquement adaptés aux besoins des charges de travail, ce qui augmente la disponibilité des applications.

La portabilité : les conteneurs consomment moins de ressources et sont plus légers que les machines virtuelles. Les applications conteneurisées sont indépendantes de l’infrastructure et fonctionnent toujours de la même manière, quel que soit l’endroit où elles sont déployées.

La résilience : une application conteneurisée est isolée et dissociée du système d’exploitation et des autres conteneurs. Ainsi, un conteneur peut tomber en panne sans que cela affecte les autres conteneurs en cours d’exécution.

Normes relatives aux conteneurs

Les normes relatives au formatage des conteneurs et aux environnements d’exécution sont contrôlées par l’Open Container Initiative (OCI), un projet créé en 2015 dans le but exprès de créer des standards ouverts. L’OCI propose actuellement deux spécifications : la spécification d’exécution (runtime-spec) et la spécification d’image (image-spec).

Sécurité des conteneurs

Les conteneurs requièrent des changements dans la manière dont les règles de sécurité sont mises en œuvre et gérées. La sécurité doit être intégrée autant que possible dans le cycle de vie des conteneurs, en utilisant une approche DevSecOps. Les équipes de sécurité, en collaboration avec les équipes responsables des opérations et du développement, adaptent les règles de gouvernance et politiques de conformité existantes pour prendre en charge les nouveaux outils et les modifications apportées au cycle de vie des applications.

Automatisation des conteneurs

Le travail manuel ralentit les équipes de développement. L’automatisation des conteneurs permet aux développeurs de se concentrer sur le code plutôt que sur le packaging. Les images de conteneur sont construites en couches. Avec une approche automatisée de la création de conteneurs, chaque fois qu’une couche est modifiée, seule cette couche doit être mise à jour. Par exemple, si seules les bibliothèques système doivent être mises à jour, seule la couche contenant les bibliothèques doit être reconstruite. Comme les autres couches restent inchangées, le fardeau des tests et de la validation est réduit, ce qui permet de mettre en production plus rapidement et plus fréquemment les conteneurs mis à jour.

Docker

Depuis son introduction en 2013, la plate-forme Docker est presque synonyme de conteneurs et continue d’être utilisée pour créer des images de conteneurs. L’environnement Docker comprend un runtime de conteneur ainsi que la gestion de la création et des images de conteneurs. Étant donné que Docker crée une image de conteneur conforme aux normes de l’OCI, les images Docker s’exécutent sur tous les runtimes de conteneur compatibles OCI.

Kubernetes

Kubernetes est un orchestrateur de conteneurs open source qui est devenu un standard de facto. Kubernetes automatise le déploiement, l’équilibrage de charge, l’allocation des ressources et l’application de la sécurité pour les conteneurs via l’automatisation et une configuration déclarative. Ce système maintient les applications conteneurisées dans l’état souhaité, garantissant ainsi leur scalabilité et leur résilience. L’orchestration des conteneurs permet de gérer la complexité du cycle de vie des conteneurs. C’est particulièrement important pour les applications distribuées comprenant un grand nombre de conteneurs.
Kubernetes est en train de passer à l’interface d’exécution de conteneur (CRI), qui prend en charge un ensemble plus large d’environnements d’exécution de conteneurs avec une interopérabilité fluide entre les différents environnements d’exécution. L’obsolescence du runtime Docker pour une utilisation avec Kubernetes a été annoncée en décembre 2020.

Cas d’usage des conteneurs

Pour les développeurs

  • Améliorez la portabilité des applications sur différentes plates-formes et configurations, de sorte que le code développé sur une version d’un compilateur ou d’un interpréteur de langage s’exécute parfaitement sur les versions ultérieures, sans qu’aucune révision ne soit nécessaire.
  • Levez la contrainte pour les développeurs d’avoir à procéder au développement, aux tests et au déploiement sur la même infrastructure, afin que les développeurs qui écrivent du code sur leurs ordinateurs portables puissent être assurés que l’application s’exécutera comme souhaité sur n’importe quelle autre infrastructure, qu’il s’agisse d’un serveur on premise ou d’une machine virtuelle Cloud.
  • Facilitez les processus de développement agiles, tels que l’intégration et la livraison continues (CI/CD), en accélérant l’acceptation et le déploiement du code.

Pour les opérations informatiques

  • Améliorez la sécurité des applications en les isolant des autres applications de manière simple.
  • Migration transparente des applications conteneurisées sur différentes versions de système d’exploitation, topologies de réseau ou configurations de stockage, et plates-formes Cloud.
  • Améliorez l’efficacité informatique en autorisant l’exécution de plusieurs conteneurs d’applications sur une seule instance de système d’exploitation. Comme les conteneurs pèsent souvent plusieurs dizaines de mégaoctets alors que les machines virtuelles font souvent dix gigaoctets ou plus, un nombre beaucoup plus important de conteneurs peut fonctionner sur une seule instance de serveur.

Offrez une scalabilité totale à la demande, en déployant des instances de conteneur supplémentaires en quelques millisecondes au lieu de devoir attendre plusieurs minutes pour déployer des machines virtuelles.

Solutions et produits associés

Modernisation des applications avec Kubernetes

Fournissez des solutions Kubernetes pour les développeurs dans le Data Center ou le Cloud

Créez des conteneurs pour Kubernetes à partir de code source

VMware Tanzu Build Service automatise la création, la gestion et la gouvernance des conteneurs à grande échelle.

Gestion Kubernetes multicloud

VMware Tanzu Mission Control est une plate-forme de gestion Kubernetes multicloud qui virtualise le Cloud en fournissant une plate-forme Kubernetes cohérente qui permet la gestion, l’exploitation et la distribution d’applications à grande échelle sur tous les Clouds.