Réduire les risques grâce au déploiement bleu-vert

Cette page explique comment déployer une nouvelle version de votre application et migrer le trafic de l'ancienne à la nouvelle version.

Déployer l'application initiale

Utilisez la CLI Kf pour déployer la version initiale de l'application en lui associant une route :

$ kf push app-v1 --route my-app.my-space.example.com

Transférer la nouvelle version de l'application

Utilisez la CLI Kf pour transférer la nouvelle version de l'application sans définir de route :

$ kf push app-v2 --no-route

Ajouter des routes à la nouvelle version de l'application

Utilisez la CLI Kf pour associer toutes les routes existantes à la nouvelle version de l'application. Spécifiez une pondération de 0 afin que ces routes ne reçoivent aucun trafic.

$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 0

Basculer le trafic

Commencez à faire passer le trafic de l'ancienne à la nouvelle version de l'application en modifiant les pondérations définies au niveau des routes.

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 80
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 20

Si le déploiement se déroule correctement, vous pouvez continuer à basculer le trafic en modifiant à nouveau les pondérations :

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 50
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 50

Basculer complètement le trafic

Une fois que vous êtes certain que le nouveau service n'a pas introduit de régression, terminez le déploiement en basculant tout le trafic vers la nouvelle instance :

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 0
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 100

Désactiver l'application d'origine

Une fois que vous êtes certain qu'un rollback rapide ne sera pas nécessaire, supprimez la route d'origine, puis arrêtez l'application :

$ kf unmap-route app-v1 myspace.example.com --hostname my-app
$ kf stop app-v1

Ou bien, supprimez l'application d'origine ainsi que tous les mappages de routage associés :

$ kf delete app-v1