Jump to section

Un registre de conteneurs, qu'est-ce que c'est ?

Copier l'URL

Un registre de conteneurs est un référentiel, ou un ensemble de référentiels, utilisé pour stocker des images de conteneurs et y accéder. Les registres de conteneurs peuvent prendre en charge le développement d'applications basées sur des conteneurs, souvent dans le cadre de processus DevOps. Les registres de conteneurs peuvent se connecter directement à des plateformes d'orchestration de conteneurs telles que Docker et Kubernetes

Les registres de conteneurs permettent aux développeurs de gagner un temps précieux lors de la création et de la distribution d'applications cloud-native, en servant d'intermédiaire pour le partage d'images de conteneurs entre les systèmes.

Une image de conteneur inclut les fichiers et les composants qui constituent une application. Contrairement aux machines virtuelles, les conteneurs sont des paquets logiciels légers qui s'exécutent sur le système d'exploitation Linux®. Vous pouvez utiliser plusieurs images de conteneurs pour vous adapter à l'évolution des charges de travail. Elles sont généralement associées au développement agile, à la méthodologie DevOps ainsi qu'à l'intégration et à la distribution continues (CI/CD). 

Les images de conteneurs comprennent des bibliothèques système, des outils système et d'autres paramètres de plateforme dont vos applications ont besoin pour s'exécuter, ce qui permet aux développeurs de bénéficier de la portabilité et de l'agilité pour développer ou créer rapidement de nouvelles applications.

Un outil Open Source tel que Buildah vous permet de créer des images compatibles OCI et Docker, avec ou sans Dockerfiles ou une image de conteneur existante comme point de départ, ce qui vous évite de nombreuses approximations. 

Lorsque vous développez des images de conteneurs, vous devez disposer d'un emplacement pour les enregistrer, les partager et y accéder à mesure de leur création. C'est là que le registre de conteneurs intervient.

Un registre est un emplacement qui sert à stocker des images de conteneurs et à les partager par le biais d'un processus de chargement (pushing) vers le registre et de téléchargement (pulling) vers un autre système, par exemple un cluster Kubernetes

Une fois que vous avez extrait l'image sur un système, l'application qu'elle contient peut être exécutée sur ce système.

En plus des images de conteneurs, les registres stockent également des chemins d'accès à des API ainsi que des paramètres de contrôle d'accès pour la communication entre conteneurs. Les API aident à éliminer les couplages involontaires qui limitent les changements et provoquent souvent des pannes, en particulier dans les environnements de cloud hybride où les applications ne résident plus dans le même datacenter.

Les images de conteneur peuvent également communiquer via un Service Mesh, une couche d'infrastructure entre les services conteneurisés qui facilite la mise à l'échelle. Pour les applications cloud-native créées dans une architecture de microservices, le Service Mesh offre la possibilité de regrouper un grand nombre de services distincts dans une application fonctionnelle.

Selon la Cloud Native Computing Foundation, les conteneurs (y compris les images et registres de conteneurs) et les microservices constituent la base du développement d'applications cloud-native. Les conteneurs et les microservices sont entièrement autonomes, ce qui en fait de puissants outils pour créer des applications cloud-native portables. 

Les conteneurs isolent les processus d'application, les fichiers d'exécution et les dépendances du système d'exploitation du reste du système. Ils offrent une plus grande portabilité dans les environnements de cloud hybride et peuvent être déployés pour des périodes beaucoup plus courtes que les machines virtuelles. Les développeurs peuvent ainsi plus facilement envoyer et extraire ce dont ils ont besoin à partir d'un registre de conteneurs, ce qui leur permet de se concentrer sur la création d'un produit de qualité, sans se soucier de l'infrastructure sous-jacente ou des détails d'exécution.

Dans un environnement DevOps, l'utilisation de conteneurs (et d'images/registres de conteneurs) permet aux développeurs de déployer chaque service d'application indépendamment. Résultats : plus besoin de fusionner les modifications de code, les tests sont améliorés et l'isolement des erreurs est simplifié pendant les tests et en production.

Il existe deux types de registres de conteneurs : les registres publics et les registres privés.

Les registres publics sont couramment utilisés par les individus ou les petites équipes qui souhaitent mettre en place leur registre le plus rapidement possible. Cependant, à mesure que l'entreprise se développe, des problèmes de sécurité plus complexes risquent d'apparaître, notamment l'application des correctifs, la confidentialité et le contrôle des accès. 

Les registres privés fournissent un espace de stockage d'images de conteneurs sûr et confidentiel spécialement pensé pour les entreprises, hébergé sur site ou à distance. Ces registres privés intègrent souvent des fonctions de sécurité avancées et une assistance technique.

