Quel est le degré de maturité de votre entreprise lorsqu’il s’agit d’adopter Kubernetes ? Steve Judd, de Jetstack, propose un guide destiné aux directeurs techniques des entreprises qui adoptent Kubernetes pour le déploiement, la mise à l’échelle et la gestion des logiciels.
L’adoption de Kubernetes se poursuit à un rythme soutenu et, bien que la plateforme technologique ait moins de dix ans, selon une étude récente, la grande majorité des entreprises l’ont adoptée ou sont sur le point de le faire.
Ces organisations comprennent déjà que l’exploitation d’une composante aussi essentielle de leur activité exige un certain niveau de compétence et de maturité techniques.
Alors, que peuvent faire les fonctions techniques d’une organisation pour mesurer leur maturité actuelle et identifier les points sur lesquels elles doivent concentrer leurs efforts pour l’accroître ?
Niveaux de maturité
Jetstack aide les entreprises dans leur voyage Kubernetes depuis plus de sept ans et nous avons identifié que ce voyage peut être divisé en cinq étapes progressives, ce que nous appelons les niveaux de maturité. Plus le niveau d’une organisation est élevé, plus elle peut être confiante dans sa capacité à héberger avec succès des services et des charges de travail critiques pour l’entreprise dans son environnement Kubernetes. Pour déterminer le niveau qui s’applique à une organisation, il faut évaluer ses performances dans six domaines clés : l’adoption, la sécurité, l’observabilité, les opérations du cluster, l’expérience du développeur et le processus de déploiement. Le tableau ci-dessous montre la relation entre les niveaux et les aspects :
Les entreprises qui souhaitent sérieusement tirer parti de Kubernetes devraient viser un niveau de maturité minimum fondamental et, idéalement, reproductible.
Pour une expérience d’évaluation complète, nous proposons un livre blanc que vous pouvez télécharger et utiliser pour déterminer vous-même non seulement le niveau actuel de maturité de Kubernetes de votre entreprise, mais aussi le niveau que vous souhaitez atteindre. Pour avoir un avant-goût de ce qui est couvert dans le livre blanc, lisez ce qui suit.
Quel type de charges de travail êtes-vous prêt à héberger sur Kubernetes ?
Comprendre quels types de charges de travail et d’applications votre organisation est heureuse d’héberger dans son environnement Kubernetes est un bon indicateur de maturité. Les adopteurs récents sont susceptibles de n’héberger que des applications à faible risque et non critiques pour l’entreprise, mais pour atteindre au moins un niveau de maturité fondamental, vous devez être à l’aise avec l’hébergement d’applications distribuées natives du nuage qui ont une certaine criticité pour l’entreprise ; essentiellement des applications conçues dès le départ pour être optimisées pour l’hébergement Kubernetes. Pour atteindre un niveau de reproductibilité et au-delà, les équipes d’ingénieurs doivent pouvoir héberger en toute confiance n’importe laquelle de leurs applications critiques dans des clusters Kubernetes, y compris celles qui n’ont pas été conçues dans l’optique de la conteneurisation.
À quoi ressemble votre posture de sécurité Kubernetes ?
Plus votre environnement Kubernetes devient critique pour votre organisation, plus vous devez vous concentrer sur une bonne posture de sécurité.
Il y a de nombreux aspects à prendre en compte : les adoptants récents devraient se concentrer sur le principe du moindre privilège pour les autorisations RBAC de leurs clusters, tant pour les utilisateurs que pour les charges de travail, ainsi que sur la gestion des secrets (en veillant à ce que la configuration sensible ne soit accessible que par les charges de travail appropriées).
Les environnements plus matures et plus critiques voudront adopter un principe plus large de politique du moindre privilège en mettant en œuvre l’admission de sécurité des pods, des politiques de réseau, un maillage de services et un balayage d’images d’exécution.
Disposez-vous d’une stratégie d’observabilité complète ?
Kubernetes est conçu pour héberger un grand nombre de charges de travail éphémères qui produisent toutes de grandes quantités de données de télémétrie (journaux, métriques, événements, formations, etc.). Ces données doivent être collectées et stockées dans un emplacement central afin qu’elles puissent être agrégées, analysées et visualisées. Pour les clusters non critiques et à faible impact, les données de journalisation (pour le dépannage) et les métriques de santé de base seront suffisantes, mais à mesure que des applications plus critiques et distribuées sont introduites, votre solution d’observabilité devra gérer beaucoup plus de métriques et de données de traçage. Bien sûr, la collecte des données n’est qu’une partie de l’histoire – fournir des visualisations pertinentes et compréhensibles (généralement via des tableaux de bord) est tout aussi important.
Dans quelle mesure les opérations de votre cluster sont-elles automatisées et cohérentes ?
Kubernetes est une plateforme complète, complexe et dynamique. Il y a donc toujours des activités à réaliser le deuxième jour : mises à niveau des clusters et des modules complémentaires, sauvegardes, gestion des pools de nœuds, optimisation des coûts, etc. Nous avons constaté que les équipes d’ingénieurs commettent souvent l’erreur de remettre à plus tard la mise en place de l’automatisation, des outils et des processus afin de réduire et de dé-risquer ce travail de jour 2. Les conséquences typiques de cette situation sont que les mises à niveau sont moins fréquentes et que le travail opérationnel standard quotidien nécessaire pour maintenir l’environnement Kubernetes opérationnel ne cesse de croître (à mesure que l’utilisation et le nombre de clusters augmentent). Plus le niveau de maturité de Kubernetes d’une organisation augmente, plus l’automatisation de la gestion des clusters augmente, ce qui entraîne des mises à niveau plus fréquentes et moins risquées et une plus grande cohérence entre les clusters.
Les entreprises ont-elles besoin d’une grande expertise de Kubernetes pour utiliser votre environnement ?
Permettre aux développeurs d’être plus productifs et de livrer des fonctionnalités plus rapidement est une promesse fondamentale de Kubernetes. Cependant, exiger des développeurs une compréhension approfondie de ses concepts et de ses outils est contre-productif et susceptible de provoquer une révolte ; ainsi, la maturité Kubernetes d’une organisation dépend également de la garantie que cela ne devienne pas une exigence. Un investissement réfléchi dans des outils qui réduisent la charge cognitive facilitera d’autant plus l’adoption, par exemple, des interfaces utilisateur qui permettent de visualiser facilement les composants du cluster (pensez à Lens et K9s), et des outils de construction, de test et de déploiement axés sur les développeurs, tels que Skaffold, Garden et Tilt. Un autre investissement intéressant est la mise en place d’une « plate-forme interne pour les développeurs » afin de fournir aux développeurs des « chemins d’or » et des capacités de libre-service.
Comment déployez-vous les applications dans vos clusters ?
Généralement, lorsque les entreprises adoptent Kubernetes pour la première fois, elles déploient des modules complémentaires et des applications à l’aide de diagrammes Helm ou de manifestes raw-yaml – cela peut être fait manuellement ou dans le cadre d’un pipeline CI/CD, mais il s’agit toujours d’une approche impérative de la gestion des déploiements dans un cluster. À mesure que les entreprises progressent dans leur adoption de Kubernetes – plus d’applications hébergées, un plus grand nombre de clusters – les déficiences de cette approche impérative deviennent plus évidentes. La cohérence et la fiabilité des déploiements, ainsi que la capacité d’identifier rapidement les modifications apportées aux clusters au fil du temps, ne peuvent être obtenues de manière réaliste qu’en adoptant une approche déclarative, GitOps, où git est utilisé comme source de vérité pour l’état souhaité.
Bien que les principes de GitOps soient simples, leur mise en pratique ne l’est pas, et il faut généralement du temps et des efforts pour y arriver. Heureusement, il existe de nombreux outils conçus pour faciliter le passage à des déploiements de type GitOps et permettre aux équipes d’intégrer des approches de déploiement sophistiquées, telles que : bleu/vert, canari, ingénierie du chaos et gestion de la configuration.
Comme mentionné ci-dessus, nous avons un livre blanc sur ce sujet qui vous aidera à auto-évaluer votre propre niveau de maturité Kubernetes. Télécharger le livre blanc Jetstack sur la maturité de Kubernetes ici gratuitement.
Steve Judd est architecte en chef chez Jetstack.
En savoir plus sur Kubernetes
C’est pourquoi Kubernetes est une compétence très demandée… Alors que de plus en plus d’entreprises adoptent le système de gestion de logiciels open source de Google, la demande de personnes talentueuses possédant des compétences Kubernetes augmente rapidement.
DIY ou distro : que choisir pour votre environnement Kubernetes ? Voici ce que les organisations doivent prendre en compte lorsqu’elles déploient leur environnement Kubernetes.
Offres d’emploi Kubernetes basées au Royaume-Uni pour lesquelles vous pouvez postuler cette semaine Kubernetes est devenu la plateforme clé pour déplacer les charges de travail vers le cloud. Voici trois emplois Kubernetes que vous devriez connaître.