L’informatique a connu une série de transformations majeures au fil des ans. Le passage de l’infrastructure physique au virtuel a profondément modifié les modes opératoires et l’architecture. Mais la virtualisation n’a permis d’aller que jusqu’à un certain point. La virtualisation des composants physiques n’a pas donné naissance aux architectures cloud natives. C’est là qu’intervient la conteneurisation.
Les conteneurs sont des unités logicielles standardisées qui peuvent être utilisées pour empaqueter du code ainsi que les différentes dépendances sous-jacentes. Cela permet à une application de s’exécuter plus rapidement et de manière fiable, et d’être facilement transférée d’un environnement à un autre.
Les images de conteneurs Docker, par exemple, sont des packages logiciels légers, autonomes et exécutables. Elles contiennent le code, l’environnement d’exécution, les outils système, les bibliothèques système, les paramètres et tout autre élément nécessaire à l’exécution d’une application. Elles sont ainsi rapidement devenues des éléments indispensables de la boîte à outils des développeurs.
Pourquoi ? Les conteneurs isolent les logiciels de l’environnement sous-jacent. Ils offrent également une sécurité renforcée. Bien que certaines failles de sécurité puissent apparaître dans les conteneurs, ceux-ci offrent généralement une meilleure sécurité, car les applications qu’ils hébergent bénéficient par défaut de solides capacités d’isolation.
Voici les principales tendances du marché de la conteneurisation :
Dissociation et portabilité
À bien des égards, les conteneurs ressemblent aux machines virtuelles. Une différence majeure réside toutefois dans leurs propriétés d’isolation plus souples. Le système d’exploitation peut ainsi être partagé entre plusieurs applications. Comme les conteneurs sont découplés de l’infrastructure sous-jacente, leur portabilité facilite leur déplacement entre différents clouds et systèmes d’exploitation, ainsi que le développement cloud natif.
Les conteneurs permettent ainsi aux développeurs d’éviter une grande partie du travail nécessaire au codage des applications, en tirant parti d’éléments préempaquetés qui nécessitent seulement l’ajout du code propre aux besoins de l’application. Les logiciels deviennent ainsi plus faciles à développer, à tester et à déployer.
DevOps a besoin de conteneurs, pas de VM
L’approche DevOps va de pair avec les conteneurs. Selon Red Hat, de nombreuses
organisations se sont enthousiasmées pour la méthodologie itérative du DevOps. Celle-ci est désormais utilisée dans un grand nombre d’entreprises, même si beaucoup ont eu du mal à en exploiter pleinement le potentiel. Le provisionnement est l’un des problèmes qui revient souvent. Une étude du Enterprise Strategy Group (ESG) a révélé que 67 % des professionnels de l’informatique reconnaissaient subir des pressions pour accélérer le provisionnement de l’infrastructure afin de soutenir les développeurs et les équipes métiers.
L’une des difficultés du DevOps tient au fait que les développeurs ont tendance à revenir à ce qu’ils connaissent — exécuter des machines virtuelles (VM) dans le cloud. Or cela tend à freiner les progrès du DevOps. Les conteneurs fournissent une plateforme plus automatisée sur laquelle mettre en place le DevOps et tirer parti des microservices.
Pour réussir, le DevOps repose sur la capacité à automatiser les tâches routinières et à créer des environnements standardisés. En définitive, la transformation DevOps est renforcée par l’adoption d’un environnement conteneurisé exécuté sur une plateforme cloud native. D’où la tendance à voir le succès du DevOps stimulé par l’adoption des conteneurs.
Suivre les hyperscalers
Selon Omdia, une société d’études spécialisée dans l’informatique, les fournisseurs de services cloud utilisent largement les conteneurs, en particulier les plus importants comme Google, Amazon et Microsoft. Omdia indique qu’en moyenne, 45 % des conteneurs logiciels utilisés dans les environnements d’infrastructure en tant que service (IaaS) sont hébergés dans des centres de données appartenant à des fournisseurs cloud.
Alors que les environnements d’infrastructure en tant que service (IaaS) et de plateforme en tant que service (PaaS) sont depuis longtemps présentés par les fournisseurs cloud comme la voie à suivre, leur taux d’adoption est resté relativement faible jusqu’à récemment. Les conteneurs ont changé la donne et comptent parmi les principales raisons de l’essor de l’IaaS et du PaaS.
Charges de travail de deep learning
Une tendance majeure est la gestion des charges de travail d’intelligence artificielle (IA) dans des conteneurs. Les technologies de conteneurisation permettent aux organisations de bénéficier de l’isolation, de la portabilité, d’une évolutivité illimitée et d’un comportement dynamique. La gestion de l’infrastructure d’IA devient ainsi plus automatisée, plus simple et davantage adaptée aux besoins de l’entreprise qu’auparavant, selon Bin Fan, vice-président de l’open source et ingénieur fondateur chez Alluxio.
« Les charges de travail de deep learning sont de plus en plus conteneurisées, ce qui favorise davantage les opérations autonomes », a déclaré Fan. « Pour suivre cette tendance, les organisations peuvent exécuter leurs charges de travail d’IA dans des environnements cloud plus flexibles, associés à Kubernetes. »
Charges de travail avec état
Les développeurs d’applications et de plateformes s’éloignent progressivement de la méthode traditionnelle consistant à créer des bases de données et autres référentiels destinés à stocker les données. Désormais, davantage d’éléments peuvent être déplacés vers une plateforme de conteneurisation afin de simplifier la conception et d’ajouter des fonctionnalités.
« La conteneurisation sera utilisée pour davantage de charges de travail avec état, notamment pour les bases de données et les éléments qui nécessitent réellement un stockage dans Kubernetes et les conteneurs », a déclaré Al Brown, directeur technique de Veritone.
Dans le cadre de cette tendance, les développeurs délaissent les services cloud généralistes comme Amazon Elastic Container Service (ECS) et la plateforme de calcul serverless Amazon Fargate au profit de services basés sur Kubernetes, tels qu’OpenShift, qui offrent une meilleure efficacité dans l’utilisation des ressources.
« Il s’agit de délaisser les versions spécifiques au cloud de ces innovations au profit de versions plus standard de Kubernetes ainsi que d’OpenShift », a déclaré Brown.