Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lancer vos fonctionnalités sans déployer avec l'aide des feature flags

Lancer vos fonctionnalités sans déployer avec l'aide des feature flags

D23fa591960306ea29f794603981d99a?s=128

Laurent Jalbert-Simard

September 04, 2021
Tweet

Transcript

  1. Lancer vos fonctionnalités sans déployer avec l'aide des feature flags

  2. Laurent Jalbert-Simard Présentement • Directeur de l'infrastructure @ Poka Anciennement

    • Programmeur outils @ Ubisoft Bénévolement • Designer pour le CTF du Hackfest
  3. Pourquoi je veux vous parler de feature flags?

  4. Parce que c'est cool ! et que je veux partager

    la bonne nouvelle Rien à voir avec le fait que je viens de passer les 6 derniers mois à magasiner et implémenter une solution de feature flags et que je veux rentabiliser le temps investi
  5. None
  6. Lexique Franglais Anglais ! Franglais " Feature switch Une feature

    switch Feature flag Un feature flag Feature toggle Un feature ...flag Français ! Interrupteur de fonctionnalité Drapeau de caractéristique
  7. Disclaimer ⚠ • Pas (encore) un expert • Les amateurs

    de Vue, pardonnez-moi à l'avance • Pas une infopub pour LaunchDarkly
  8. C’est quoi un feature flag ?

  9. Les feature flags sont une puissante technique qui permettent aux

    équipes d'altérer le comportement d'un système sans modifier le code. — Pete Hodgson 1 1 Traduction libre de Feature Toggles (aka Feature Flags) https://martinfowler.com/articles/feature-toggles.html.
  10. Démo

  11. L'anatomie d'un feature flag

  12. L'anatomie d'un feature flag Point de bascule (aka la switch)

    function calculeLaFacture(){ if( featureFlagIsEnabled("calculateur-intelligent") ){ return factureAvecLeCalculateurIntelligent(); }else{ return factureAvecLeVieuxCalculateur(); } }
  13. L'anatomie d'un feature flag Le contexte • Info par rapport

    à l'utilisateur • Info par rapport au serveur • Cookie spécial ou un entête HTTP • N'importe quoi qui peut servir à cibler
  14. L'anatomie d'un feature flag La configuration • Un fichier texte

    • Des arguments de ligne de commande • Des variables d'environnement • La base de données de votre application • Un logiciel de gestion de fonctionnalités
  15. Tous les feature flags ne sont pas nés égaux...

  16. Les catégories de flags • Permissioning Flags • Ops Flags

    • Experiment Flags • Release Flags
  17. Les catégories de flags Permissioning Flags • Palier de prix

    • Programme de bêta • Usage à l'interne • Durée de vie: Moyenne à longue • Parties prenantes: Ventes, Gestionnaires de projet
  18. Les catégories de flags Ops Flags • Kill Switch •

    Migration contrôlée • Durée de vie: Courte à longue • Parties prenantes: Administrateurs système, Développeurs
  19. Les catégories de flags Experiment Flags • A/B Testing •

    Durée de vie: Courte • Parties prenantes: Marketing, Design
  20. Les catégories de flags Release Flags • Découple les déploiements

    de code des lancements de fonctionnalités • Permet de faire du Continous Delivery • Différents types de déploiements: canari, plannifié, ciblé • Durée de vie: Courte • Parties prenantes: Gestionnaires de projet, Chefs de produit, Développeurs
  21. Mise en garde • Garder un oeil sur la complexité

    introduite • Prévoir l'éventualité où le service serait en panne • Les Ad Blockers / Pi-Hole ont tendance à filtrer les services externes • Résister à l'idée de bâtir votre propre système de gestion de fonctionnalités
  22. TL;DR Les feature flags c'est plus cool que vous le

    pensiez
  23. Des questions?

  24. Merci!