Les organisations luttent constamment entre l’adoption des changements technologiques pour ouvrir de nouvelles opportunités commerciales et la protection de l’entreprise contre de nouveaux défis et risques. Dans cet article, nous examinerons la conteneurisation et la manière dont l’adoption de cette technologie dans les produits F5 affecte les professionnels de l’informatique, les architectes et les décideurs commerciaux.
Au cours des 20 dernières années, la virtualisation a transformé l’informatique serveur, permettant à plusieurs systèmes d’exploitation distincts de fonctionner sur une seule plate-forme matérielle. Une approche plus moderne est la conteneurisation (ou virtualisation du système d’exploitation), qui permet à plusieurs applications de s’exécuter sur une seule instance d’un système d’exploitation hôte. Chaque instance d’application partage ensuite les binaires et les bibliothèques installés dans l’instance unique du système d’exploitation. La figure 1 compare ces approches.
Figure 1 – Comparaison des machines virtuelles avec les conteneurs
Contrairement aux machines virtuelles (VM), les conteneurs peuvent partager le même système d’exploitation, en virtualisant au niveau du système d’exploitation plutôt qu’au niveau de l’hyperviseur.
Sans surprise, les développeurs aiment les conteneurs car ils rendent le développement et le déploiement d’applications et la création de microservices rapides et faciles. La conteneurisation permet également une plus grande portabilité, car les applications dans les conteneurs sont plus faciles à déployer sur différents systèmes d'exploitation, plates-formes matérielles et services cloud. Les conteneurs utilisent moins de ressources que les applications exécutées directement sur des systèmes d’exploitation hébergés sur du matériel nu ou sur des machines virtuelles.
En général, la plupart des discussions (et de la documentation) sur les conteneurs se concentrent sur la perspective de programmation ou DevOps. En tant que professionnel de l'informatique, architecte système ou décideur d'entreprise, même si vous appréciez la flexibilité que la conteneurisation peut apporter, vous pouvez avoir de réelles inquiétudes quant à la manière dont ce changement affectera l'administration, la gestion et la surveillance des applications et des services au sein de votre environnement. Vous souhaitez également vous assurer que la conteneurisation n’affecte pas négativement la sécurité du réseau et des applications.
Dans un marché de plus en plus concurrentiel, les systèmes informatiques modernes doivent offrir des avantages commerciaux réalisables. Pour répondre à cette exigence, il est essentiel que les services informatiques puissent accroître leur capital applicatif, en concevant et en créant des architectures qui proposent non seulement davantage d’applications, mais également des applications dotées de plus de fonctionnalités, d’une convivialité améliorée et d’une intégration plus facile.
Le défi pour les directeurs informatiques est que leurs services doivent offrir davantage de fonctionnalités sans augmenter leurs effectifs. Les améliorations de productivité ne proviennent plus désormais de l’embauche de plus de personnes, mais des avancées technologiques et de l’automatisation qui permettent d’augmenter le nombre d’applications disponibles pour les clients, gérées par une équipe de même taille.
La facilité de déploiement des conteneurs présente un défi supplémentaire. Les développeurs ont besoin de formation et de conseils pour s’assurer qu’ils prennent en compte à la fois l’évolutivité et la sécurité lors de la création d’applications et les professionnels de l’informatique peuvent les aider à atteindre ces résultats. Ici, vous devez réfléchir à l’impact sur la production des plateformes de conteneurs telles que Kubernetes et Docker, et à la manière dont la nécessité d’être agile ne doit pas entraîner de résultats indésirables dus à de mauvaises pratiques de sécurité ou à l’absence de prise en compte des charges de production.
Kubernetes est une plateforme open source permettant de gérer des services et des charges de travail conteneurisés. Kubernetes lui-même est à l'origine du système de planification et d'orchestration de conteneurs de Google, que la société a ensuite fait don à la Cloud Native Computing Foundation, rendant le code source ouvert à tous. Docker fournit un type similaire d'architecture et de distribution open source, composé d'une suite de logiciels couplés en tant que service (SaaS) et de plateformes en tant que service (PaaS).
Un facteur clé pour offrir des avantages commerciaux réalisables est de minimiser le délai de rentabilisation. De plus en plus, des facteurs tels que les performances et la latence passent au second plan par rapport à la facilité d’insertion. Par conséquent, si vous avez deux composants, tous deux dotés de fonctionnalités presque identiques, mais dont l’un a des performances supérieures tandis que l’autre est plus facile à intégrer, les organisations ont tendance à choisir le composant le plus facile à intégrer à l’environnement actuel. À mesure que la complexité environnementale augmente, ce biais risque de perdurer.
Lorsque vous cherchez à mettre en œuvre une technologie telle que la conteneurisation, vous avez besoin d’un moyen de mesurer la valeur qu’apporte cette nouvelle approche. Les facteurs qui affectent la valeur comprennent généralement l’adéquation, la capacité, l’effort et le coût. L’équation suivante donne un exemple de la manière d’attribuer une valeur relative en fonction de ces facteurs.
Les unités que vous utilisez dans l’équation ne sont pas pertinentes ; ce qui est important, c’est qu’elles soient les mêmes pour chaque élément que vous évaluez.
Cette équation souligne que la technologie doit être transparente pour s’intégrer et que la familiarité (c’est-à-dire la facilité d’insertion) peut être plus importante que les meilleures fonctionnalités ou performances de sa catégorie. En conséquence, l’effort de déploiement a un effet d’équilibrage lorsqu’il s’agit des calculs de valeur globale, ce qui peut faire que des produits moins performants soient plus attrayants pour les clients en raison de leur facilité d’insertion.
Un exemple de cet effet pourrait être celui de deux solutions de surveillance concurrentes. Le produit A possède des spécifications fantastiques, avec les meilleures fonctionnalités de journalisation et de création de rapports de sa catégorie. Il intègre une sécurité de niveau militaire et est hautement gérable. Malheureusement, son interface de ligne de commande propriétaire, son faible support des normes ouvertes et son manque de fonctionnalités d'intégration rendent son installation difficile. Il est également plus cher que la plupart des autres produits sur le marché.
En comparaison, le produit B est loin d’avoir les capacités de son rival, bien qu’il fournisse des niveaux acceptables de surveillance et de sécurité. Cependant, il surpasse le produit concurrent en termes de coût et de facilité d'installation. La tabulation des scores pour chaque produit produit le tableau ci-dessous, avec des notes attribuées de 1 à 10 pour l'adéquation, la capacité et l'effort d'installation, 1 étant le plus bas et 10 le plus élevé.
Produit A |
Produit B |
|
Pertinence |
10 |
4 |
Capacité |
10 |
2 |
Effort d'installation |
10 |
2 |
Coût |
1 000 $ |
500 $ |
Valeur |
20 |
60 |
En insérant ces chiffres dans l’équation ci-dessus, on obtient le score de valeur indiqué dans la ligne inférieure du tableau.
Vous pouvez constater comment le produit le moins adapté et le moins performant, cinq fois plus facile à installer à moitié prix, offre une valeur estimée trois fois supérieure à celle de son meilleur rival. De nombreuses organisations comprennent ces considérations et utilisent de plus en plus la facilité d’installation et d’intégration comme facteur clé lors de l’adoption et du déploiement de nouvelles technologies. Les approches basées sur des conteneurs peuvent réduire considérablement les efforts de déploiement et contrôler les coûts tout en maintenant à la fois l’adéquation et la capacité.
Les applications générant de plus en plus de valeur commerciale, la conteneurisation offre une solution logique aux défis des pratiques de mise en œuvre informatique centrées sur DevOps. Les conteneurs offrent une isolation par rapport à la plateforme sur laquelle ils s'exécutent et les uns par rapport aux autres sans la surcharge de gestion liée à l'exécution de machines virtuelles. Les développeurs peuvent facilement créer des environnements d'application contenant tous les binaires et bibliothèques dont ils ont besoin, avec les fonctionnalités de réseau et de gestion requises intégrées. La conteneurisation simplifie également les tests et le déploiement des applications.
Les environnements basés sur des conteneurs offrent une meilleure utilisation des ressources que les ordinateurs virtuels en augmentant considérablement le nombre d'instances d'application pouvant s'exécuter sur un serveur. Sans la surcharge des systèmes d’exploitation hôtes et invités, les environnements de conteneurs utilisent plus efficacement le temps processeur et l’espace mémoire en partageant le noyau du système d’exploitation. La conteneurisation offre également plus de flexibilité architecturale, car la plate-forme sous-jacente peut être soit une machine virtuelle, soit un serveur physique. Stratégie produit Red Hat1 indique que près de la moitié des clients Kubernetes déployant des applications dans des conteneurs à l'avenir exécuteront le moteur de conteneur directement sur du bare metal.
La conteneurisation constitue la prochaine avancée sur la voie de l'informatique matérielle à la virtualisation et au multicloud, permettant une automatisation jusqu'à 100 %, des temps de création de services inférieurs à la seconde et des durées de vie de services mesurables en secondes. C'est ce provisionnement et ce déprovisionnement immédiats de services et de microservices au sein d'une architecture informatique moderne que permettent les environnements de conteneurs tels que Docker, OpenShift et Kubernetes.
Il est important de noter que la conteneurisation offre un avantage clé qui est vital dans le monde multiplateforme et multicloud d’aujourd’hui : la possibilité de porter des applications sur site vers le cloud, vers un autre fournisseur de cloud, puis de nouveau vers le site, le tout sans modifier le code sous-jacent. L'interopérabilité étant un facteur clé qui sous-tend les décisions architecturales, cette portabilité permet aux services informatiques d'atteindre des étapes clés pour les déploiements de services d'application et aide les équipes DevOps à atteindre les objectifs organisationnels. Un récent rapport d’IBM2 souligne comment l'utilisation de conteneurs pour les déploiements d'applications permet également aux entreprises d'améliorer la qualité des applications, de réduire les défauts et de minimiser les temps d'arrêt des applications et les coûts associés.
Le même rapport répertorie également les applications particulièrement adaptées aux environnements basés sur des conteneurs, notamment l’analyse de données, les services Web et les bases de données. Ici, le facteur clé est la performance, mais d’autres facteurs pertinents à prendre en compte sont de savoir si les applications sont susceptibles de s’exécuter dans plusieurs environnements et si elles utilisent des microservices pour prendre en charge plusieurs équipes DevOps travaillant en parallèle. Avec les conteneurs, vous pouvez résoudre les problèmes de performances en créant simplement davantage d'instances d'une application, à condition que vous implémentiez une conception d'architecture sans état et que vous fournissiez des services d'application à grande échelle.
Les conteneurs ne sont pas totalement exempts de défis de déploiement et la technologie encore jeune n’a pas encore atteint le niveau de maturité de la virtualisation. La section suivante met en évidence certains des défis posés par les conteneurs.
Figure 2 – Réalisation d’une conteneurisation équilibrée
Un critère de conception essentiel avec la conteneurisation est l’équilibre entre les trois vecteurs de performance, de densité et de fiabilité, comme le montre la figure 2.
L’approche F5 consiste à se concentrer sur la conteneurisation au niveau des composants plutôt qu’au niveau du système. Cette approche apporte plusieurs avantages, parmi lesquels :
La conteneurisation au niveau des composants nous permet d’atteindre cet équilibre à trois via la désagrégation, la planification et l’orchestration. Les produits F5 qui implémentent des conteneurs utiliseront ensuite ces fonctionnalités pour maximiser les avantages de la conteneurisation.
Pour aider les organisations à adopter des technologies basées sur des conteneurs, F5 propose F5® Container Ingress Services , une intégration de conteneurs open source. Container Ingress Services fournit des services d'automatisation, d'orchestration et de mise en réseau tels que le routage, le déchargement SSL, le routage HTTP et une sécurité robuste. Il intègre notamment notre gamme de services BIG-IP avec des environnements de conteneurs natifs, tels que Kubernetes et Red Hat OpenShift.
D'un point de vue architectural, Container Ingress Services occupe la position suivante par rapport à vos applications conteneurisées, en ajoutant des services de contrôleur Ingress de porte d'entrée et en permettant la visibilité et l'analyse via BIG-IP.
Figure 3 - Services d'entrée de conteneurs F5
Container Ingress Services répond à deux des problèmes clés identifiés précédemment dans ce document : l’évolutivité et la sécurité. Vous pouvez faire évoluer les applications pour répondre aux charges de travail des conteneurs et protéger les données des conteneurs en activant les services de sécurité. Avec l'intégration de la plateforme BIG-IP, vous pouvez mettre en œuvre des performances d'applications en libre-service au sein de votre environnement d'orchestration. L’utilisation de Container Ingress Services réduit également la probabilité que les développeurs implémentent des conteneurs Kubernetes avec des paramètres par défaut en utilisant des graphiques Helm pour les déploiements et les mises à niveau basés sur des modèles.
De plus, Container Ingress Services permet la sécurité grâce à une protection avancée contre les attaques d'applications de conteneurs et à des services de contrôle d'accès. Pour les développeurs d'applications et les professionnels DevOps qui ne sont pas familiarisés avec les configurations, les services d'application F5 offrent des politiques prêtes à l'emploi et un contrôle d'accès basé sur les rôles (RBAC) avec un support de niveau entreprise, en plus des communautés clients et open source DevCentral.
Les défis associés à Kubernetes natif sont liés au développement et à la mise à l’échelle d’applications de conteneurs modernes sans complexité accrue. Il peut y avoir des contraintes en termes de performances et de fiabilité, et les services qui fournissent une porte d'entrée aux conteneurs Kubernetes peuvent être implémentés de manière incohérente, nécessitant un effort d'intégration plus important pour le déploiement et la configuration.
La solution à ces défis est NGINX Kubernetes Ingress Controller , qui améliore l’environnement Kubernetes de base en fournissant des services de livraison pour les applications Kubernetes. En règle générale, les pods Kubernetes ne peuvent communiquer qu’avec d’autres pods du même cluster. La figure 4 montre le contrôleur d'entrée Kubernetes fournissant l'accès depuis le réseau externe aux pods Kubernetes, régi à l'aide de règles de ressources Ingress qui contrôlent des facteurs tels que le chemin d'accès URI (Universal Resource Identifier), le nom du service de sauvegarde et d'autres informations de configuration. Les services disponibles dépendent de votre utilisation de NGINX ou NGINX Plus.
Figure 4 – Contrôleur d'entrée NGINX pour Kubernetes
Les entreprises utilisant NGINX bénéficient de fonctionnalités telles que l’équilibrage de charge, la terminaison du cryptage SSL ou TLS, la réécriture d’URI et le cryptage SSL ou TLS en amont. NGINX Plus apporte des fonctionnalités supplémentaires, telles que la persistance de session pour les applications avec état et l'authentification API JSON Web Token (JWT).
À mesure que les organisations adoptent des microservices pour libérer l’agilité des développeurs et l’évolutivité native du cloud, elles sont confrontées à une courbe d’apprentissage pendant que les capacités organisationnelles rattrapent la technologie. Ces organisations souhaitent exploiter rapidement les avantages des microservices tout en préservant la stabilité qui sous-tend leur expérience client.
Aspen Mesh est une version entièrement prise en charge du service mesh open source Istio qui aide les entreprises à adopter les microservices et Kubernetes à grande échelle et à gagner en observabilité, en contrôle et en sécurité des architectures de microservices. Aspen Mesh ajoute des fonctionnalités d'entreprise clés en matière de maillage de services, notamment une interface utilisateur qui facilite la visualisation et la compréhension de l'état et de la santé de vos services, un RBAC précis et des capacités de politique et de configuration qui facilitent la conduite d'un comportement souhaité dans vos applications conteneurisées.
Aspen Mesh fournit une implémentation native Kubernetes, qui est déployée dans votre cluster Kubernetes et peut s'exécuter sur votre cloud privé ou public, ou sur site. Il est important de noter qu’il peut fonctionner en coopération avec un mécanisme d’entrée basé sur F5, en utilisant les services d’entrée de conteneurs pour provisionner des capacités de couche 7 plus approfondies.
D'un point de vue architectural, Aspen Mesh s'appuie sur un modèle de proxy side-car pour ajouter des niveaux de fonctionnalité et de sécurité aux applications conteneurisées, comme le montre la figure 5.
Figure 5 - Architecture du maillage Aspen
F5 est à l'avant-garde de l'adoption des conteneurs, offrant aux organisations la possibilité d'exécuter des environnements d'applications conteneurisés fiables, sécurisés et performants qui font évoluer les services d'application dans des charges de travail simples et massives, spécifiques à l'industrie. La technologie des conteneurs sera un élément clé dans les futurs environnements de développement et de déploiement d'applications, tels que les implémentations sans serveur, les architectures de maillage de services et la sécurité mobile. En tant qu'entreprise, F5 utilise à la fois ses propres recherches en développement et ses implémentations commerciales de conteneurs pour piloter et développer des applications et des services qui feront la différence dans votre entreprise.
Comme pour la virtualisation des produits existants, nous intégrons la technologie des conteneurs d’une manière qui peut ne pas être immédiatement évidente pour l’administrateur, mais qui sera entièrement transparente pour l’utilisateur final. En tant que client, vous constaterez des performances, une flexibilité et une sécurité accrues. À mesure que nous mettons en œuvre de manière transparente ces nouvelles applications et services, vous pouvez vous concentrer sur la garantie de disposer des fonctionnalités dont vous avez besoin.
Nous travaillons également à adopter les meilleures solutions open source dans nos produits, en étendant les services fournis par ces plateformes open source et en améliorant les capacités de nos environnements de conteneurs. Notre objectif est toujours de créer des produits plus faciles à déployer, plus rapides à intégrer dans vos réseaux existants, plus fiables et plus sécurisés.
Pour mettre en œuvre notre stratégie d’adoption de conteneurs, nous nous concentrons sur les approches suivantes :
F5 s'engage pour un avenir qui considère les conteneurs comme un mécanisme de livraison fondamental pour de nombreuses technologies de services d'applications futures. Ces technologies comprendront des technologies sans serveur, des services mesh et des solutions mobiles edge, mais peuvent inclure d’autres approches actuellement en cours de développement ou pas encore envisagées. Nous repensons notre gamme de produits pour intégrer des conteneurs dans nos solutions sans affecter les aspects importants d'une gestion efficace du réseau.
Tout comme avec la virtualisation, les conteneurs eux-mêmes deviendront plus conscients des capacités sous-jacentes du matériel sur lequel s’exécute le moteur de conteneur. Le multithreading, les vitesses de mémoire, l’accès au stockage et la mise en réseau seront de plus en plus transparents pour les applications exécutées dans chaque conteneur, améliorant ainsi encore l’utilisation des ressources.
Nous ne considérons pas les conteneurs comme un remplacement de la virtualisation, mais comme un complément à celle-ci. Par conséquent, nous espérons que les conteneurs auront une durée de vie au moins égale à celle de la virtualisation et que la coexistence se poursuivra. Enfin, nous nous attendons à ce que d’autres niveaux d’abstraction apparaissent et coexisteront avec la virtualisation et les conteneurs.
Nous sommes conscients que la sécurité sera toujours une préoccupation majeure pour nos clients. Par conséquent, F5 continue d’utiliser son expérience en matière d’appareils matériels et logiciels, de pare-feu et de réseaux pour fournir la sécurité la plus stricte possible sur tous ses produits.
En résumé, en plus de notre technologie déjà existante liée aux conteneurs, F5 prévoit de continuer à intégrer des conteneurs dans la gamme de produits F5, vous offrant ainsi davantage d'options d'intégration, une plus grande fiabilité, des performances améliorées et un temps de déploiement réduit avec des applications mises à jour et futures.
Pour plus d'informations sur F5 et la prise en charge des conteneurs pour les applications, visitez f5.com/solutions/bridge-f5-with-container-environments
1 L'essor des serveurs Kubernetes Bare Metal , Container Journal, Mike Vizard, 2019
2 L'état du développement d'applications basées sur des conteneurs , rapport IBM Cloud, 2018
3 Mal configuré et exposé : Services de conteneurs , Palo Alto Networks, Nathaniel Quist, 2019
Les dernières nouveautés en matière de renseignement sur les menaces applicatives.
La communauté F5 pour les forums de discussion et les articles d'experts.