Dans le monde en constante évolution du développement de logiciels, il existe des outils et des stratégies qui peuvent considérablement améliorer le processus et les résultats de notre travail. L'une de ces techniques, que beaucoup ne connaissent peut-être pas, est la gestion des versions.
Plus précisément, nous devons parler du rôle des indicateurs de fonctionnalité dans la gestion des versions.
La gestion des versions est le processus de planification, de planification et de contrôle d'une version logicielle à travers différentes étapes et environnements, y compris le test et le déploiement des versions logicielles.
Considérez-le comme le metteur en scène d'une production théâtrale, s'assurant que chaque scène (ou dans notre cas, long métrage) se déroule sans heurts et au bon moment.
Un excellent exemple de l'importance de la gestion des versions est le tristement célèbre lancement en 1996 du vol 501 d'Ariane 5 par l'Agence spatiale européenne.
Un bogue logiciel mineur, négligé dans le processus de sortie, a entraîné une perte de plus de 370 millions de dollars lorsque la fusée s'est autodétruite moins d'une minute après le décollage. Une bonne gestion des versions aurait pu empêcher ce désastre.
Imaginez que vous êtes un magicien et que vous avez le pouvoir de faire apparaître et disparaître certaines parties de votre numéro à volonté. C'est ce que font les feature flags dans le monde du logiciel. Ils permettent aux développeurs d'activer ou de désactiver des fonctionnalités dans une application logicielle sans modifier le code ni redéployer l'application.
Cette technique est également connue sous le nom de basculement de fonctionnalité, de commutation de fonctionnalité ou de retournement de fonctionnalité.
Les indicateurs de fonctionnalité et la gestion des versions se recoupent de manière à donner aux développeurs plus de contrôle sur les fonctionnalités de leur logiciel à différentes étapes du processus de publication.
C'est comme si une version « répétition » et « interprétation finale » d'une pièce se déroulait simultanément, le réalisateur ayant le pouvoir d'échanger des scènes de manière transparente.
Par exemple, une nouvelle fonctionnalité dans une application peut être cachée derrière un indicateur de fonctionnalité pendant la phase de test, permettant aux développeurs de la tester en profondeur sans impacter les utilisateurs finaux. Si un problème survient, la fonctionnalité peut être désactivée immédiatement, évitant ainsi toute expérience utilisateur négative.
Les indicateurs de fonctionnalité offrent de nombreux avantages dans la gestion des versions, des déploiements sécurisés à l'expérimentation et à la dégradation progressive.
Les déploiements sûrs sont comme avoir un filet de sécurité. En déployant de nouvelles fonctionnalités derrière un indicateur de fonctionnalité, les développeurs peuvent progressivement déployer la fonctionnalité auprès d'un petit groupe d'utilisateurs, réduisant ainsi le risque de problèmes généralisés.
Par exemple, Netflix est connu pour son utilisation d'indicateurs de fonctionnalité pour faire des "versions canari", où de nouvelles fonctionnalités sont déployées auprès d'un petit public avant une version complète.
Les drapeaux de fonctionnalités ne sont pas seulement un outil sympa pour les développeurs, ils changent la donne pour l'ensemble du processus de développement logiciel. Ceci est essentiel pour comprendre que les indicateurs de fonctionnalité vous aident à expédier et à contrôler vos versions, mais voici comment ils sont importants pour votre flux de travail quotidien :
Risque réduit : les indicateurs de fonctionnalité réduisent le risque de déploiement de nouvelles fonctionnalités. En cachant les nouvelles fonctionnalités derrière des drapeaux, nous pouvons les tester minutieusement avant de les mettre à la disposition de tous les utilisateurs.
Commentaires plus rapides : en publiant des fonctionnalités pour un petit sous-ensemble d'utilisateurs, nous pouvons recueillir des commentaires et apporter des améliorations plus rapidement.
Expérimentation : les indicateurs de fonctionnalité permettent les tests A/B, ce qui nous permet de tester différentes versions d'une fonctionnalité pour voir laquelle fonctionne le mieux.
Restaurations transparentes : si une fonctionnalité ne fonctionne pas comme prévu, les indicateurs de fonctionnalité permettent une restauration rapide. C'est beaucoup plus simple et moins risqué que de devoir annuler une version complète du logiciel. Et maintenant?
À une époque où les attentes des clients et la concurrence sont plus élevées que jamais, comprendre et exploiter les indicateurs de fonctionnalité n'est plus facultatif, c'est essentiel. Imaginez une situation où un bogue majeur est découvert dans une fonctionnalité après son déploiement.
Sans les indicateurs de fonctionnalité, l'intégralité de l'application devra peut-être être supprimée pour résoudre le problème. Mais avec les indicateurs de fonctionnalité, la fonctionnalité défectueuse peut être désactivée tandis que le reste de l'application continue de servir les utilisateurs sans interruption.
Le rôle des feature flags dans la gestion des versions est un sujet qui mérite plus d'attention dans l'industrie technologique. Comme nous l'avons vu, ils offrent un moyen puissant de contrôler les versions de fonctionnalités, de réduire les risques et, en fin de compte, de fournir un meilleur produit aux utilisateurs.
L'implémentation des indicateurs de fonctionnalité dans votre logiciel peut être réalisée de plusieurs manières. Tu peux:
Créez les vôtres : si vous avez le temps et les ressources, vous pouvez coder vos propres indicateurs de fonctionnalité directement dans votre application. Cela vous donne le plus de contrôle, mais cela peut prendre du temps, et le maintenir est un engagement énorme.
Utiliser une bibliothèque : plusieurs bibliothèques peuvent vous aider à implémenter des indicateurs de fonctionnalité, telles que Togglz pour Java ou Django-waffle pour Python.
Utilisez un système de gestion des indicateurs de fonctionnalité : pour une solution plus robuste, vous pouvez utiliser un système de gestion des indicateurs de fonctionnalité comme Unleash , un outil gratuit et open source qui vous permet de contrôler vos indicateurs de fonctionnalité sans le gros du travail.
Avec git et docker installés, il est facile de commencer :
Exécutez ce script :
git clone [email protected]:Unleash/unleash.git cd unleash docker compose up -d
Pointez ensuite votre navigateur vers localhost:4242
et connectez-vous en utilisant :
nom d'utilisateur : admin
mot de passe : unleash4all
Si vous préférez exécuter le code source de ce dépôt directement via Node.js, consultez les instructions pas à pas pour être opérationnel dans le guide de contribution .
Trouvez votre SDK préféré dans notre liste de SDK officiels et importez-le dans votre projet. Suivez les guides de configuration de votre SDK spécifique.
Pour les SDK frontaux, utilisez :
http://localhost:4242/api/frontend/
default:development.unleash-insecure-frontend-api-token
Pour les SDK côté serveur, utilisez :
http://localhost:4242/api/
default:development.unleash-insecure-api-token
Si vous utilisez une configuration différente, vos détails de configuration seront très probablement également différents, ce que vous pouvez trouver sur le GitHub Repo .
À une époque où les attentes des clients et la concurrence sont plus élevées que jamais, comprendre et exploiter les indicateurs de fonctionnalité n'est plus facultatif, c'est essentiel. Imaginez une situation où un bogue majeur est découvert dans une fonctionnalité après son déploiement.
Sans les indicateurs de fonctionnalité, l'intégralité de l'application devra peut-être être supprimée pour résoudre le problème. Mais avec les indicateurs de fonctionnalité, la fonctionnalité défectueuse peut être désactivée tandis que le reste de l'application continue de servir les utilisateurs sans interruption.
Le rôle des feature flags dans la gestion des versions est un sujet qui mérite plus d'attention dans l'industrie technologique. Comme nous l'avons vu, ils offrent un moyen puissant de contrôler les versions de fonctionnalités, de réduire les risques et, en fin de compte, de fournir un meilleur produit aux utilisateurs.