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).


Les containers vous intéressent ? Voici les points à retenir.

Au fil du temps, le terme « Docker » est presque devenu synonyme de containers. Il renvoie cependant à de multiples concepts :
  • Un raccourci pour désigner les technologies de containers
  • Une start-up commerciale financée par du capital-risque : Docker, Inc.
  • Un projet de containers open-source au modèle de gouvernance ouvert (sans fondation), le « projet Docker »
  • Le nom de marque d’un produit commercial lancé par Docker, Inc.
  • Le nom souvent donné au fameux environnement d’exécution open-source, le « moteur Docker »
  • Un format d’image de container baptisé « image Docker »
  • Une chaîne d’outils pour les postes de travail de développeurs, destinée à simplifier le développement et le packaging des applications, « Docker for Mac » et « Docker for Windows »
Il existe d’autres sources de containers.

On compte un certain nombre de projets open-source, ainsi qu’une pléthore de produits commerciaux pour la création de containers. À vous de sélectionner le format le mieux adapté à votre entreprise.

Les containers et la virtualisation sont complémentaires.

Pour renforcer la sécurité et l’isolement, il est possible d’exécuter les containers sur des machines virtuelles légères. Avec la virtualisation, il est plus facile de gérer l’infrastructure matérielle (réseaux, serveurs, stockage, etc.) qui sous-tend les containers.

Une plateforme va bien au-delà de la simple orchestration de containers.

Une plateforme englobe toute une suite de fonctionnalités intégrées pour offrir aux développeurs et aux opérations un déploiement, un monitoring, une gestion, une évolutivité, une sécurité et des interconnexions simplifiés de leurs applications. Les technologies de containers font partie intégrante de cette plateforme. Elles s’avèrent même essentielles au déploiement et à la gestion des applications. Quant aux systèmes qui fournissent ces fonctionnalités, ils interviennent en appui pour l’exécution d’applications.

Les containers n’éliminent pas le besoin d’une plateforme de déploiement fiable.

Une plateforme de virtualisation complète ne se limite pas aux hyperviseurs et aux images de machines. Dans la même veine, les technologies de containers ne représentent qu’un élément d’un ensemble plus large de composants indispensables à une plateforme d’entreprise. Les équipes DevOps se sont ainsi rendu compte qu’il ne suffisait pas de faire d’une image un container. Par exemple, la containerisation d’un workload ne leur offre pas systématiquement toutes les fonctionnalités recherchées en matière de haute disponibilité, de scalabilité automatique, de routage du trafic et de journalisation. Ce rôle revient à des plateformes intégrées et éprouvées comme VMware Tanzu.


Stay current on important topics

Newsletter signup

Les containers n’éliminent pas non plus le besoin d’une plateforme de gestion et de sécurité de pointe.

La création d’un container à partir d’une image n’optimise pas non plus l’expérience des équipes DevOps, puisque les containers sont par nature dépourvus de fonctionnalités de sécurité, de haute disponibilité, de gestion du cycle applicatif, etc. Toutes les entreprises en quête de scalabilité, de sécurité et de déploiements homogènes auront besoin d’une plateforme équipée des fonctionnalités indispensables à l’exécution d’un workload sous forme de container.

Acheter ou développer votre propre plateforme : c’est à vous de choisir.

Puisque la notion même de container ne prévoit aucune des fonctionnalités d’une plateforme, il revient à vos équipes opérationnelles d’intégrer elles-mêmes ces fonctionnalités, soit en développant leur propre solution, soit en associant un ensemble disparate d’outils, d’utilitaires et de produits plus ou moins matures de fournisseurs divers.

Depuis toujours, Cloud Foundry prend en charge les containers.

Encore aujourd’hui, la mission de Cloud Foundry repose sur deux grands axes :

  • Meilleure utilisation de l’infrastructure sous-jacente
  • Environnements de développement résilients, homogènes, ultra-productifs, simples d’utilisation et prêts pour le passage en production
Le format d’image et les environnements d’exécution des containers reposent sur des standards.

Le collectif OCI (Open Container Initiative) travaille à l’élaboration de normes pour le format d’image et les environnements d’exécution des containers. Les développeurs et opérationnels profitent ainsi de la portabilité des applications conteneurisées, tandis que les membres du projet bénéficient des contributions de leurs pairs. Pivotal (now part of VMware) est l’un des membres fondateurs de l’OCI.


Containers et buildpacks

Qu’ils soient créés par les développeurs ou par la plateforme, Cloud Foundry gère tous les containers. Le choix dépendra de vos préférences en termes de gestion des dépendances et de mises à jour de vos applications. Dans le cas des containers créés par la plateforme, Cloud Foundry utilise des buildpacks afin de packager la gestion du cycle applicatif. Quant aux mises à jour des containers créés par les développeurs, elles sont gérées hors de la plateforme.


Comparatif
Containers créés par les développeurs
Containers créés par la plateforme
Déploiement d’applications sous forme de container. Les développeurs rassemblent le code source et toutes les dépendances dans une définition de container. Ce pack est ensuite déployé dans l’environnement cible.
Déploiement d’applications sous forme de code. Les développeurs déploient du code source brut ou compilé, le buildpack s’occupe ensuite de son packaging avant sa publication dans l’environnement cible.
Identification du middleware. Dans un déploiement basé sur les containers, les développeurs choisissent une image de base, les dépendances de langage et les composants du middleware qui forment l’image portable. L’environnement runtime exécute ce container.
Gestion du middleware par la plateforme. Pour les développeurs, nul besoin de sélectionner et de configurer le middleware et les environnements d’exécution des langages. Le buildpack assemble le container à partir d’une définition reconnue comme fiable. L’environnement runtime exécute ensuite ce container.
Choix de langage quasi-illimité. Les containers peuvent inclure la plupart des technologies Linux. Les développeurs bénéficient donc d’une grande latitude au niveau des langages et des dépendances.
Prise en charge des langages en fonction du buildpack existant. Bien qu’il existe des buildpacks pour tous les principaux langages actuels, un développeur doit se limiter aux buildpacks disponibles. Si besoin, il pourra toujours créer un buildpack personnalisé.
Gestion du cycle de vie par les développeurs. En cas de bugs ou de mises à jour du middleware ou des environnements d’exécution des langages, les développeurs doivent actualiser eux-mêmes le container et le redéployer dans l’environnement cible.
Gestion d’une grande part du cycle de vie par la plateforme. Compatible avec les applications basées sur les buildpacks, VMware Tanzu peut mettre à jour le middleware et les environnements d’exécution des containers déployés, et ce sans intervention des développeurs.