La plupart des fournisseurs de cloud fournissent des services de registre d'images privé :Google propose le registre de conteneurs Google, AWS offre Amazon Elastic Container Registry (ECR) et Microsoft fournit Azure Container Registry.

Le registre interne privé offre le plus grand potentiel en matière de sécurité et de configuration. En contrepartie, il nécessite une gestion prudente et la garantie que l'infrastructure du registre et les contrôles d'accès restent au sein de l'entreprise.

Voici les critères de sélection à observer lors du choix d'un service de registre de conteneurs privé pour votre entreprise :

  • Prise en charge de plusieurs systèmes d'authentification

  • Gestion du contrôle d'accès basé sur les rôles pour les images locales

  • Fonctions d'analyse des vulnérabilités pour une sécurité et une configuration améliorées

  • Enregistrement de l'utilisation dans des journaux auditables pour un traçage au niveau de l'utilisateur

  • Optimisation pour l'automatisation

Les fonctions d'entreprise d'un registre privé permettent aux entreprises d'accéder en interne aux images de conteneurs de manière sécurisée et efficace. Plusieurs systèmes d'authentification mettent en place des mesures pour vérifier l'image de conteneur qui y est stockée.

Par exemple, la personne qui télécharge une image doit la signer numériquement avant de pouvoir la pousser vers le registre. Cette signature est également requise pour le suivi des activités et le blocage des téléchargements par des utilisateurs non autorisés.

Le contrôle d'accès basé sur les rôles gère les actions que les utilisateurs sont autorisés à réaliser en fonction de leur rôle. Un développeur aura besoin de charger et télécharger des images, alors qu'un autre membre de l'équipe ou un testeur aura seulement besoin d'un accès en téléchargement. Lorsqu'un système de gestion des utilisateurs, tel qu'Active Directory ou LDAP, est utilisé par l'entreprise, celui-ci peut être directement lié au registre de conteneurs et servir pour la gestion du contrôle d'accès basé sur les rôles.

Une entreprise peut choisir de créer et déployer son propre registre de conteneurs ou opter pour un service de registre privé disponible sur le marché.

La solution Red Hat® OpenShift® est une plateforme de conteneurs Kubernetes pour les entreprises qui fournit une expérience cohérente dans toutes les infrastructures cloud, y compris les déploiements multicloud, de cloud hybride et d'edge computing. Grâce à Red Hat OpenShift, l'environnement d'un nouveau microservice ou d'une nouvelle application peut être provisionné en quelques minutes seulement. En plus d'autres services cloud tels que les middlewares, les langages, les frameworks et les bases de données, cette plateforme inclut déjà un registre privé qui fournit des fonctionnalités de base pour gérer vos images de conteneurs. 

Les registres privés peuvent être déployés dans le cadre d'un service géré par Red Hat OpenShift sur le cloud d'un fournisseur issu du riche écosystème de partenaires Red Hat, qui offre une expérience transparente sur Azure, Amazon Web Services (AWS), IBM Cloud ou Google Cloud. La plateforme Red Hat OpenShift prend en charge l'intégration d'autres registres privés, tels que Artifactory et Sonatype Nexus de JFrog.

Red Hat propose également des services autogérés qui s'appuient sur sa base de cloud hybride avec des fonctions de sécurité améliorées et des logiciels supplémentaires à utiliser dans votre datacenter. Si vous avez besoin de fonctionnalités de sécurité et d'une assistance technique plus avancées,Red Hat Quay est disponible en tant que registre d'entreprise autonome et évolutif.

Pour aller plus loin

ARTICLE

Stateful et stateless : quelle est la différence ?

Les qualificatifs « stateful » ou « stateless » dépendent de la durée pendant laquelle l'état de l'interaction avec un élément est enregistré ainsi que de la manière dont cette information doit être stockée.

ARTICLE

Quarkus, qu'est-ce que c'est ?

Quarkus est une pile Java native pour Kubernetes conçue pour les machines virtuelles Java (JVM) et la compilation native, qui permet d'optimiser Java spécifiquement pour les conteneurs.

ARTICLE

Le serverless ou informatique sans serveur, qu'est-ce que c'est ?

Le serverless est un modèle de développement cloud-native qui permet aux développeurs de créer et d'exécuter des applications sans avoir à gérer des serveurs.

En savoir plus sur les applications cloud-native

Produits

Une plateforme d'applications d'entreprise comprenant un ensemble unifié de services testés conçus pour distribuer des applications sur votre choix d'infrastructure.

Ressources

Formations

Formation gratuite

Développement d'applications cloud-native avec des architectures de microservices