Empêchez les erreurs de configuration de Kubernetes pendant le développement avec cet outil open source


  • FrançaisFrançais


  • Je suis développeur par nature, mais j’ai fait beaucoup de travail DevOps ces derniers temps, en particulier avec Kubernetes. Dans le cadre de mon travail, j’ai participé au développement d’un outil appelé datree dans le but d’empêcher la mauvaise configuration de Kubernetes d’atteindre la production. Idéalement, cela aide à renforcer la collaboration et à favoriser une culture DevOps dans votre organisation au profit de personnes comme moi, qui ne pensent pas toujours en DevOps.

    Un scénario courant

    Le scénario suivant illustre un problème rencontré par de nombreuses entreprises technologiques :

    • À 3 h 46 un vendredi, Bob se réveille au son de quelque chose qui tombe sur le sol de sa chambre. C’est son téléphone, affichant 15 appels manqués du travail.
    • Apparemment, Bob avait oublié d’ajouter une limite de mémoire dans un déploiement, ce qui a provoqué une fuite de mémoire dans l’un des conteneurs, ce qui a conduit tous les nœuds Kubernetes à manquer de mémoire.
    • Il est extrêmement gêné à ce sujet, en particulier parce que l’équipe DevOps a déployé tant d’efforts pour éduquer les développeurs comme lui sur Kubernetes et sur l’importance d’une limite de mémoire.

    Comment cela pourrait-il arriver? Eh bien, imaginez que Bob travaille chez Unicorn Rentals. Comme de nombreuses entreprises, ils ont commencé comme une petite équipe fondatrice de deux développeurs, un PDG et un CTO. Les choses étaient lentes au début, mais finalement Tout le monde voulait louer une licorne, et lorsque cela s’est produit, l’entreprise ne pouvait pas se permettre des arrêts de production.

    Une série d’accidents comme celui qui a réveillé Bob à 3 h 46 a amené l’entreprise à réaliser que quelque chose devait changer.

    Si cela reflète les scénarios de votre propre organisation, il se peut que quelque chose doive également changer pour vous.

    Le problème : la mise à l’échelle des politiques de sécurité

    Pour éviter des problèmes de développement inconfortables et des bogues importants en production, vous devez éduquer vos développeurs. Ils doivent connaître Kubernetes, comment cela fonctionne, comment le développer et ce qu’ils peuvent en faire.

    Vous devez également définir des politiques afin que si une ressource ne correspond pas à certaines spécifications à temps, elle n’entre pas dans le cluster. Mais que se passe-t-il lorsqu’il y a des centaines de repos ? Comment ces politiques sont-elles gérées à grande échelle ? Comment les procédures peuvent-elles être contrôlées et révisées ?

    Datree est une solution de ligne de commande open source qui permet aux administrateurs Kubernetes de créer des politiques et des bonnes pratiques qu’ils souhaitent que l’équipe suive.

    Datree permet aux administrateurs de :

    • Appliquer les restrictions politiques sur le développement: appliquez des restrictions avant d’appliquer des ressources au cluster.
    • Activer la gestion des restrictions : Une gestion flexible des restrictions dans un endroit dédié dans toute l’organisation permet aux administrateurs de contrôler pleinement leurs systèmes.
    • Informer sur les bonnes pratiques : Libérez DevOps du besoin constant d’examiner, de clôturer et de pérenniser tous les pièges possibles sur tous les cas d’utilisation actuels et futurs qui font partie de l’auto-déploiement.

    Pourquoi Datree ?

    Datree vise à aider les administrateurs à obtenir une stabilité de production maximale avec un minimum de temps et d’efforts en appliquant des politiques avant que les ressources mal configurées n’atteignent la production.

    • Assurance formation et bonnes pratiques : L’application CLI simplifie l’expérience de déploiement de Kubernetes, de sorte que les développeurs n’ont pas besoin de se souvenir des règles régissant le développement. Les développeurs DevOps ne forment plus un goulot d’étranglement. L’application CLI de Datree est livrée avec les meilleures pratiques Kubernetes intégrées, il n’est donc pas nécessaire de s’appuyer sur l’observation et la mémoire humaines.
    • Application sur le développement : Les développeurs sont alertés tôt, dès qu’une mauvaise configuration se produit dans le PR. De cette façon, ils peuvent détecter les erreurs avant que leur code ne passe dans des environnements de production/collaboratifs.
    • Culture DevOps : Datree fournit un mécanisme similaire à d’autres outils de développement comme les tests unitaires. Cela facilite la tâche des développeurs car ils sont déjà habitués à ces outils. Le test est l’activité la plus courante que les développeurs effectuent. L’utilisation d’outils familiers peut être une excellente base pour cultiver une culture DevOps.

    Comment fonctionne Datree

    Le datree La commande exécute des vérifications automatiques sur chaque ressource qui existe dans un chemin donné. Ces contrôles automatiques comprennent trois principaux types de validation :

    1. Validation YAML
    2. Validation du schéma Kubernetes
    3. Validation des politiques Kubernetes
    $ datree test ~/.datree/k8s-demo.yaml >> File: .datree/k8s-demo.yaml
    [V] YAML validation
    [V] Kubernetes schema validation
    [X] Policy check

    X Ensure each container image has a pinned (tag) version [1 occurrence]
      - metadata.name: rss-site (kind: Deployment)
    !! Incorrect value for key `image` - specify an image version to avoid unpleasant "version surprises" in the future

    X Ensure each container has a configured memory limit [1 occurrence]
      - metadata.name: rss-site (kind: Deployment)
    !! Missing property object 'limits.memory' - value should be within the accepted boundaries recommended by the organization

    X Ensure workload has valid Label values [1 occurrence]
      - metadata.name: rss-site (kind: Deployment)
    !!  Incorrect value for key(s) under 'labels - the vales syntax is not valid so the Kubernetes engine will not accept it

    X Ensure each container has a configured liveness probe [1 occurrence]
     - metadata.name: rss-site (kind: Deployment)
    !! Missing property object 'livenessProbe - add a properly configured livenessProbe to catch possible deadlocks

    [...]

    Une fois la vérification terminée, Datree affiche une sortie détaillée de toute violation ou mauvaise configuration qu’il trouve, ce qui guide les développeurs pour résoudre le problème. Vous pouvez exécuter la commande localement, mais elle est spécialement conçue pour s’exécuter pendant l’intégration continue (CI) ou même plus tôt en tant que crochet de pré-commit (oui, sans perdre aucune explication sur les raisons de la politique).

    Parallèlement à l’application de ligne de commande, Datree permet une gestion complète des politiques à l’aide de l’interface utilisateur, comme la création de nouvelles politiques personnalisées, l’examen de l’historique complet des invocations, etc.

    Comment j’ai adopté l’état d’esprit DevOps

    En tant que développeur front-end full stack, j’ai été formé pour penser uniquement au code, et j’ai toujours trouvé que les technologies et les processus de pensée DevOps étaient un mystère. Mais récemment, j’ai été mis au défi de développer une application CLI chez Datree et j’ai commencé à comprendre l’importance et la fonctionnalité de DevOps.

    Mon mantra est, “Notre travail en tant que développeurs ne consiste pas à coder, mais à résoudre des problèmes réels.” Quand j’ai commencé à travailler sur datree, je devais comprendre plus que le problème de la vie réelle. Je devais aussi savoir comment c’était devenu un problème en premier lieu. Pourquoi les organisations adoptent-elles Kubernetes ? Quel est le rôle de l’ingénieur DevOps ? Et surtout, pour qui est-ce que je développe mon application ?

    Maintenant, je peux honnêtement dire qu’en développant datree, je suis entré dans le monde de Kubernetes et j’ai appris que la meilleure façon d’apprendre Kubernetes est d’adopter la culture DevOps. Développer le datree commande m’a appris l’importance de comprendre ma personnalité d’utilisateur. Plus important encore, cela m’a aidé à acquérir des connaissances fondamentales sur l’écosystème d’une application et à comprendre le produit et le parcours utilisateur.

    Résumé

    Lorsque Kubernetes est adopté, la culture de votre environnement de développement change. DevOps ne se fait pas du jour au lendemain, surtout dans une grande organisation. Cette transition peut être facilitée par une technologie qui aide les développeurs à détecter leurs propres erreurs et à en tirer des leçons à l’avenir.

    Avec Datree, le fossé entre DevOps et les développeurs a commencé à se réduire. Même les codeurs purs et durs comme moi ont commencé à s’approprier les politiques de limitation. Le code envoyé à la production est de meilleure qualité, ce qui permet de gagner du temps et d’éviter les erreurs embarrassantes.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code