15 points par xguru 2022-03-07 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Dans un Dockerfile, :latest casse l’exigence la plus importante du CD : des builds idempotents et reproductibles
    → Cela peut non seulement faire échouer le build, mais aussi provoquer des erreurs en production
  • Indiquer latest dans un manifest de Pod Kubernetes est encore pire
    → Dans un Dockerfile, un rollback reste au moins possible, mais dans un manifest de déploiement, cela crée un risque de rupture de compatibilité à n’importe quel moment où de nouveaux Pods sont déployés
  • Avec pip, package.json, Terraform, etc., spécifier « une version ou plus récente » ou ne pas préciser de version produit exactement le même effet que l’usage de latest
  • Utilisez impérativement les mécanismes de type lockfile fournis par les frameworks
    • Committez les fichiers de lock dans le contrôle de source
    • Lors de l’ajout de nouvelles fonctionnalités, de bugfixes ou de correctifs de sécurité, exécutez par exemple terraform init -upgrade, puis committez le fichier de lock
    • Ne mettez pas à jour les fichiers de lock pendant la CI
    • Types de fichiers de lock
      • Terraform : .terraform.lock.hcl
      • Python : Pipfile avec Pipenv
      • Node/Yarn : yarn.lock
      • Go : go.sum et go.mod
  • Si possible, n’effectuez pas de résolution de dépendances au runtime
    → Transformez les dépendances en artefacts déployables et versionnez-les
  • Utilisez des services comme Twistlock / Grype pour effectuer des scans de vulnérabilités

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.