Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À mesure que les équipes DevOps passent à une méthodologie Agile qui se concentre sur la livraison continue des fonctionnalités, la nécessité de contrôler la façon dont elles deviennent disponibles pour les utilisateurs devient de plus en plus importante. Les indicateurs de fonctionnalité constituent une solution idéale pour limiter l’accès des utilisateurs aux nouvelles fonctionnalités, soit à des fins marketing, soit à des fins de test en production.
Découplage du déploiement et de l’exposition
Avec les indicateurs de fonctionnalité, une équipe peut choisir si un ensemble donné de fonctionnalités est visible dans l’expérience utilisateur et/ou appelé dans la fonctionnalité. De nouvelles fonctionnalités peuvent être créées et déployées dans le cadre du processus de développement ordinaire sans avoir ces fonctionnalités disponibles pour un accès étendu. Le déploiement des fonctionnalités est facilement découplé de leur exposition.
Les indicateurs fournissent un contrôle d’exécution à un utilisateur individuel
Les indicateurs fournissent également un contrôle granulaire jusqu’à l’utilisateur individuel. Quand il est temps d’activer une fonctionnalité, qu’il s’agisse d’un utilisateur, d’un petit groupe ou de tout le monde, l’équipe peut simplement modifier l’indicateur de fonctionnalité pour l’éclairer sans avoir à redéployer.
L’étendue d’un indicateur de fonctionnalité varie en fonction de la nature de la fonctionnalité et du public. Dans certains cas, un indicateur de fonctionnalité active automatiquement la fonctionnalité pour tout le monde. Dans d’autres cas, une fonctionnalité sera activée sur une base utilisateur par utilisateur. Teams peut également utiliser des indicateurs de fonctionnalité pour permettre aux utilisateurs de choisir d’activer une fonctionnalité, le cas échéant. Il n’y a vraiment aucune limite à la façon dont les indicateurs de fonctionnalité sont implémentés.
Prendre en charge les commentaires précoces et l’expérimentation
Les indicateurs de fonctionnalité constituent un excellent moyen de prendre en charge les premières expérimentations. Certaines fonctionnalités peuvent avoir des arêtes approximatives au début, ce qui peut être intéressant seulement pour les premiers utilisateurs. Essayer de pousser ces caractéristiques pas tout à fait prêtes sur un public plus large pourrait produire de l’insatisfaction. Mais l’avantage de recueillir des commentaires des utilisateurs prêts à traiter une fonctionnalité en cours est inestimable.
Commutateur de désactivation rapide
Parfois, il est utile de pouvoir désactiver quelque chose. Par exemple, supposons qu’une nouvelle fonctionnalité ne fonctionne pas comme elle était prévue et qu’il existe des effets secondaires qui provoquent des problèmes ailleurs. Vous pouvez utiliser des indicateurs de fonctionnalité pour désactiver rapidement la nouvelle fonctionnalité afin de restaurer le comportement approuvé sans avoir à redéployer. Bien que les indicateurs de fonctionnalité soient souvent considérés en termes de fonctionnalités d’interface utilisateur, ils peuvent également être facilement utilisés pour les modifications apportées à l’architecture ou à l’infrastructure.
Étapes standard
Microsoft utilise un processus de déploiement standard pour activer les indicateurs de fonctionnalité. Il existe deux concepts distincts : les niveaux sont destinés aux déploiements, et les étapes sont destinées aux indicateurs de fonctionnalité. En savoir plus sur les niveaux et les phases.
Les étapes concernent toutes la divulgation ou l’exposition. Par exemple, la première étape peut être destinée au compte d’une équipe et aux comptes personnels des membres. La plupart des utilisateurs ne verraient rien de nouveau, car les seuls indicateurs de place sont activés pour cette première étape. Cela permet à une équipe de l’utiliser et de l’expérimenter entièrement. Une fois que l’équipe s’est arrêtée, les clients sélectionnés pourront y adhérer via la deuxième phase des indicateurs de fonctionnalité.
S'inscrire
Il est recommandé d’autoriser les utilisateurs à opter pour les indicateurs de fonctionnalité lorsque cela est possible. Par exemple, l’équipe peut exposer un panneau d’aperçu associé aux préférences ou paramètres de l’utilisateur.
Utiliser des indicateurs avec des données de télémétrie
Les indicateurs de fonctionnalité permettent d’exposer de manière incrémentielle les mises à jour. Toutefois, les équipes doivent surveiller en permanence les mesures appropriées pour évaluer la préparation à une exposition plus large. Ces métriques doivent inclure le comportement d’utilisation, ainsi que l’impact des mises à jour sur l’intégrité du système. Il est important d’éviter le piège de supposer que tout va bien parce que rien de mauvais semble se produire.
Exemple d’indicateur de fonctionnalité
Prenons l’exemple ci-dessous. L’équipe a ajouté quelques boutons ici pour Cherry-pick et Rétablir dans l’interface utilisateur de la demande de tirage. Celles-ci ont été déployées à l’aide d’indicateurs de fonctionnalité.
Définir des indicateurs de fonctionnalité
La première fonctionnalité exposée était le bouton Rétablir . La solution utilise un fichier XML pour définir tous les indicateurs de fonctionnalité. Il existe un fichier par service dans ce cas, ce qui crée une incitation à supprimer les anciens indicateurs pour empêcher la section d’obtenir beaucoup de temps. L’équipe supprime les anciens indicateurs, car il existe une motivation naturelle pour contrôler la taille de ce fichier.
<?xml version="1.0" encoding="utf-8"?>
<!--
In this group we should register Azure DevOps specific features and sets their states.
-->
<ServicingStepGroup name="AzureDevOpsFeatureAvailability" … >
<Steps>
<!-- Feature Availability -->
<ServicingStep name="Register features" stepPerformer="FeatureAvailability" … >
<StepData>
<!--specifying owner to allow implicit removal of features -->
<Features owner="AzureDevOps">
<!-- Begin TFVC/Git -->
<Feature name="SourceControl.Revert" description="Source control revert features" />
Une infrastructure de serveur commune encourage la réutilisation et les économies d’échelle dans l’ensemble de l’équipe. Dans l’idéal, le projet aura une infrastructure en place afin qu’un développeur puisse simplement définir un indicateur dans un magasin central et disposer du reste de l’infrastructure gérée pour eux.
Vérifier les indicateurs de fonctionnalité au moment de l’exécution
L’indicateur de fonctionnalité utilisé ici est nommé SourceControl.Revert. Voici le typeScript réel de cette page qui illustre l’appel à un contrôle de disponibilité des fonctionnalités.
private addRevertButton(): void {
if (FeatureAvailability.isFeatureEnabled(Flags.SourceControlRevert)) {
this._calloutButtons.unshift(
<button onClick={ () => Dialogs.revertPullRequest(
this.props.repositoryContext,
this.props.pullRequest.pullRequestContract(),
this.props.pullRequest.branchStatusContract().sourceBranchStatus,
this.props.pullRequest.branchStatusContract().targetBranchStatus)
}
>
{VCResources.PullRequest_Revert_Button}
</button>
);
}
}
L’exemple ci-dessus illustre l’utilisation dans TypeScript, mais elle peut aussi facilement être accessible à l’aide de C#. Le code vérifie si la fonctionnalité est activée et, le cas échéant, affiche un bouton pour fournir la fonctionnalité. Si l’indicateur n’est pas activé, le bouton est ignoré.
Contrôler un indicateur de fonctionnalité
Une bonne plateforme d’indicateurs de fonctionnalité fournit plusieurs façons de gérer si un indicateur donné est défini. En règle générale, il existe des scénarios d’utilisation pour que l’indicateur soit contrôlé via PowerShell et l’interface web. Pour PowerShell, tous ces éléments doivent vraiment être exposés sont des façons d’obtenir et de définir l’état d’un indicateur de fonctionnalité, ainsi que des paramètres facultatifs pour des éléments tels que des identificateurs de compte d’utilisateur spécifiques, le cas échéant.
Contrôler les indicateurs de fonctionnalités via l’interface utilisateur web
L’exemple suivant utilise l’interface utilisateur web exposée pour ce produit par l’équipe. Notez l’indicateur de fonctionnalité pour SourceControl.Revert. Il y a deux comptes personnels répertoriés ici : hallux et buckh-westeur. L’état est défini pour hallux, qui se trouve dans le Centre Nord et effacé pour l’autre compte en Europe Ouest.
La nature de l’indicateur de fonctionnalité va conduire à la façon dont les fonctionnalités sont exposées. Dans certains cas, l’exposition suit un modèle de niveau et d’étape. Dans d’autres, les utilisateurs peuvent choisir par le biais de l’interface utilisateur de configuration, ou même en envoyant par e-mail à l’équipe l’accès.
Considérations relatives aux indicateurs de fonctionnalité
La plupart des indicateurs de fonctionnalité peuvent être supprimés une fois qu’une fonctionnalité a été déployée pour tout le monde. À ce stade, l’équipe peut supprimer toutes les références à l’indicateur dans le code et la configuration. Il est recommandé d’inclure une révision d’indicateur de fonctionnalité, comme au début de chaque sprint.
En même temps, il peut y avoir un ensemble d’indicateurs de fonctionnalité qui persistent pour différentes raisons. Par exemple, l’équipe peut vouloir conserver un indicateur de fonctionnalité qui branche quelque infrastructure pendant une période après le basculement complet du service de production. Toutefois, gardez à l’esprit que ce chemin de code potentiel peut être réactivé à l’avenir lors d’une effacement explicite de l’indicateur de fonctionnalité, de sorte qu’il doit être testé et conservé jusqu’à ce que l’option soit supprimée.
Indicateurs de fonctionnalité et stratégie de branchement
Les indicateurs de fonctionnalité permettent aux équipes de développement d’inclure des fonctionnalités main incomplètes sans affecter quelqu’un d’autre. Tant que le chemin de code est isolé derrière un indicateur de fonctionnalité, il est généralement sûr de générer et de publier ce code sans effets secondaires ayant un impact sur l’utilisation normale. Toutefois, s’il existe des cas où une fonctionnalité nécessite des dépendances, par exemple lors de l’exposition d’un point de terminaison REST, les équipes doivent prendre en compte la façon dont ces dépendances peuvent créer un travail de sécurité ou de maintenance, même si la fonctionnalité n’est pas exposée.
Indicateurs de fonctionnalité pour atténuer les risques
Parfois, les nouvelles fonctionnalités peuvent introduire des changements destructeurs ou perturbants. Par exemple, le produit peut subir une transformation d’un schéma de base de données large à un autre. Dans ce scénario, le développeur doit créer une branche de fonctionnalité pendant un petit temps. Ils effectuent ensuite les modifications déstabilisantes sur la branche et conservent la fonctionnalité derrière un indicateur. Une pratique populaire est que les équipes fusionnent ensuite les modifications dès main qu’elles ne provoquent aucun préjudice. Cela ne serait pas possible sans la possibilité de conserver la fonctionnalité non terminée masquée derrière un indicateur de fonctionnalité.
Les indicateurs de fonctionnalité aident à travailler dans la partie principale
Si vous suivez les pratiques courantes abordées dans la phase Développement , le travail main est un bon moyen de renforcer un cycle DevOps. Lorsqu’ils sont combinés avec des indicateurs de fonctionnalité, les développeurs peuvent rapidement fusionner des fonctionnalités en amont et les envoyer via le gauntlet de test. Le code de qualité peut rapidement être publié pour les tests en production. Après quelques sprints, les développeurs reconnaissent les avantages des indicateurs de fonctionnalités et les utilisent de manière proactive.
Comment décider s’il faut utiliser un indicateur de fonctionnalité
Les équipes de fonctionnalités ont la décision de déterminer s’ils ont besoin d’un indicateur de fonctionnalité ou non pour une modification donnée. Chaque modification n’en nécessite pas une. Il s’agit donc d’un appel de jugement pour un développeur lorsqu’il choisit d’apporter une modification donnée. Dans le cas de la fonctionnalité Rétablir décrite précédemment, il était important d’utiliser un indicateur de fonctionnalité pour contrôler l’exposition. Permettre aux équipes de prendre des décisions clés sur leur domaine de fonctionnalités fait partie de l’autonomie dans une organisation DevOps efficace.
Générer et acheter
Bien qu’il soit possible de créer votre propre infrastructure d’indicateur de fonctionnalité, l’adoption d’une plateforme comme LaunchDarkly ou Split est généralement recommandée. Il est préférable d’investir dans la création de fonctionnalités au lieu de reconstruire les fonctionnalités d’indicateur de fonctionnalité.
Étapes suivantes
En savoir plus sur l’utilisation d’indicateurs de fonctionnalité dans une application ASP.NET Core.