Leçons Tirées De La Panne CrowdStrike Pour Protéger Vos Mises À Jour Logicielles

Imaginez le chaos : des aéroports, des établissements de santé et des centres d’appels d’urgence paralysés suite à une simple mise à jour logicielle. C’est exactement le scénario cauchemardesque qu’a vécu CrowdStrike vendredi dernier. Le géant de la cybersécurité a déployé un patch relativement mineur qui a pourtant semé la pagaille dans de larges pans du monde informatique sous Microsoft Windows.

Si l’origine de la panne est connue – un code défectueux – la façon dont il a pu passer entre les mailles du filet reste un mystère. Une entreprise comme CrowdStrike dispose très probablement d’un pipeline DevOps sophistiqué avec des politiques de déploiement strictes. Et pourtant, le bug fatal a réussi à se faufiler.

L’importance d’une hygiène rigoureuse des mises à jour logicielles

Selon Dan Rogers, PDG de LaunchDarkly, une firme spécialisée dans le déploiement logiciel hautement contrôlé via des feature flags, la plupart des problèmes logiciels rencontrés par les utilisateurs ne sont pas dus à des défaillances d’infrastructure, mais bel et bien à des déploiements de code défectueux. Des bugs pourtant largement évitables en suivant les bonnes pratiques :

  • Tester rigoureusement avant tout déploiement
  • Déployer de manière progressive et contrôlée
  • Pouvoir rapidement désactiver une fonctionnalité problématique

Jyoti Bansal, fondateur et PDG de Harness Labs, un éditeur d’outils pour pipelines DevOps, souligne qu’il est courant, surtout pour des mises à jour mineures, que des équipes d’ingénierie court-circuitent les procédures de test. Un risque particulièrement présent dans les grandes organisations où il n’y a pas d’approche unifiée pour les déploiements.

Canary releases et feature flags : les gardes-fous du déploiement moderne

Pour minimiser les risques, les experts recommandent de combiner :

  • Des canary releases : de petits déploiements de test hautement surveillés
  • Des déploiements progressifs : étendre graduellement la mise à jour après validation des canary releases
  • Des feature flags : pouvoir activer/désactiver à la volée de nouvelles fonctionnalités

Il ne suffit pas d’avoir une excellente plateforme logicielle, des développeurs hautement qualifiés ou des workflows prédéfinis. Les trois doivent se combiner.

– Dan Rogers, PDG de LaunchDarkly

Trouver le juste équilibre entre sécurité et vélocité

Un pipeline de déploiement trop rigide peut cependant avoir l’effet inverse de celui escompté. S’il ralentit trop les développeurs, ces derniers chercheront des moyens de le contourner. La clé est de mettre en place des processus automatisés qui garantissent un haut niveau de qualité sans sacrifier la vitesse d’exécution.

Bien qu’on ne connaisse pas encore tous les détails de l’incident CrowdStrike, une chose est sûre : adopter les meilleures pratiques DevOps comme les canary releases et les feature flags permet de grandement limiter les dégâts en cas de déploiement défectueux. Du code de mauvaise qualité passera toujours entre les mailles du filet de temps à autre, mais en suivant ces principes, les conséquences ne devraient plus jamais atteindre l’ampleur de la panne de vendredi dernier.

À lire également