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

Laurent Jalbert-Simard

September 04, 2021
Tweet

Other Decks in Programming

Transcript

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

    • Programmeur outils @ Ubisoft Bénévolement • Designer pour le CTF du Hackfest
  2. 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
  3. 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
  4. Disclaimer ⚠ • Pas (encore) un expert • Les amateurs

    de Vue, pardonnez-moi à l'avance • Pas une infopub pour LaunchDarkly
  5. 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.
  6. L'anatomie d'un feature flag Point de bascule (aka la switch)

    function calculeLaFacture(){ if( featureFlagIsEnabled("calculateur-intelligent") ){ return factureAvecLeCalculateurIntelligent(); }else{ return factureAvecLeVieuxCalculateur(); } }
  7. 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
  8. 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
  9. 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
  10. 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
  11. Les catégories de flags Experiment Flags • A/B Testing •

    Durée de vie: Courte • Parties prenantes: Marketing, Design
  12. 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
  13. 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