Configuration du déploiement progressif
Le déploiement progressif automatise l'exposition graduelle des fonctionnalités aux utilisateurs au fil du temps, éliminant ainsi les interventions manuelles et réduisant les efforts opérationnels. Vous définissez plusieurs phases avec des pourcentages et des durées spécifiques, et « App Configuration » gère automatiquement les transitions entre les phases en fonction de votre planning.
Un déploiement progressif offre plusieurs avantages pour la mise en place de nouvelles fonctionnalités, en vous aidant à gérer les risques tout en garantissant la cohérence de l'expérience utilisateur. Parmi les principaux avantages, on peut citer :
- Automatisation: élimine toute intervention manuelle pour les déploiements programmés.
- Cohérence: garantit que le même utilisateur reçoit la même valeur tout au long du déploiement.
- Sécurité: vous permet d'interrompre le déploiement à n'importe quelle étape si des problèmes sont détectés.
- Flexibilité: prend en charge les configurations de phases personnalisées ou les modèles prédéfinis.
- Prévisibilité: propose des mises à disposition de fonctionnalités planifiées et à dates fixes.
Le déploiement progressif n'est disponible que pour les utilisateurs du niveau Entreprise.
Avant de commencer
Avant de configurer le déploiement progressif, assurez-vous que :
- Vous avez une instance App Configuration Enterprise
- Vous disposez des autorisations IAM appropriées (rôle de gestionnaire ou de rédacteur)
- Vous avez créé un indicateur de fonctionnalité dans votre environnement
Contraintes de configuration
Le déploiement progressif a des contraintes et des exigences spécifiques que vous devez comprendre avant de procéder à la configuration.
Contraintes générales
Passez en revue les contraintes générales qui s'appliquent à toutes les configurations de déploiement progressif. Ces contraintes garantissent un fonctionnement correct et évitent les conflits avec d'autres fonctionnalités.
- Le niveau Entreprise est requis: Le déploiement progressif n'est disponible que pour les utilisateurs du niveau Entreprise.
- Un seul tirage par drapeau: Un seul déroulement progressif est autorisé par drapeau. Vous pouvez le configurer au niveau de l'indicateur ou au niveau de la règle, mais pas les deux en même temps.
- Une stratégie de diffusion active à la fois: Si une expérience est en cours sur un drapeau, vous ne pouvez pas créer un déploiement progressif. De même, si un déploiement progressif est en cours, vous ne pouvez pas lancer une expérience sur ce drapeau.
- Plage de pourcentage: Le pourcentage de déploiement doit être compris entre 1 % et 100 %.
Exigences de l'API par champ d'application
L'API que vous utilisez dépend de la portée de votre configuration de déploiement progressif. Sélectionnez l'API appropriée en fonction de l'endroit où vous configurez le déploiement.
- Déploiement progressif au niveau des dra peaux : utilisez l'API des drapeaux pour créer et mettre à jour le déploiement.
- Déploiement progressif au niveau des règles: utilisez l'API des règles pour créer et mettre à jour le déploiement.
- Arrêt d'un déploiement: utilisez les API d'arrêt de déploiement pour arrêter un déploiement progressif actif.
Exigences de configuration par champ d'application
Avant de configurer un déploiement progressif, assurez-vous que votre indicateur ou votre règle utilise des valeurs de déploiement explicites plutôt que des valeurs héritées. Cette exigence permet d'éviter les conflits et garantit que le déploiement progressif est entièrement maîtrisé.
- Pour le déploiement progressif au niveau de l'indicateur: aucune des règles de ciblage ne peut avoir une valeur
rolloutPercentagehéritée de l'indicateur. Toutes les règles de ciblage doivent utiliser des valeurs de rollout remplacées. - Pour le déploiement progressif au niveau des règles: la règle de ciblage dans laquelle vous ajoutez le déploiement ne peut pas utiliser une valeur héritée de l'indicateur. La règle doit avoir sa propre valeur explicite.
Opérations bloquées pendant le déploiement progressif
Lorsqu'un déploiement progressif est en cours d'exécution, certaines opérations sont bloquées afin de préserver l'intégrité du déploiement et d'éviter tout conflit.
- Création d'un autre déploiement progressif: Un seul déroulement progressif est autorisé par drapeau.
- Démarrage d'une expérience: Les expériences ne peuvent pas se dérouler sur des drapeaux qui ont déjà un déploiement progressif en cours.
- Suppression d'une collection: La suppression d'une collection est bloquée si un indicateur de fonctionnalité associé a un déploiement progressif en cours d'exécution.
- Mise à jour ou suppression d'un segment: Les mises à jour et les suppressions de segments sont bloquées si un indicateur de fonctionnalité associé a un déploiement progressif en cours d'exécution.
- Modification de la configuration de l'indicateur ou de la règle: Les mises à jour de l'indicateur ou de la règle de ciblage qui utilise le déploiement ne sont autorisées que lorsque le déploiement progressif n'est pas en cours.
Comportement au cours du cycle de vie
Comprendre le comportement tout au long du cycle de vie vous aide à gérer l'interaction entre les déploiements progressifs et les autres fonctionnalités. « App Configuration » assure une séparation stricte entre les stratégies de mise en production.
- Si une expérience est en cours, vous ne pouvez pas créer un déploiement progressif.
- Si un déploiement progressif est en cours, vous ne pouvez pas lancer une expérience sur le même drapeau.
- Pour arrêter un déploiement, vous devez utiliser les API dédiées à l'arrêt des déploiements.
Configuration du déploiement progressif
Vous pouvez configurer le déploiement progressif au niveau de l'indicateur ou au niveau de la règle de ciblage.
Configuration du déploiement progressif au niveau du drapeau
Pour configurer le déploiement progressif au niveau de l'indicateur :
- Dans la console App Configuration, accédez à Feature flags.
- Sélectionnez l'environnement contenant votre indicateur de caractéristiques.
- Cliquez sur l'indicateur de fonctionnalité que vous souhaitez configurer.
- Dans la section Déroulement des fonctionnalités, sélectionnez Progressif comme type de déroulement.
- Configurer les paramètres de déploiement :
- Durée prédéfinie: Choisissez parmi les modèles prédéfinis ( 1hr, 12hr, 24hr, 48hr ) ou sélectionnez Personnalisé
- Phases: Définir chaque phase avec un pourcentage et une durée
- Planifier plus tard (facultatif): Basculer cette option pour spécifier une heure de début en UTC pour le déploiement. Si cette option n'est pas activée, le déploiement commence immédiatement.
- Cliquez sur Sauvegarder.
Le déploiement progressif démarre automatiquement à l'heure de début configurée.
Configuration du déploiement progressif au niveau des règles
Pour configurer le déploiement progressif au niveau des règles de ciblage :
- Dans la console App Configuration, accédez à Feature flags.
- Sélectionnez l'environnement contenant votre indicateur de caractéristiques.
- Cliquez sur l'indicateur de fonctionnalité que vous souhaitez configurer.
- Dans la section « Ciblage », sélectionnez la règle que vous souhaitez configurer.
- Assurez-vous que la règle a une valeur prioritaire.
- Dans la section Déroulement de la règle, sélectionnez Progressif comme type de déroulement.
- Configurer les paramètres de déploiement :
- Durée prédéfinie: Choisissez parmi les modèles prédéfinis ( 1hr, 12hr, 24hr, 48hr ) ou sélectionnez Personnalisé
- Phases: Définir chaque phase avec un pourcentage et une durée
- Planifier plus tard (facultatif): Basculer cette option pour spécifier une heure de début en UTC pour le déploiement. Si cette option n'est pas activée, le déploiement commence immédiatement.
- Cliquez sur Sauvegarder.
Phases de déploiement progressif
Un déploiement progressif se compose de plusieurs phases, chacune définissant un pourcentage et une durée.
Configuration des phases
Définissez le pourcentage et la durée de chaque phase de votre déploiement progressif. Chaque phase comprend deux éléments clés qui déterminent le déroulement du déploiement.
Chaque phase comprend
- Pourcentage: Le pourcentage d'utilisateurs qui recevront la valeur activée (1-100%)
- Durée: Durée de la phase (par exemple, " 8h ", " 30m ", " 2d ")
La phase finale ne nécessite pas de durée, car elle représente l'état d'achèvement.
Exemples de phases
Examinez ces exemples de configurations de phases de déploiement progressif pour différents scénarios.
Exemple 1 : Mise en place progressive des 24 heures
{
"phases": [
{ "percentage": 5, "duration": "6h" },
{ "percentage": 25, "duration": "6h" },
{ "percentage": 50, "duration": "6h" },
{ "percentage": 100, "duration": "6h" }
]
}
Exemple 2 : Déploiement rapide en 1 heure
{
"phases": [
{ "percentage": 10, "duration": "15m" },
{ "percentage": 50, "duration": "15m" },
{ "percentage": 100, "duration": "30m" }
]
}
Exemple 3 : Déploiement conservateur de 48 heures
{
"phases": [
{ "percentage": 5, "duration": "12h" },
{ "percentage": 10, "duration": "12h" },
{ "percentage": 25, "duration": "12h" },
{ "percentage": 100, "duration": "12h" }
]
}
Modèles de déploiement prédéfinis
App Configuration fournit des modèles prédéfinis pour les scénarios de déploiement les plus courants :
| Modèle | Durée | Phases |
|---|---|---|
| 1hr | 1 heure | 10% ( 15m ), 50% ( 15m ), 100% ( 30m ) |
| 12hr | 12 heures | 5% ( 3h ), 25% ( 3h ), 50% ( 3h ), 100% ( 3h ) |
| 24hr | 24 heures | 5% ( 6h ), 25% ( 6h ), 50% ( 6h ), 100% ( 6h ) |
| 48hr | 48 heures | 5% ( 12h ), 10% ( 12h ), 25% ( 12h ), 100% ( 12h ) |
Arrêter un déploiement progressif
Lorsque vous interrompez un déploiement progressif, App Configuration effectue plusieurs opérations de nettoyage afin de revenir au mode de déploiement manuel.
- La configuration de déploiement a été supprimée.
- Le pourcentage de déploiement est actualisé au pourcentage spécifié
- Le type de déploiement revient au déploiement manuel
- Les utilisateurs qui recevaient la valeur activée continuent de la recevoir sur la base du pourcentage arrêté
Vous pouvez arrêter un déploiement progressif à n'importe quelle phase si des problèmes sont détectés. Utilisez l'API appropriée en fonction de la portée de la configuration du déploiement.
- Interrompre un déploiement progressif au niveau d'un indicateur de fonctionnalité: pour interrompre un déploiement progressif configuré au niveau d'un indicateur de fonctionnalité, utilisez l'API d'interruption de déploiement pour les indicateurs de fonctionnalité.
- Interrompre un déploiement progressif au niveau d'une règle: pour interrompre un déploiement progressif configuré au niveau d'une règle de ciblage, utilisez l'API d'interruption du déploiement pour les règles.
Achèvement progressif du déploiement
Lorsqu'un déploiement progressif atteint sa phase finale, App Configuration effectue automatiquement un nettoyage et repasse en mode de déploiement manuel.
- La configuration de déploiement est automatiquement supprimée.
- Le pourcentage de déploiement est mis à jour pour correspondre au pourcentage de la phase finale (généralement 100 %).
- Le mode de déploiement revient au déploiement manuel.
- Tous les utilisateurs reçoivent la valeur activée.
Cohérence et randomisation des utilisateurs
Le déploiement progressif garantit une expérience utilisateur cohérente grâce à une stratégie de randomisation à deux niveaux qui assure un comportement prévisible au sein d'un même cycle de déploiement tout en offrant une certaine flexibilité entre les différents cycles de déploiement.
Dans le cadre d'un déploiement
Au cours d'un déploiement progressif unique, « App Configuration » maintient des affectations cohérentes pour chaque utilisateur afin de garantir une expérience stable tout au long des différentes phases.
- La randomisation est déterministe, selon
entity_id. - La même
entity_idse voit toujours attribuer la même tâche. - Les utilisateurs qui reçoivent la valeur « activée » lors de la phase 1 continuent de la recevoir lors des phases suivantes.
- De nouveaux utilisateurs sont ajoutés à mesure que ce pourcentage augmente.
Dans l'ensemble des déploiements
Lorsque vous lancez un nouveau déploiement progressif sur le même indicateur, App Configuration génère une nouvelle distribution afin de permettre différents modèles d'exposition des utilisateurs.
- Une nouvelle distribution aléatoire est générée.
- Un même «
entity_id» peut se voir attribuer une mission différente. - Cela permet de faire bénéficier différents groupes d'utilisateurs de cycles de déploiement distincts.
Suivi des déploiements progressifs
Surveillez vos déploiements progressifs afin de vous assurer qu’ils se déroulent comme prévu et d’identifier rapidement tout problème susceptible de survenir au cours du processus de déploiement.
- Vue du tableau de bord: le tableau de bord « App Configuration » affiche l'état actuel et la phase des déploiements progressifs en cours.
- Indicateurs d'état:
QUEUED: Le déploiement est prévu, mais n'a pas encore commencé.RUNNING: Le déploiement se poursuit activement, étape par étape.
- Suivi des activités: utilisez Activity Tracker pour suivre les événements de déploiement et les transitions entre les phases.
Meilleures pratiques
Le respect des bonnes pratiques énumérées ici permet de garantir le succès des déploiements progressifs et de minimiser les risques pour vos utilisateurs et vos applications.
- Commencez modestement: commencez par un faible pourcentage (5 à 10 %) afin de minimiser les risques.
- Suivi des indicateurs: assurez un suivi continu des indicateurs de l'application au cours de chaque phase.
- Tenez compte des fuseaux horaires: prenez en considération les fuseaux horaires de vos utilisateurs lorsque vous fixez l'heure de début.
- Configurations de test: testez d'abord votre configuration de déploiement dans un environnement hors production.
- Plans de déploiement de la documentation: conservez la documentation relative à votre stratégie de déploiement et à ses différentes phases.
- Préparer des plans de retour en arrière: prévoir un plan permettant d'interrompre le déploiement si des problèmes sont détectés.
- Prévoyez des durées adaptées: accordez suffisamment de temps à chaque phase pour recueillir des données pertinentes.
Référence d'interface de programme d'application
Le déploiement progressif peut être configuré à l'aide de l'API App Configuration. Reportez-vous à la documentation de l'API pour plus d'informations.