Accueil Expert Avis d’expert – Comment Kubernetes et les conteneurs impulsent les applications de...

Avis d’expert – Comment Kubernetes et les conteneurs impulsent les applications de demain

Gabriel Ferreira, directeur technique France, Pure Storage

Pour Gabriel Ferreira, directeur technique France de Pure Storage, les conteneurs et Kubernetes sont la force motrice qui se cache derrière la manière dont le secteur informatique réinvente la création et l’exécution des applications, alimentant l’efficacité de l’informatique d’entreprise. Décryptages et analyses pour les lecteurs de Solutions Numériques.

Les conteneurs sont une unité logicielle standard qui regroupe le code et toutes ses dépendances afin qu’une application s’exécute rapidement et de manière fiable, d’un environnement informatique à un autre. Les conteneurs facilitent le déploiement d’applications basées sur le cloud car ils contiennent toutes les informations nécessaires à leur exécution dans des paquets gérables. L’importance de cette technologie pour le secteur est indéniable.  

L’importance de la centralité des données 

Avec les données au cœur de leur activité, les entreprises numériques utilisent une nouvelle pile technologique « cloud native » pour transformer ces données en valeur et en informations. La façon dont sont conçues les applications cloud-natives est adaptée à un fonctionnement dans le cloud public et sur site. Elles peuvent être déployées et réparées plus rapidement, et peuvent être déplacées facilement entre différents environnements. Elles sont généralement composées de microservices et regroupées dans des conteneurs. Cette nouvelle pile cloud-native comprend un nouvel ensemble d’applications : certaines analysent des flux de données en temps réel, d’autres indexent des quantités massives de données pour la recherche et enfin d’autres qui entraînent des algorithmes d’apprentissage automatique sur des ensembles de données de plus en plus volumineux. Il ne fait aucun doute que cette révolution cloud-native est soutenue et stimulée par une combinaison de conteneurs et de Kubernetes.  

Les conteneurs permettent d’exécuter efficacement des applications désagrégées avec une très forte évolutivité et fluidité, et une surcharge minimale. Kubernetes apporte l’orchestration pilotée par la machine capable de jongler avec tous ces fragments d’applications et les assembler en une application composite si nécessaire. 

L’adoption des conteneurs parle d’elle-même 

Les taux d’adoption de cette nouvelle pile cloud-native sont stupéfiants. Selon 451 Research, 95 % des nouvelles applications sont développées dans des conteneurs. Les entreprises font évoluer leurs stratégies de cloud computing vers le multicloud, dont les conteneurs sont un élément clé. Gartner rapporte que 81 % des entreprises sont déjà multicloud, c’est-à-dire qu’elles travaillent avec plus de deux fournisseurs de cloud. Gartner prédit également que 85 % des entreprises à travers le monde utiliseront des conteneurs en production d’ici à 2025 – une hausse considérable par rapport à seulement 35 % en 2019. 

Il s’agit encore d’un marché précoce avec un énorme potentiel de croissance, il est donc difficile de faire des prévisions, mais IDC prévoit que le marché des logiciels d’infrastructure de conteneurs dépassera à lui seul 1,5 milliard de dollars d’ici à 2022, une information qui attire l’attention des entreprises.  

Micro-services et conteneurs, un mariage parfait 

En termes simples, les micro-services sont les fonctions individuelles d’une application, sur lesquels s’appuie une nouvelle approche architecturale de la création d’applications. Les micro-services permettent aux équipes informatiques de créer et d’exécuter plus facilement les applications dont leurs clients ont besoin pour devancer leurs concurrents. Parmi les plus grandes applications grand public et professionnelles, beaucoup fonctionnent aujourd’hui avec des micro-services, preuve qu’il ne s’agit pas seulement d’une tendance pour les petites organisations, mais aussi pour les plus grandes et les plus complexes. En effet, plus l’entreprise est grande, plus il lui est avantageux d’adopter les micro-services, car ses équipes sont souvent dispersées et la communication directe limitée.  

