profit_image - stock.adobe.com
Avec le rachat de Rollout, Cloudbees place le Feature Flagging sur le devant de la scène
Cette méthode est un puissant outil pour tester le code en production que Cloudbees met en lumière avec le rachat de la société Rollout.
Un changement radical dans la gestion du cycle des développements d’applications. C’est ainsi que certains observateurs du marché ont qualifié les fonctions dites de Feature Flagging, que Cloudbees vient justement d’intégrer à son portefeuille de services DevOps via le rachat de la société Rollout.
Le Feature Flagging, que l’on trouve également sous le nom de Feature Toggle ou Feature Flipping, permet d’insèrer une logique conditionnelle dans le code qui peut être déployée « silencieusement » dans l'infrastructure de production sans devenir accessible au public. Les développeurs ou les chefs de produit ont ensuite la capacité d’activer ou de désactiver la fonction. Ces sociétés, comme Rollout ou encore LaunchDarkly et Split.io, ses concurrents ont la particularité de gérer ce Feature Flagging à l’échelle et de permettre par exemple d'activer ou de désactiver les fonctions d’une application auprès d’un sous-ensemble d'une base d’utilisateurs. Le Feature Flagging offre également des possibilités de rollback en cas de dysfonctionnement d'une fonctionnalité et de découpler le déploiement de code (les développeurs donc) des décisions métier.
Ces Features Flags ne sont pourtant pas un concept nouveau, mais ils sont de plus en plus utilisés lorsque les développeurs apportent des modifications itératives au code en production via des pipelines de CI/CD. Ils ont également évolué au-delà de lourds fichiers de configuration Web déployés manuellement pour devenir des services plus sophistiqués, à grande échelle et centralisés - la spécialité de Rollout.
« Une console se connecte au code. Elle vous donne la possibilité de gérer les populations qui ont accès aux fonctions (Feature Flags). Elles sont donc activées ou désactivées pour un public donné », explique Christopher Condo, analyste chez Forrester Research, faisant référence aux outils de Rollout. « Nous avons constaté que les entreprises utilisent [de tels outils] pour la localisation, plutôt que de faire des traductions et de créer des workflows séparés pour le GDPR par exemple, ou pour donner aux utilisateurs un accès temporaire pour tester un service premium », ajoute-t-il.
Feature Flags, gestion des API vs GitFlow
L'acquisition de Rollout par Cloudbess, ainsi que celle d'Electric Cloud en avril 2019, positionne un peu plus la société de Sacha Labourey comme une spécialiste de la gestion globale du développement logiciel. Selon les observateurs du marché, l'arrivée de CloudBees dans ces Feature Flagging laisse même présager que d’autres éditeurs lui emboiteront le pas.
Les ténors du Web comme Google ont été les premiers à faire avancer ces idées d'automatisation des releases et de DevOps. Ils ont fait l’éloge des principes de GitFlow et de très vastes dépôts de code (monorepos). Mais cela va à l'encontre des tendances de l’IT moderne qui, de par sa nature, est répartie entre plusieurs équipes, processus et applications. Dans ce contexte, les équipes DevOps privilégient désormais une combinaison d'outils de gestion d'API et de Feature Flagging pour rassembler les nombreuses pièces des workflows d'entreprise, affirment les experts du secteur.
« L'entreprise est composée d'outils fragmentés qui doivent tous se parler », souligne ainsi Jeremy Pullen, PDG et consultant principal de la société de conseils Polodis, spécialisé dans la gestion DevSecOps. « Les pipelines et le Feature Flagging représentent une méthode de plus haut niveau pour coordonner des centaines de microservices dans l'entreprise. »
Pour lui, les pipelines tels que ceux créés à partir de Jenkins X et ces Flags remplaceront même à terme les référentiels de contrôle de sources et les outils de workflow, comme GitFlow pour gérer les cycles de développement. L'achat de Rollout en est un exemple.
Feature Flagging : encore trop complexe
Bien qu'il y ait des avantages à utiliser le Feature Flagging, son utilisation excessive peut causer de vrais maux de tête, en particulier lors des tests de code. Les développeurs et les spécialistes DevOps doivent tester plusieurs logiques conditionnelles, ou If/then, avant le déploiement. Lorsque le nombre ces Feature Flags augmentent dans plusieurs branches de code, la complexité des tests peut monter en flèche et ralentir les déploiements - ce qui va à l'encontre des avantages attendus de cet outil.
L'erreur humaine peut également être présente lors de l'écriture de Feature Flags et ne pas donner les résultats escomptés. Une fonction peut par exemple être lancée à grande échelle, mais pas auprès de la population à laquelle elle était destinée. Ce fut le cas pour Knight Capital Group en avril 2012. Un Feature Flag mal configuré a causé la faillite de l'entreprise en une seule journée.
La gestion automatisée et le contrôle programmatique comme le propose Rollout permettent d’éviter de tels scénarios. Cependant, ces outils ne couvrent pas toujours un autre aspect important : le nettoyage des Feature Flags périmés, ce qui est crucial pour minimiser les risques.
« Si vous ne nettoyez pas chaque fonction, cela se transforme en une autre forme de dette technique », lance Christopher Condo. « Si vous ajoutez un Feature Flag à votre processus de déploiement, vous devez également créer une tâche pour le supprimer lorsque la release est terminée. Les ingénieurs logiciels qui détiennent la fonctionnalité doivent avoir l'intelligence nécessaire pour effectuer ce nettoyage. »
Cette complexité est le compromis que les entreprises doivent faire pour accéder à ces Feature Flags, conclut Jeremy Pullen. Mais selon lui, les outils de workflow et de pipeline, de Jira à Jenkins X, permettront à terme de résoudre ce problème. Dans le cas de CloudBees, l'acquisition de Rollout accélérera probablement ce processus de développement.