Comme de nombreuses organisations technologiques, lorsque ChatGPT a été ouvertement publié, nous voulions comparer ses réponses à celles d’une recherche Web classique. Nous avons exploré en posant des questions techniques et en demandant du matériel particulier. Toutes les réponses n’étaient pas efficaces ou appropriées, mais notre groupe a apprécié la possibilité de fournir des commentaires pour améliorer les réactions.
Nous sommes ensuite devenus plus précis et avons demandé conseil à ChatGPT pour utiliser Kubernetes. ChatGPT a fourni une liste des 12 meilleures pratiques pour Kubernetes en production, et la majorité d’entre elles étaient justes et pertinentes. Mais lorsqu’on lui a demandé d’élargir cette liste à 50 bonnes pratiques, il est rapidement apparu clairement que la composante humaine restait incroyablement importante.
Comment nous utilisons Kubernetes
En toile de fond, JFrog a en fait gère l’ensemble de sa plateforme sur Kubernetes depuis plus de 6 ans, en utilisant les services Kubernetes gérés par d’importants fournisseurs de cloud, notamment AWS, Azure et Google Cloud. Nous opérons dans plus de 30 régions dans le monde, chacune avec plusieurs clusters Kubernetes.
Dans notre cas, Kubernetes est principalement utilisé pour exécuter des tâches de travail et d’exécution plutôt que pour le stockage. La société utilise des bases de données gérées et des services de stockage d’éléments fournis par des fournisseurs de cloud. Les installations Kubernetes se composent d’innombrables nœuds, et leur nombre augmente ou diminue dynamiquement en fonction des configurations de mise à l’échelle automatique.
L’environnement de production de JFrog comprend plusieurs milliers de pods, le plus petit système de déploiement de Kubernetes. Le nombre précis change à mesure que les pods sont créés ou terminés ; il y a actuellement environ 300 000 pods exécutés dans le monde dans notre configuration de production, ce qui représente une charge de travail importante à gérer.
Nous publions souvent de nouvelles versions d’applications, des correctifs et des réparations de bogues. Nous avons mis en œuvre un système intégré pour déployer ces mises à jour, y compris un filtrage Canary approprié avant la publication complète, ce qui nous permet de maintenir un cycle de publication constant et d’assurer la stabilité du service.
Comme le savent la plupart de ceux qui ont réellement utilisé le service. , ChatGPT affiche clairement un avertissement indiquant que les données sur lesquelles il est basé ne sont pas complètement à jour. Comprenant cela et considérant le contexte ci-dessus pour montrer nos exigences, voici 10 choses que ChatGPT ne vous dira pas sur la gestion de Kubernetes en production (jusqu’à ce qu’OpenAI mette à jour ses informations et ses algorithmes, bien sûr).
Le dimensionnement des nœuds est un art
Le dimensionnement des nœuds implique de trouver un équilibre entre l’utilisation de nœuds plus petits pour réduire le « rayon de souffle » et l’utilisation de nœuds plus grands pour une bien meilleure efficacité des applications. Le secret consiste à utiliser différents types de nœuds en fonction des exigences de travail, telles que l’optimisation du processeur ou de la mémoire. L’ajustement des ressources du conteneur pour qu’elles correspondent au rapport CPU/mémoire des nœuds améliore l’utilisation des ressources.
Cela dit, découvrir la variété idéale de pods par nœud est un exercice d’équilibre, en pensant aux différents modèles d’apport de ressources de chaque nœud. chaque application ou service. Répartir la charge sur les nœuds à l’aide de stratégies telles que les contraintes de répartition géographique des pods ou l’anti-affinité des pods pour optimiser l’utilisation des ressources permet de s’adapter aux changements d’intensités de travail. L’équilibrage et la répartition de la charge sont cruciaux pour les grandes entreprises utilisant des services cloud basés sur Kubernetes.
Comment protéger l’avion de contrôle
Garder un œil sur l’avion de contrôle Kubernetes est important, en particulier dans services Kubernetes gérés. Même si les sociétés cloud offrent un contrôle et un équilibre solides, vous devez être conscient de leurs limites. Le suivi et les alertes doivent être mis en place pour garantir que l’avion de contrôle fonctionne efficacement : un avion de contrôle lent peut avoir un impact considérable sur les habitudes du cluster, notamment la planification, les mises à niveau et la mise à l’échelle des opérations. Même dans les services gérés, il existe des limites auxquelles il faut penser.
Une utilisation excessive de l’avion de contrôle géré peut entraîner un crash catastrophique. Un certain nombre d’entre nous ont existé, et cela sert d’indicateur selon lequel les plans de gestion peuvent finir par être surchargés s’ils ne sont pas surveillés et gérés de manière appropriée.
Comment maintenir la disponibilité des applications
Se concentrer sur les services cruciaux améliore la disponibilité des applications. Les problèmes de pod et les classes de qualité de service déterminent les applications hautement prioritaires qui doivent s’exécuter à perpétuité ; la compréhension des niveaux de priorité les plus élevés permet d’optimiser la stabilité et l’efficacité.
L’anti-affinité des pods empêche le déploiement de plusieurs reproductions exactes du même service sur le même nœud. Cela évite un point de défaillance unique, indiquant que si un nœud rencontre des problèmes, les autres reproductions ne seront pas affectées.
Vous devez également accepter la pratique consistant à créer des pools de nœuds dédiés pour les applications critiques. Un pool de nœuds distinct pour les pods d’entrée et d’autres services cruciaux comme Prometheus peut considérablement améliorer la stabilité du service et l’expérience de l’utilisateur final.
Vous devez vous préparer à évoluer
Votre organisation est-elle prête gérer le double des sorties pour offrir le développement de capacité nécessaire sans aucun effet défavorable ? La mise à l’échelle automatique du cluster dans les services gérés peut être utile à cet égard, mais il est important de comprendre les limites de la taille du cluster. Pour nous, un cluster typique compte environ 100 nœuds ; si cette limite est atteinte, nous créons un autre cluster plutôt que de forcer celui existant à se développer.
La mise à l’échelle des applications, tant verticale qu’horizontale, doit également être prise en compte. Le secret est de trouver l’équilibre idéal pour mieux utiliser les ressources sans surconsommation. La mise à l’échelle horizontale et le travail de duplication ou de réplication sont généralement plus efficaces, avec l’avertissement que cela peut avoir un impact sur les connexions et le stockage des bases de données.
Vous devez également vous préparer à l’échec
La planification des échecs a en fait devenir un mode de vie à travers de nombreux aspects des installations d’application. Pour vous assurer que vous êtes prêt, développez des playbooks pour résoudre diverses situations de panne telles que les pannes d’applications, les pannes de nœuds et les pannes de cluster. L’exécution de méthodes telles que les pods d’applications à haute disponibilité et les aides à l’anti-affinité des pods garantit une couverture en cas de panne.
Chaque organisation a besoin d’un plan approfondi de guérison des sinistres en cas de panne de cluster, et elle doit également mettre en pratique cela. stratégie de temps en temps. Lors de la récupération après une panne, une version contrôlée et progressive permet d’éviter une surcharge des ressources.
Comment protéger votre pipeline d’expédition
La chaîne d’approvisionnement logicielle est continuellement vulnérable aux erreurs et aux acteurs destructeurs. Vous avez besoin de contrôler chaque étape du pipeline. De la même manière, vous devez supporter de dépendre d’outils et de fournisseurs de services externes sans soigneusement considérer leur fiabilité.
Le maintien du contrôle sur les sources externes comprend des procédures telles que l’analyse des binaires provenant de référentiels distants et leur confirmation avec un service d’analyse de la structure logicielle (SCA). Les groupes doivent également appliquer des contrôles de qualité et de sécurité tout au long du pipeline pour garantir une plus grande confiance, à la fois de la part des utilisateurs et au sein du pipeline lui-même, afin de garantir une meilleure qualité du logiciel fourni.
Comment sécuriser votre environnement d’exécution
L’utilisation de contrôleurs d’admission pour appliquer des règles, telles que l’obstruction de la publication de variantes sur liste noire, contribue à protéger votre environnement d’exécution Kubernetes. Des outils tels que OPA Gatekeeper aident à imposer des politiques telles qu’autoriser les registres de systèmes informatiques de conteneurs uniquement réglementés pour les déploiements.
Un accès au contrôle basé sur les rôles est également conseillé pour sécuriser l’accès aux clusters Kubernetes, et d’autres solutions de protection d’exécution peuvent déterminer et gérer les risques en temps réel. L’isolation des espaces de noms et les politiques réseau contribuent à entraver les mouvements latéraux et à protéger les charges de travail au sein des espaces de noms. Vous pouvez également envisager d’exécuter des applications critiques sur des nœuds séparés pour atténuer la menace de scénarios d’évasion de conteneurs.
Comment protéger votre environnement
Sécuriser votre environnement implique de supposer que le réseau est constamment attaqué. . Des outils d’audit sont recommandés pour découvrir les activités suspectes dans les clusters et l’infrastructure, tout comme des protections d’exécution avec des contrôles complets de présence et de travail.
Les meilleurs outils de leur catégorie sont formidables, mais une solide équipe de réaction aux incidents avec une vision claire Un playbook sur place est nécessaire en cas de signaux ou d’activités suspectes. Comme pour la reprise après sinistre, des exercices et des pratiques réguliers doivent être menés. De nombreuses organisations utilisent également des bug bounties ou font appel à des chercheurs externes qui tentent de compromettre le système pour révéler des vulnérabilités. La perspective externe et la recherche objective peuvent fournir des informations précieuses.
Une connaissance constante est indispensable
À mesure que les systèmes et les processus évoluent, les groupes doivent adopter l’apprentissage continu en collectant des données historiques sur les performances pour évaluer et utiliser des produits d’action. Essayez de trouver de petites améliorations constantes ; ce qui comptait dans le passé n’a peut-être plus d’importance.
Le suivi proactif des informations sur les performances peut vous aider à reconnaître une fuite de mémoire ou de processeur dans l’un de vos services ou un bug d’efficacité dans un outil tiers. En évaluant activement les informations sur les tendances et les problèmes, vous pouvez améliorer la compréhension et l’efficacité de votre système. Cette surveillance et cette évaluation proactives donnent des résultats plus fiables que la réaction aux alertes en temps réel.
Les êtres humains sont le maillon le plus faible
L’automatisation, lorsque cela est possible, réduit la participation humaine, et dans certains cas, c’est un avantage : les personnes constituent le maillon le plus faible en matière de sécurité. Explorez une série d’options d’automatisation disponibles et découvrez celle qui correspond le mieux à vos processus et définitions privés.
GitOps est une méthode populaire pour introduire des changements du développement à la production, fournissant un contrat et une interface bien connus pour la gestion. modifications de configuration. Une approche similaire utilise plusieurs référentiels pour différents types de configurations, mais il est important de préserver une séparation claire entre les environnements de développement, de préparation et de production, même s’ils doivent être similaires les uns aux autres.
Regarder vers l’avenir
Les services basés sur l’IA sont une garantie pour l’avenir car ils aident à minimiser la complexité fonctionnelle et automatisent les tâches liées à la gestion des environnements, aux déploiements et au dépannage. Néanmoins, le jugement humain est irremplaçable et doit toujours être pris en considération.
Les moteurs d’IA d’aujourd’hui comptent sur la compréhension du public, qui peut finalement consister en des informations inexactes, obsolètes ou sans importance. ce qui entraîne des réponses ou des recommandations inexactes. Il est essentiel de faire preuve de bon sens et de rester conscient des limites de l’IA.
Stephen Chin est vice-président des relations avec les designers chez JFrog, président du conseil d’administration du CDF, membre du conseil d’administration de la CNCF et auteur. du Conclusive Guide to Modern Customer Advancement, Raspberry Pi avec Java, Pro JavaFX Platform et le prochain titre DevOps Tools for Java Developers d’O’Reilly. Il a en fait prononcé de nombreuses conférences à travers le monde, notamment swampUP, Devoxx, JNation, JavaOne, Joker et Open Source India. Stephen est un motocycliste passionné qui a effectué des voyages ministériels en Europe, au Japon et au Brésil, discutant avec des pirates informatiques dans leur habitat naturel. Lorsqu’il ne voyage pas, il prend plaisir à encadrer les enfants sur la façon de réaliser des spectacles embarqués et robotiques avec son adolescent.
— IA générative
Insights offre un espace aux leaders technologiques, composés de fournisseurs et d’autres tiers, pour explorer et passer en revue les défis et les opportunités du système expert génératif. Le choix est vaste, allant des analyses approfondies de l’innovation aux études de cas en passant par l’opinion d’experts, mais il est également subjectif, basé sur notre jugement sur les sujets et les traitements qui serviront le mieux le public techniquement sophistiqué d’InfoWorld. InfoWorld n’accepte pas la sécurité marketing pour la publication et se réserve le droit de modifier tout le contenu contribué. Contacter doug_dineley@foundryco.com!.?.!. Lisez ensuite ceci : Le cloud computing n’est plus un jeu d’enfant. Qu’est-ce que
l’IA générative ? Système expert qui crée du codage avec l’IA : conseils et bonnes pratiques
Toute l’actualité en temps réel, est sur L’Entrepreneur