Comment se fait-il que les services de streaming n’interrompent jamais leurs services pour effectuer une maintenance et permettent à leurs utilisateurs de bénéficier d’une expérience de visionnage en continu, pour leur plus grand plaisir ? Grâce aux micro-services, qui permettent de diviser une application en petites parties qui communiquent via des API ; les mises à jour sont facilitées et se font indépendamment de chaque partie. Par conséquent, si un service de streaming doit mettre à jour sa fonctionnalité de réinitialisation du mot de passe, il n’a pas besoin de déconnecter des millions d’utilisateurs, car cette fonctionnalité repose sur un micro-service différent qui peut être mis à jour indépendamment. Les développeurs et les utilisateurs sont donc satisfaits.   

Les micro-services sont là pour durer et constitueront la base des applications de demain. Dans quel type d’environnement faut-il les exécuter ? Les conteneurs sont l’élément de base idéal pour les micro-services. Ils leur offrent un environnement léger et cohérent, qui peut suivre l’application depuis l’ordinateur du développeur au déploiement final, en passant par les tests. En outre, les conteneurs peuvent être exécutés sur des machines physiques ou virtuelles, et ils démarrent en quelques secondes, voire quelques millisecondes, ce qui est plus rapide que les machines virtuelles. 

Regrouper les applications avec leurs dépendances 

Traditionnellement, les paquets logiciels comprennent tout le code nécessaire pour exécuter l’application sur un système d’exploitation particulier, comme Windows ou Linux. Cependant, pour exécuter une application, il ne suffit pas de disposer du code de l’application, il faut également disposer d’autres applications. Par exemple, une application permettant de consulter l’évolution des valeurs boursières peut utiliser une bibliothèque pour convertir les noms de sociétés en codes mnémoniques et vice-versa. Cette fonctionnalité est générique et n’apporte pas de valeur ajoutée, mais elle est néanmoins importante pour permettre à un utilisateur de taper « Apple » et d’obtenir le titre « AAPL ». La bibliothèque est un exemple de dépendance. Sans que le service informatique le sache, toute application peut avoir des centaines de dépendances de ce type. 

L’une des principales raisons pour lesquelles les conteneurs sont devenus si populaires est qu’ils ont fourni un mécanisme et un format permettant de regrouper le code d’une application – avec ses dépendances – d’une manière qui facilite l’exécution d’une application dans différents environnements. Cela a permis de résoudre un gros problème pour les développeurs qui luttaient constamment contre les problématiques de compatibilité d’environnement entre leurs ordinateurs portables dédiés au développement, leurs environnements de test et la production. En utilisant des conteneurs pour packager leurs applications, ils pouvaient « coder une fois et s’exécuter n’importe où », accélérant ainsi considérablement la livraison des applications.  

Tous les services de conteneurs ne s’équivalent pas 

La première génération d’applications cloud-natives a été conçue pour être « stateless », c’est-à-dire utilisant des conteneurs qui effectuaient le travail d’applications sans avoir besoin de stocker des données persistantes dans les volumes associés. À mesure que l’utilisation des conteneurs évolue, les développeurs créent de plus en plus d’applications « stateful » à l’intérieur des conteneurs, qui stockent des données dans un volume qui doit être persistant et conservé. C’est là que le monde du stockage devient un défi. La flexibilité et l’ouverture des conteneurs se transforment en obstacles et en goulots d’étranglement au niveau de la couche de stockage, et les capacités de stockage simples que nous tenons pour acquises depuis des années dans la pile d’applications traditionnelle (haute disponibilité, reprise après sinistre, sauvegarde, cryptage) deviennent des défis dans le monde des conteneurs. Pire, il arrive souvent que chaque application élabore sa propre stratégie de stockage, ce qui rend impossible l’application de normes et la conformité des données dans toute l’entreprise. 

C’est pourquoi il est recommandé de choisir une solution qui fournit les services de données natifs de Kubernetes dont les applications traditionnelles et cloud-natives ont besoin (puisque ces applications traditionnelles ne sont pas prêtes de disparaître). Cela signifie qu’il faut fournir des services de stockage en mode bloc, fichier et objet, dans plusieurs classes de performance, provisionnés à la demande selon les besoins de Kubernetes. Il s’agit de fournir un accès instantané aux données, une protection contre tous les types de défaillances, la possibilité de mobiliser les données entre les clouds et même vers/depuis les sites périphériques où sont produit les données, et une sécurité robuste, quel que soit l’endroit où l’application se déplace.
Si les entreprises appliquent cela, elles verront par elles-mêmes pourquoi Kubernetes est devenu l’ingrédient magique, mais pas si secret, des entreprises modernes.