Utilisation des feature flags par APiLos¶
Les feature flags permettent d’activer ou de désactiver des fonctionnalités du projet directement en production sans avoir à faire un nouveau déploiement.
Cas d’utilisation¶
Intégration progressive¶
Les feature flags permettent des mises en production régulières lors du développement d’une grosse fonctionnalité, sans attendre que celle-ci soit terminée.
Cela permet une intégration du code progressive et évite les mises en production risquées.
Fonctionnalité risquée¶
Certaines nouvelles fonctionalités sont difficiles à tester hors conditions réelles, par exemple la modification de requêtes SQL pouvant entraîner des problèmes de performance.
Un feature flag permet de diminuer le risque d’interruption de service, grâce au contrôle du moment exact d’activation et la possibilité d’une désactivation immédiate.
Beta testing¶
Un flag peut-être activé pour un sous-ensemble des utilisateurs, permettant de tester des fonctionnalités avant de les ouvrir à l’ensemble des utilisateurs.
Implémentation¶
Nous utilisons la librairie django-waffle
pour l’implémentation des feature flags. Elle propose des switchs activables pour l’ensemble du site via l’admin, ou des flags activables pour des utilisateurs en particulier.
https://waffle.readthedocs.io/en/stable
Cycle de vie des flags¶
Nous n’avons pas de protocole en place pour supprimer un feature flag. Il peut être intéressant de créer un ticket de suppression du flag dans le backlog à chaque fois qu’on crée un nouveau flag, pour anticiper sa suppression.
Un flag n’a pas vocation à rester dans le code après son activation, il peut être supprimé quelques jours ou semaines après.
Feature flags du projet¶
Nom |
Type |
|
---|---|---|
SWITCH_VISIBILITY_AVENANT_BAILLEUR |
Switch |
Détermine la visiblité des conventions en fonction des avenants bailleur |
FLAG_ADD_CONVENTION |
Flag |
Active l’ajout simplifié de convention |
SWITCH_SIAP_ALERTS_ON |
Switch |
Active la création d’alertes lors des changements de statuts de convention |
SWITCH_TRANSACTIONAL_EMAILS_OFF |
Switch |
Désactive l’envoi d’emails lors des changements de statuts de convention |