À vos marques… prêts… démarrez vos conteneurs | DSI

Par Siva Sreeraman VP, CTO et chef de la tribu de la modernisation chez Mphasis
De nombreux développeurs ont rencontré des difficultés pour porter des applications développées pour un environnement informatique particulier il y a des décennies. L’incompatibilité et le manque de fiabilité causés par les différences de configuration telles que les versions des compilateurs, des chargeurs, des bibliothèques d’exécution, des intergiciels et des systèmes d’exploitation dans les nouveaux environnements ont contribué à l’augmentation des efforts, des coûts et des délais du projet.
Les conteneurs offrent une solution élégante à ce problème. Chaque conteneur exploite un noyau de système d’exploitation partagé et encapsule tout ce qui est nécessaire pour exécuter une application (code d’application, dépendances, variables d’environnement, runtimes d’application, bibliothèques, outils système, etc.) dans une unité isolée et exécutable. Par conséquent, les distributions du système d’exploitation et les configurations d’infrastructure sous-jacentes sont extraites des programmes d’application, ce qui leur permet de s’exécuter correctement et de manière identique quel que soit l’environnement.
Comment nous sommes arrivés ici
La conteneurisation est née en 2001 en tant que projet permettant à plusieurs serveurs Linux à usage général de fonctionner sur un seul boîtier avec autonomie et sécurité. Cette technologie a depuis été améliorée par Red Hat, IBM et Docker. Google a lancé sa plateforme d’orchestration de conteneurs Kubernetes (K8s) en 2014, annonçant le lancement de plus de 2 milliards de conteneurs par semaine. Les données de 2020 de la Cloud Native Container Foundation ont indiqué une préférence écrasante pour Kubernetes parmi les entreprises qui utilisaient des conteneurs en production.
Aujourd’hui, de nombreuses organisations découplent leurs applications monolithiques complexes en microservices modulaires et gérables emballés dans des conteneurs qui peuvent être reliés entre eux. Les orchestrateurs de conteneurs tels que Kubernetes automatisent davantage l’installation, le déploiement, la mise à l’échelle et la gestion des charges de travail des applications conteneurisées sur les clusters, effectuent la journalisation, le débogage, les mises à jour de version, etc.
Avantages
Les développeurs de logiciels préfèrent les conteneurs pour leur mobilité, leur uniformité et leur portabilité dans la création et le déploiement d’applications, ainsi que pour les performances constantes de l’exécution du code quel que soit l’environnement d’exécution – une approche «écrire une fois, exécuter n’importe où» sur différentes infrastructures sur site ou dans le nuage. En cas de problème, les images de conteneur peuvent être restaurées rapidement. À la demande, ils peuvent être rapidement lancés, ajoutant des fonctionnalités et une évolutivité, et ils peuvent être rapidement désassemblés, ce qui réduit les coûts d’infrastructure et l’utilisation des ressources.
Les conteneurs sont légers – ils n’ont pas besoin d’exécuter un système d’exploitation complet et de partager entre eux le noyau du système d’exploitation de la machine hôte. Ils n’ont pas besoin d’utiliser la même ressource que les machines virtuelles. Les conteneurs sont plus rapides à démarrer, améliorent l’efficacité des serveurs et réduisent les coûts des serveurs et des licences.
Les conteneurs permettent aux développeurs de se concentrer sur les fonctionnalités métier et de ne pas se soucier des configurations sous-jacentes des applications. 75 % des entreprises utilisant des conteneurs ont obtenu une augmentation modérée à significative de la vitesse de livraison des applications.
Un grand avantage de l’isolation des applications dans des conteneurs est la sécurité inhérente fournie. Comme les images sont les éléments constitutifs des conteneurs, le code introduit de manière malveillante ainsi que les composants inutiles peuvent être empêchés d’entrer dans les conteneurs. Chaque fois que des modifications sont apportées aux configurations de conteneurs ou que des conteneurs sont démarrés, l’auditabilité doit être mise en œuvre.
Défis
Bien que les conteneurs résolvent de nombreux problèmes de sécurité par rapport aux méthodes de virtualisation traditionnelles, ils introduisent également de nouveaux défis en matière de sécurité. Étant donné que la zone vectorielle de la surface d’attaque du cluster Kubernetes est si vaste et en constante expansion – il existe des couches et des couches d’images qui couvrent des milliers de machines et de services – les cybercriminels peuvent profiter de toute mauvaise configuration pour lancer des attaques coordonnées sur Kubernetes afin d’accéder aux réseaux de l’entreprise.
Des attaques récentes ont introduit le cryptojacking, dans lequel les vastes ressources de calcul d’une organisation sur le cloud sont détournées sans méfiance vers l’extraction de crypto-monnaie. Comme Kubernetes gère d’autres machines et réseaux, les entreprises doivent continuellement renforcer leurs postures de sécurité et prendre des mesures proactives pour se défendre.
Bien que les gestionnaires de clusters de conteneurs tels que Docker Swarm et Apache Mesos aient permis aux développeurs de créer, d’expédier et de planifier des applications multi-conteneurs, et d’accéder, de partager et de consommer des pools de conteneurs via des API, la mise à l’échelle des conteneurs évolue toujours. Les outils d’orchestration de conteneurs et les gestionnaires de clusters de conteneurs ne sont pas entièrement intégrés les uns aux autres. Aujourd’hui, les gestionnaires de clusters ne sont pas en mesure de fournir une sécurité au niveau de l’entreprise, et un ensemble commun de normes fait défaut.
En conclusion
L’utilisation du cloud public géré Container-as-a-Service (CaaS) comme Amazon Web Services (AWS) Elastic Kubernetes Service (EKS), Microsoft Azure Kubernetes Service (AKS) et Google Kubernetes Engine (GKE) est répandue parmi les entreprises aujourd’hui. Les offres de plate-forme en tant que service (PaaS) basées sur des conteneurs telles que Google Cloud Anthos, Red Hat Open Shift, VMWare Tanzu Application Service et SUSE Rancher sont également répandues.
Malgré les défis, les conteneurs présentent de nombreux avantages et offrent aux entreprises un choix attrayant pour le développement d’applications logicielles. 61 % des utilisateurs de la technologie des conteneurs s’attendent à ce que plus de 50 % de leurs applications existantes et nouvelles soient conditionnées sur des conteneurs au cours des deux prochaines années. D’ici 2026, Gartner estime que 90 % des organisations mondiales exécuteront des applications conteneurisées en production.
La technologie des conteneurs continuera d’être un élément fondamental de la pile technologique des logiciels d’entreprise au cours des prochaines années.
Pour en savoir plus, rendez-nous visite ici.
Source link