Web

Sunny Tech 2022 – Les feature flags : qu’est-ce que c’est et à quoi ça sert ?

by Matthieu Linconnu 12 juillet 2022

Après deux ans d’absence, la Sunny Tech est enfin de retour pour le plus grand plaisir des participants. Cette édition a eu lieu du 30 juin au 1er juillet 2022. Parmi les nombreuses conférences ayant eu lieu durant cet événement, une a particulièrement retenu mon attention. Il s’agit de la conférence présentée par Sébastien Stormacq: “Un déploiement n’est pas une release – contrôlez vos lancements avec des Feature Flags”.

Qu’est-ce qu’un feature flag ?

Pour commencer, il est bien de savoir ce dont on parle. Les feature flags ou feature toggles sont une technique de développement qui permet d’activer ou de désactiver certaines fonctionnalités à la demande.

Mise en place des feature flags

Pour la mise en place, plusieurs outils en ligne existent comme par exemple Amazon Web A/B qui a été utilisé lors de la conférence du Sunny Tech, mais il en existe d’autres comme LaunchDarkly, Apptimize, CloudBee et bien d’autres.

L’ensemble de ces outils permettent de créer des feature flags depuis un back-office. Il reste alors dans le code à récupérer le flag grâce à l’API de l’outil, de vérifier sa valeur et, en fonction de si le flag est activé ou non, faire varier le code exécuté.

Cas d’utilisation des feature flags

Maintenant que l’on sait ce que sont les feature flags et comment les utiliser, il nous reste à voir en quoi ça peut nous aider et leur utilité.

L’une des principales utilisations des features flags est de décorréler la livraison du code de sa mise en ligne. Ça peut être utilisé pour faire correspondre la mise en ligne d’une fonctionnalité avec une campagne marketing en évitant les aléas de la livraison du code. Cela permet également, en cas de problème majeur, de rapidement désactiver la fonctionnalité.

Utilisation avancée des feature flags

En plus de simplement définir si un feature flag est activé, il est possible de définir des règles de gestion plus complexes.
Il est par exemple possible de programmer à l’avance la date d’activation du feature flag, ou encore d’activer le feature flag uniquement pour certains utilisateurs. Cela va permettre au développeur de tester la fonctionnalité et de s’assurer que la livraison se soit bien passée, sans impacter le site en ligne.
Il est également possible de faire varier la valeur du feature flag par pays afin de gérer la mise en service pour chaque pays en accord avec les différentes contraintes.

Il faut savoir que les règles de gestion disponibles et leur mise en place vont varier en fonction de la solution que vous aurez choisie. Il faut donc bien s’assurer que l’outil choisi corresponde à votre besoin.

A/B Testing

Commençons par une courte présentation de l’A/B testing.
L’A/B testing consiste à proposer plusieurs versions d’une même page ou composant et, à l’aide de différents outils de tracking, comme Hotjar, mesurer quelle version est la plus adaptée.

Grâce au feature flag, il est facile de mettre en place les variations et de contrôler leur affichage, notamment grâce à une règle de gestion qui permet d’afficher, de manière aléatoire à un pourcentage des utilisateurs, l’une des variantes possibles.

Inconvénients des feature flags

Bien que particulièrement utiles et flexibles, les feature flags ne sont pas une solution miracle et ont plusieurs inconvénients.

  • Chaque test d’un flag va nécessiter un appel à une API, ce qui peut, selon le nombre de requêtes et la qualité du réseau, impacter les performances du produit.
  • Cela crée plusieurs embranchements / variations possibles d’une même page, complexifiant le débugage.
  • Ils ajoutent du code supplémentaire qu’il faut penser à nettoyer une fois la fonctionnalité activée en ligne de manière définitive.

Conclusion

Les features flags sont une solution plutôt simple à mettre en place qui permet de gagner en souplesse lors des déploiements de son produit. Ils permettent également de simplifier la mise en place d’A/B testing, augmentant la qualité de produit tout en sécurisant les mises à jour.

Matthieu Linconnu

Matthieu Linconnu

Développeur fullstack

Développeur fullstack chez Kaliop depuis 5 ans, je travaille sur des projets JS et PHP. J’aime travailler sur des projets variés proposant de nouveaux challenges au quotidien.

Commentaires

Ajouter un commentaire

Votre commentaire sera modéré par nos administrateurs

Vous avez un projet ? Nos équipes répondent à vos questions

Contactez-nous