Rédacteur – Ce billet fait partie d’ une série en 10 parties :
Vous pouvez également télécharger l’ensemble complet des blogs sous forme d’eBook gratuit – Taking Kubernetes from Test to Production .
2020 a été une année que peu d’entre nous oublieront. La fermeture brutale des écoles, des entreprises et des services publics nous a soudainement isolés de nos communautés et plongés dans l’incertitude quant à notre sécurité et notre stabilité financière. Imaginez maintenant un instant que cela se soit produit en 2000, ou même en 2010. Qu'est-ce qui serait différent ? Technologie . Sans les services numériques de haute qualité que nous considérons comme acquis – soins de santé, streaming vidéo, outils de collaboration à distance – une pandémie serait une expérience très différente. Qu’est-ce qui a rendu la technologie de 2020 si différente des décennies précédentes ? Conteneurs et microservices .
Les architectures de microservices , qui utilisent généralement des conteneurs et Kubernetes , stimulent la croissance et l’innovation des entreprises en réduisant les délais de mise sur le marché des expériences numériques. Qu'elles soient associées à des architectures traditionnelles ou de manière autonome, ces technologies d'application modernes permettent une évolutivité et une flexibilité supérieures, des déploiements plus rapides et même des économies de coûts.
Avant 2020, nous avons constaté que la plupart de nos clients avaient déjà commencé à adopter les microservices dans le cadre de leur stratégie de transformation numérique, mais la pandémie a véritablement accéléré la modernisation des applications. Notre enquête 2020 auprès des utilisateurs de NGINX a révélé que 60 % des répondants utilisent des microservices en production, contre 40 % en 2019, et que les conteneurs sont plus de deux fois plus populaires que les autres technologies d'applications modernes.
Kubernetes est la norme de facto pour la gestion des applications conteneurisées, comme en témoigne l' enquête 2020 de la Cloud Native Computing Foundation (CNCF) , qui a révélé que 91 % des personnes interrogées utilisent Kubernetes, dont 83 % en production. Lors de l’adoption de Kubernetes, de nombreuses organisations sont préparées à des changements architecturaux substantiels, mais sont surprises par les impacts organisationnels de l’exécution de technologies d’application modernes à grande échelle. Si vous utilisez Kubernetes, vous avez probablement rencontré ces trois obstacles critiques pour votre entreprise :
Le paysage interactif natif du cloud CNCF est une bonne illustration de la complexité de l’infrastructure nécessaire pour prendre en charge les applications basées sur les microservices. Les organisations doivent devenir compétentes dans un large éventail de technologies disparates, avec pour conséquences le verrouillage de l’infrastructure, l’informatique fantôme, la prolifération des outils et une courbe d’apprentissage abrupte pour ceux qui sont chargés de maintenir l’infrastructure.
Comme pour la plupart des problèmes organisationnels, la réponse pour surmonter les défis de Kubernetes est une combinaison de technologie et de processus. Nous allons nous concentrer sur le volet technologique pour le reste de cet article, mais gardez un œil sur les futurs blogs sur les processus et d’autres sujets.
Étant donné que Kubernetes est une technologie open source, il existe de nombreuses façons de la mettre en œuvre. Alors que certaines organisations préfèrent déployer leur propre Kubernetes vanilla, beaucoup trouvent de la valeur dans la combinaison de flexibilité, de prescriptivité et de support fournie par des services tels qu'Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service (AKS), Red Hat OpenShift Container Platform et Rancher .
Les plateformes Kubernetes peuvent faciliter la mise en place et le fonctionnement ; cependant, elles se concentrent sur l'étendue des services plutôt que sur la profondeur. Ainsi, même si vous obtenez tous les services dont vous avez besoin en un seul endroit, il est peu probable qu’ils offrent les fonctionnalités dont vous avez besoin pour une véritable préparation à la production à grande échelle. En effet, ils ne se concentrent pas sur la mise en réseau et la sécurité avancées, ce qui est le point sur lequel nous voyons Kubernetes décevoir de nombreux clients.
Pour rendre Kubernetes de qualité production, vous devez ajouter trois composants supplémentaires dans cet ordre :
Un niveau d'entrée/sortie évolutif pour faire entrer et sortir le trafic du cluster
Ceci est accompli avec un contrôleur Ingress , qui est un équilibreur de charge spécialisé qui fait abstraction de la complexité du réseau Kubernetes et établit des ponts entre les services d'un cluster Kubernetes et ceux situés à l'extérieur de celui-ci. Ce composant devient de niveau production lorsqu'il inclut des fonctionnalités qui augmentent la résilience (par exemple, des contrôles de santé avancés et des mesures Prometheus), permettent une évolutivité rapide (reconfiguration dynamique) et prennent en charge le libre-service (contrôle d'accès basé sur les rôles [RBAC]).
Sécurité intégrée pour se protéger contre les menaces dans l'ensemble du cluster
Bien qu’une sécurité « à granularité grossière » puisse être suffisante à l’extérieur du cluster, une sécurité « à granularité fine » est requise à l’intérieur de celui-ci. Selon la complexité de votre cluster, il existe trois emplacements où vous devrez peut-être déployer un pare-feu d'application Web (WAF) flexible : sur le contrôleur d'entrée, en tant que proxy par service et en tant que proxy par pod. Cette flexibilité vous permet d’appliquer des contrôles plus stricts aux applications sensibles, telles que la facturation, et des contrôles plus souples lorsque le risque est plus faible.
Un niveau de trafic est-ouest évolutif pour optimiser le trafic au sein du cluster
Ce troisième composant est nécessaire une fois que vos applications Kubernetes ont dépassé le niveau de complexité et d’échelle que les outils de base peuvent gérer. À ce stade, vous avez besoin d’un maillage de services , qui est un outil d’orchestration offrant une gestion du trafic et une sécurité encore plus précises aux services d’application au sein du cluster. Un maillage de services est généralement chargé de gérer le routage des applications entre les applications conteneurisées, de fournir et d'appliquer des politiques TLS mutuelles de service à service (mTLS) autonomes et de fournir une visibilité sur la disponibilité et la sécurité des applications.
Lors de la sélection de ces composants, privilégiez la portabilité et la visibilité. Les composants indépendants de la plate-forme réduisent la complexité et améliorent la sécurité, avec moins d’outils pour que vos équipes puissent apprendre et sécuriser, et un déplacement plus facile des charges de travail en fonction des besoins de votre entreprise. L’importance de la visibilité et du suivi est difficile à surestimer. Les intégrations avec des outils populaires tels que Grafana et Prometheus créent une vue unifiée de votre infrastructure, garantissant que votre équipe détecte les problèmes avant qu'ils ne soient découverts par vos clients. En outre, il existe d’autres technologies complémentaires qui ne sont pas nécessairement requises pour Kubernetes de niveau production, mais qui font partie intégrante du développement d’applications modernes. Par exemple, lorsque les organisations sont prêtes à moderniser les applications traditionnelles, l’une des premières étapes consiste à créer des microservices avec une passerelle API .
Nos solutions Kubernetes sont indépendantes de la plateforme et incluent les trois composants dont vous avez besoin pour activer Kubernetes de niveau production : NGINX Ingress Controller comme niveau d'entrée-sortie, NGINX App Protect comme WAF et NGINX Service Mesh comme niveau est-ouest.
Ces solutions peuvent faire de Kubernetes votre meilleur ami en vous permettant d'intervenir dans quatre domaines clés :
NGINX Ingress Controller est disponible sous forme d'essai gratuit de 30 jours , qui inclut NGINX App Protect pour sécuriser vos applications conteneurisées. Nous vous recommandons d'ajouter le service NGINX Service Mesh toujours gratuit (disponible en téléchargement sur f5.com ) pour tirer le meilleur parti de votre essai. Aujourd'hui, vous pouvez apporter votre propre licence (BYOL) sur le cloud de votre choix.
« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."