Tech Insights

Les containers au service de déploiements et d'exécutions homogènes


Développeurs et opérateurs : tous apprécient les containers pour la simplicité avec laquelle ils leur permettent d’assurer un déploiement et une exécution homogènes, sans oublier une passation transparente entre le développement et les opérations (DevOps).

Pourquoi les Containers ?

Lorsque les containers ont commencé à s’imposer dans les entreprises, le site CIO.com écrivait dans ses colonnes : « De l’ordinateur portable d’un développeur à un environnement de tests, d’un environnement de préproduction à la production, ou encore de la machine physique d’un data center vers la machine virtuelle d’un cloud privé ou public, les containers résolvent la question de la fiabilité des exécutions de logiciels post-migration.»




Homogénéité des déploiements : accélérez vos lancements

Dans un modèle traditionnel, chaque application – et ses dépendances – doit être développée et packagée séparément avant d’être transmise aux opérations pour déploiement. Or, ce processus prend du temps et coûte cher aux entreprises. C’est pourquoi les containers couplent le code et les processus (application, bibliothèques, fichiers binaires, fichiers de configuration) afin d’homogénéiser et d’accélérer le lancement de nouvelles applications et mises à jour.

Une exécution homogène améliore la qualité

Étant donné que le code et les processus sont pré-packagés pour se conformer aux procédures de lancement et de gestion, ils permettent aux équipes d’améliorer la qualité de chaque version, avec à la clé des clients plus satisfaits.

La simplification des passations développement-opérations accélère vos déploiements

Dès lors qu’ils n’ont plus à personnaliser chaque déploiement, le développement et les opérations (DevOps) peuvent enfin se recentrer sur leur principale mission : développer et déployer des applications critiques avec une extrême fiabilité.



« Pourquoi avez-vous opté pour les technologies de containers (Docker, rkt, CoreOS, etc.) ? »



Saurabh Gupta. "Containers and Pivotal Platform" 2016.




Gros plan sur les technologies de containers

Les containers sont indissociables de Linux. De fait, ils s’appuient sur les fonctionnalités du noyau de ce système d’exploitation. Les trois piliers des containers dans Linux (groupe de contrôle, espaces de noms et systèmes de fichiers) opèrent dans une zone relativement isolée. Toute la puissance des containers tient dans la façon dont ces technologies interagissent et créent des synergies.

Cgroup, ou groupe de contrôle, désigne un mécanisme d’organisation hiérarchique des processus et de répartition des ressources système selon cette hiérarchie, de façon contrôlée et configurable. Les espaces de noms contrôlent la vue qu’un processus peut avoir d’une machine virtuelle (VM). Ils permettent à ce processus de traiter une ressource partagée comme sa propre ressource isolée.

Une fois que Linux contrôle ce qu’un processus peut faire (cgroup) et ce qu’il peut voir (espaces de noms), il autorise son accès à un système de fichiers par le montage de ce système dans son espace de noms. En outre, le processus peut bénéficier d’un accès en lecture seule à la plupart du système de fichiers et d’un accès en lecture-écriture à une petite partie de ce système. Ces systèmes de fichiers forment la base du concept d’image. Une image (une image Docker, par exemple) n’est autre qu’un ensemble de systèmes de fichiers sérialisés avec une configuration et des métadonnées. Lorsqu’une image est déployée sous forme de container, les systèmes de fichiers de l’image deviennent un système de fichiers monté dans l’espace de noms du processus du container.

Grâce à son expérience utilisateur particulièrement conviviale pour les développeurs, une entreprise a su s’imposer dans l’univers des containers. Toutefois, des projets open source – notamment Docker – élargissent l’accès à ce modèle. De son côté, le projet de normalisation Open Container Initiative (OCI) a clairement défini les caractéristiques clés d’une image :



Éléments d’une image OCI, tirés des spécifications OCI sur GitHub



Saurabh Gupta. "Containers and Pivotal Platform" 2016.

Contactez-nous