Qu’est-ce qu’un kill switch dans la gestion des versions ?
C’est lorsque les feature flags sont utilisés comme un kill switch dans le processus de développement du logiciel pour désactiver les fonctionnalités si nécessaire.
Pensez-y comme un bouton d’urgence que vous pouvez utiliser lorsque les choses vont mal et vous devez agir rapidement pour empêcher vos utilisateurs d’accéder à une fonctionnalité cassée.
En utilisant des feature flags, les développeurs peuvent désactiver les fonctionnalités cassées tout en testant en production avec un simple bouton.
Sans l’utilisation de feature flags, les développeurs devraient faire un roll back de toute la version, ce qui prend du temps et est un processus complexe qui nécessite une analyse approfondie du problème, retardant ainsi la version tout en essayant de trouver une solution appropriée.
Ce que les feature flags vous permettent de faire est d’isoler les changements à une fonctionnalité spécifique sans mettre en œuvre un retour complet. Par conséquent, avec les feature flags, vous pouvez être assuré que chacune de vos fonctionnalités est sous contrôle.
Par la suite, lorsque la fonction contenant le bug est réparée, il est tout aussi facile de redéployer la fonction que vous avez désactivée.
Par conséquent, due à leur capacité de traiter facilement toute fonctionalite qui tournent mal, rapidement et efficacement, les kill switchs sont essentiels pour tester en toute sécurité en production.
Kill switch in continuous integration and continuous delivery (CI/CD)
L’un des plus grands défis auxquels les développeurs font face au cours du processus d’intégration continue est la façon de traiter les fonctionnalités incomplètes. D’un côté, prenons un développeur qui a fusionné ses changements dans le réseau principal partagé et est prêt à être publié alors qu’un autre développeur n’a pas encore terminé ses changements.
Comment pouvez-vous maintenir le principe de base de l’intégration continue qui consiste à intégrer les changements aussi fréquemment que possible dans le tronc et à permettre à ces changements d’être déployés à tout moment par le déploiement continue dans ce scénario ? Y a-t-il un moyen de désactiver certaines parties du code tout en continuant le lancement?
Les Feature flags nous sauvent
Feature flags ou feature toggles, sous la forme de kill switchs, permettent aux développeurs de garder une partie du code désactivée pendant la publication afin que les utilisateurs ne voient pas les modifications inachevées, tandis que les fonctionnalités achevées pourraient être activées pour les utilisateurs.
Nous avons vu que les feature flags sont utilisés comme kill switch pendant les processus CI/CD, mais ils ont également différents cas d’utilisation comme nous le décrirons ci-dessous.
Fonctionnalités inachevés
Comme dit ci-dessus, l’une des utilisations les plus importantes pour les kill switch est la possibilité de désactiver les fonctionnalités inachevées afin d’empêcher vos utilisateurs d’y accéder avant qu’ils ne soient prêts.
Par conséquent, toute modification qui prend trop de temps à compléter ne retardera pas les déploiements organisés et les développeurs de leur côté seront soumis à moins de pression pour publier leurs propres modifications au code, risquant une version trop précoce avec des fonctionnalités imparfaites.
Le testing en production
Lorsque vous testez en production à un petit sous-ensemble d’utilisateurs, comme lors d’un déploiement des canaris, vous voulez évidemment que la version continue sans accroc. Cependant, après tout, vous avez choisi de tester sur un petit groupe d’utilisateurs, ce qui signifie qu’il reste une chance que vous ayez moins confiance par rapport au fonctionnement de la fonctionnalité.
En cas de problème, vous pouvez simplement désactiver la fonctionnalité gênante sans avoir à faire un rollback complet. Au lieu de cela, vous pouvez l’éteindre immédiatement pour que les utilisateurs ne puissent plus le voir, sans compromettre d’autres parties de votre code.
De cette façon, vous pouvez prendre le temps nécessaire pour analyser le problème, le corriger puis lancer à nouveau en production la fonctionnalité, sans aucune contrainte de temps.
Gestion de haute charge
Les kill switchs sont un bon moyen de réduire la charge sur les systèmes. Par exemple, si votre site connaît un trafic exceptionnellement élevé, la désactivation de certaines fonctionnalités peut aider à réduire la charge et le stress sur la base de données.
Prenons l’exemple d’un site de e-commerce lors du Black Friday. Vous ne voulez pas que votre site s’effondre sur ce qui est considéré comme le jour le plus rentable de l’année. L’utilisation de drapeaux de fonction permet de résoudre le problème de la gestion de tels accidents inattendus.
Ainsi, les développeurs peuvent désactiver les fonctionnalités non essentielles pour certains ou tous les utilisateurs pendant la charge élevée ou en cas de panne. Cela permettrait à votre équipe de continuer à servir vos clients sans perturber leurs services et l’expérience utilisateur.
Applications mobiles
Les feature flags peuvent également être utilisés comme des kill switchs si quelque chose va mal dans votre version de l’application mobile et que vous voulez obtenir rapidement votre application à la dernière version qui marchent normalement..
Ils sont également efficaces lors d’une charge de trafic élevée pour désactiver certaines fonctionnalités de sorte que votre application peut toujours fonctionner même si elle n’est pas à sa capacité maximale. Les développeurs peuvent faire cela en mettant certaines fonctionnalités derrière des feature flags et les désactiver lorsque nécessaire.
En conclusion
Donc, comme nous l’avons vu, un kill switch est essentiel pour vous permettre d’éteindre toutes les fonctionnalités cassées ou inutilisées sans interférer avec le code.
Il est particulièrement important lorsque des incidents se produisent pendant la production, vous donnant la capacité de désactiver rapidement une fonctionnalité qui pourrait avoir un impact négatif sur vos utilisateurs et ruiner l’expérience utilisateur.
Par conséquent, l’utilisation de feature flags de cette façon vous permettrait de mettre en œuvre des techniques d’intégration et de tests continus dans la production, ce qui est important pour maintenir un processus de développement logiciel agile.
Grâce à la fonction de flagging, vous atténuer les risques en gardant vos fonctions étroitement sous votre contrôle grâce à un bouton de désactivation instantané, ce qui donne à votre équipe une plus grande tranquillité d’esprit pour les prochaines versions.
avec ABTasty
Obtenez une démo personnalisée de la plateforme
Demander une démo