Qu’est-ce que la Livraison Progressive  (Progressive Delivery) ?

La livraison progressive, également appelée déploiement progressif ou déploiement par phases, est une pratique de développement logiciel qui permet de déployer progressivement de nouvelles fonctionnalités auprès des utilisateurs. Cette méthode vise à limiter l’impact sur les utilisateurs finaux et à recueillir des retours d’information en vue d’améliorer le produit.

La livraison progressive s’appuie sur le concept de livraison continue et inclut des stratégies de déploiement telles que les tests A/B, le déploiement en anneaux et le déploiement canari.

Comment effectuer une livraison progressive ?

La livraison progressive consiste à déployer vos fonctionnalités auprès d’un petit groupe d’utilisateurs, généralement les plus pertinents, capables de fournir des retours constructifs, à travers des déploiements par phases.

Cela permet à votre équipe de s’appuyer sur ces retours pour optimiser la version, identifier et corriger les bogues avant de déployer la fonctionnalité auprès du reste des utilisateurs.

En utilisant des feature flags, vous pouvez contrôler quels utilisateurs ont accès à vos nouvelles fonctionnalités en activant ou désactivant ces dernières, ce qui limite leur impact sur l’ensemble des utilisateurs.

Il existe plusieurs façons de mettre en œuvre des déploiements progressifs, toutes regroupées sous le concept de livraison progressive :

  • Déploiement canari : une petite partie des utilisateurs accède à votre fonctionnalité. Ces utilisateurs, ayant des caractéristiques similaires, fournissent des retours utiles pour améliorer le produit.
  • Lancement silencieux (dark launch) : la fonctionnalité est déployée progressivement sans être explicitement signalée aux utilisateurs, permettant des tests discrets.
  • Déploiements en anneaux (ring deployments) : les utilisateurs sont divisés en groupes ou “anneaux”, chaque groupe recevant progressivement la fonctionnalité. Par exemple, le déploiement peut commencer avec des utilisateurs internes, et une fois la fonctionnalité testée, être étendu au groupe suivant.

Vous pouvez également envisager un déploiement blue-green, où deux environnements de production identiques coexistent : l’un actif, l’autre inactif. Une fois les modifications terminées, elles sont déployées dans le second environnement. Un routeur dirige ensuite le trafic vers l’environnement actif pour tester les changements auprès d’un sous-ensemble d’utilisateurs, tandis que le premier environnement reste inactif.

Une alternative au déploiement blue-green est l’utilisation de feature flags, qui permettent des déploiements ciblés sans nécessiter deux environnements de production.

Enfin, la livraison progressive favorise l’expérimentation, par exemple grâce aux tests A/B, qui permettent de tester différentes variations d’une fonctionnalité pour déterminer celle ayant le meilleur impact sur les utilisateurs sélectionnés. Une fois l’expérience terminée, la variation choisie peut être déployée plus largement.

Les avantages de la livraison progressive

De nos jours, la pression pour publier rapidement des logiciels est plus forte que jamais. Travailler sous de telles contraintes peut entraîner des bogues, avec des conséquences désastreuses pour votre réputation auprès des utilisateurs.

C’est là que réside la véritable valeur de la livraison progressive : elle permet aux développeurs de publier des fonctionnalités beaucoup plus fréquemment et en petits lots. Les utilisateurs peuvent ainsi bénéficier de nouvelles fonctionnalités de haute qualité plus rapidement, tout en permettant un retour en arrière rapide en cas de problème.

Comme il est impossible de détecter tous les bogues avant une publication, certains ne deviennent visibles qu’une fois qu’ils affectent des utilisateurs réels. Avec la livraison progressive, ces bogues n’affectent qu’un faible pourcentage d’utilisateurs.

Elle offre également l’opportunité de voir comment une nouvelle variation de la fonctionnalité se comporte : améliore-t-elle l’expérience utilisateur ? Les équipes peuvent ainsi déterminer quelle variation fonctionne le mieux avant un déploiement général.

La livraison progressive fournit également une méthode moins risquée pour pratiquer l’intégration continue (CI) et la livraison continue (CD) en réduisant les risques liés au déploiement continu de code en production. Les modifications inachevées peuvent être désactivées grâce aux feature flags.

Ainsi, avec les feature flags, la livraison progressive améliore considérablement un pipeline CI/CD en permettant des déploiements sûrs à une petite base d’utilisateurs et des retours en arrière rapides en cas de problème en production.

Conclusion

La livraison progressive facilite des publications rapides. Les étapes nécessaires à sa mise en œuvre sont simples : avec une planification minutieuse et les bons outils, vous pouvez garantir des publications futures plus rapides et sans risque. Surtout, les déploiements par phases vous donnent un contrôle total sur le processus de déploiement des fonctionnalités.

Un système de gestion des fonctionnalités, tel que la solution côté serveur d’AB Tasty, vous permet de segmenter votre base d’utilisateurs en attribuant des valeurs de drapeaux spécifiques à différents segments. De cette manière, vous pouvez progressivement publier des fonctionnalités auprès de groupes cibles, aboutissant à des publications plus stables et de meilleure qualité.

Boostez votre croissance
avec ABTasty

Obtenez une démo personnalisée de la plateforme

Demander une démo