Déploiement bleu-vert et Drupal - Que savez-vous vraiment ?
Publié: 2019-07-23Blue Green Deployment est l'un des piliers des stratégies de déploiement qui surmontent les limites de l'approche traditionnelle du déploiement d'applications. Que savez-vous du déploiement Blue Green ? Comment le déploiement Blue Green dans Drupal est-il implémenté ?
Oui, tu l'as bien lu. Devoir mettre votre application hors ligne pour les mises à jour ou lors du lancement d'une version plus récente est une tâche ardue et une vraie douleur. Il est vrai que vous pouvez atténuer cela avec des temps d'arrêt programmés, mais ce n'est pas quelque chose qui rendra les clients heureux. Certains sites perdent des milliers de dollars chaque minute où ils sont en panne ! Le déploiement ou la mise à niveau de votre application devraient-ils être la véritable raison de votre perte ?
Découvrez pourquoi le déploiement bleu-vert est la meilleure stratégie pour réduire les temps d'arrêt et atténuer les autres risques liés au déploiement d'applications. Découvrez-en plus sur le déploiement bleu-vert et Drupal.
Qu'est-ce que le déploiement bleu-vert ?
Le déploiement bleu-vert est une technique permettant de libérer des applications en déplaçant ou en déplaçant le trafic entre deux environnements identiques exécutant deux versions différentes d'une application.
En bref, il existe une version d'une application, appelons-la "version bleue" en production. Et puis, il y a un routeur qui est utilisé pour acheminer le trafic vers l'application. Maintenant, vous avez besoin d'une autre version. la "version verte" avec quelques goodies supplémentaires, à déployer. Cependant, vous voulez également vous assurer que pendant ce déploiement, un utilisateur peut toujours regarder votre application, appuyer sur un bouton ou faire ce qu'il veut, sans que votre application ne tombe en panne ! Plus comme déployer secrètement la "version verte" tandis que la "version bleue" gère tout le trafic entre-temps, avant de finalement échanger les connexions.

Avec des capacités de libération et de restauration quasi nulles, l'idée fondamentale du déploiement bleu-vert est de déplacer le trafic entre deux environnements identiques qui exécutent deux versions différentes de l'application. Alors que la version actuelle de l'application est représentée par l'environnement bleu, la version verte est mise en scène avec une version différente.
Pourquoi un déploiement bleu-vert ?
L'un des principaux défis liés à l'automatisation du processus de déploiement est le basculement lui-même, c'est-à-dire le passage de l'application de la phase finale de test à la phase de production. Et cela doit être pris en charge rapidement afin de minimiser toute sorte de temps d'arrêt. C'est exactement ce que fait le déploiement bleu-vert. Avec deux environnements de production (de nature aussi identique que possible), à un instant donné, l'un d'eux est en direct. Et pendant que vous vous préparez pour une nouvelle version, vous effectuez tous vos tests sur l'autre environnement qui n'est pas en direct. Une fois que vous êtes prêt à rouler, tout ce que vous avez à faire est de changer le routeur pour que tout votre trafic soit dirigé vers votre dernière version et que l'autre environnement devienne inactif.
De plus, le déploiement bleu-vert fournit l'une des fonctionnalités les plus importantes, une restauration rapide. Supposons que si quelque chose ne va pas avec votre dernière version, il vous suffit de réactiver le routeur. Bien qu'il puisse toujours y avoir un problème avec les transactions perdues lorsque l'environnement défectueux était actif, vous pouvez également le concevoir de manière à ce que vos deux environnements soient alimentés par les transactions et que l'un agisse comme une sauvegarde pour l'autre.
Comment Déploiement Bleu-Vert ?
Maintenant que nous connaissons les deux environnements de déploiement bleu-vert, examinons quelques-unes des meilleures pratiques pour les mettre en œuvre.
Équilibrage de charge via la commutation DNS
Gardez à l'esprit que lors du changement d'environnement, faites en sorte que votre domaine pointe éventuellement vers différents serveurs. Au lieu d'accéder aux enregistrements DNS et d'apporter des modifications à l'interface de gestion DNS, utilisez l'équilibrage de charge.
Le problème lié à la modification des enregistrements DNS entraînera simplement une longue traînée de trafic. Cela signifie que même si certains de vos utilisateurs seront toujours desservis par l'ancien environnement, vous n'aurez même pas un contrôle total sur la destination de votre trafic.
Cependant, les équilibreurs de charge vous permettront de configurer vos nouveaux serveurs immédiatement et vous n'aurez pas à dépendre du mécanisme DNS. De cette façon, vous aurez un contrôle total sur le trafic et vous pouvez être absolument sûr que tout le trafic est acheminé vers le nouvel environnement.
Mise à jour continue
NE PAS basculer tous vos serveurs à la fois. Exécutez plutôt une mise à jour progressive. C'est-à-dire qu'au lieu de passer d'un seul coup aux serveurs verts des serveurs bleus, travaillez avec un environnement intégré. Ajoutez un nouveau serveur, retirez un ancien. Répétez jusqu'à ce que chaque nouveau serveur soit en place. Cela réduira considérablement vos temps d'arrêt !
Surveillance de l'environnement
Bien que la surveillance de l'environnement en direct soit évidente, vous ne voulez pas être pris au dépourvu en ne surveillant pas l'autre environnement. Oui, la surveillance de l'autre environnement est moins critique. Cependant, étant donné que le même environnement peut agir comme les deux états, vous aurez besoin d'un moyen plus simple de basculer l'alerte entre les deux. Configurez différents jetons d'API pour les deux environnements de rapport, ou modifiez par programme la politique d'alerte sur l'environnement lorsque son rôle est modifié/basculé.

Automatisation
Un ensemble d'actions manuelles ne fera qu'augmenter votre travail. Au lieu de cela, écrivez chaque action dans le processus de commutation. L'automatisation du processus de changement se traduira par une mise en œuvre plus rapide, plus facile et plus sûre du déploiement bleu-vert.
Déploiement bleu vert pour les sites Web Drupal
Problèmes
- Lors des déploiements de code, Drupal doit exécuter des mises à jour de la base de données pour fonctionner et c'est un problème majeur car les mises à jour Drupal mettent le site Web en mode maintenance et vos utilisateurs sont accueillis avec ce bel écran blanc.

Si le déploiement échoue, une annulation n'est possible qu'en restaurant la base de données à partir du vidage, étant donné que le schéma de la base de données peut avoir été modifié. Cela signifie un temps d'arrêt !
Solution : Déploiement bleu vert !
Examinons une partie de l'aperçu de l'infrastructure pour implémenter le déploiement Blue Green avec Drupal. Tout type d'opérations dans Drupal nécessite Nginx et un serveur php (pour exécuter principalement Drupal), nous avons besoin d'une base de données, d'un stockage de fichiers, d'un cache et la pile est conçue de manière à être hautement disponible.
Avec Blue Green Deployment, vous devez déployer une nouvelle pile avec une nouvelle base de code et copier toute votre base de données et les différents états de la base de code précédente, de préférence en utilisant Drush.

Une fois les deux piles différentes configurées, la pile intermédiaire doit être testée indépendamment de la pile de production. Fondamentalement, vous avez besoin que vos utilisateurs accèdent à la pile (pile de production) et testent la version du site Web qui est déployée. Et lorsque l'autre version (la pile intermédiaire) est prête, il vous suffit de retourner les versions. Maintenant, les utilisateurs sont dirigés vers la nouvelle pile et l'ancienne version est disponible pour les tests.
Déploiement bleu vert avec Docker
Les déploiements dans Drupal ne sont pas faciles. Alors que vous devez vous assurer que le code est déployé, que les dépendances du composeur sont gérées, que les mises à jour du schéma sont à jour et que tous les caches sont effacés, vous devez également vous assurer que le "site Web réactif" est opérationnel. Et que se passe-t-il s'il y a un problème et que le déploiement échoue ? Faites-vous un retour en arrière ? Ou arrêter le déploiement ?
La phrase que vous recherchez est Blue Green Deployment
Pendant le déploiement de Drupal, Docker garantit un passage facile entre les applications et facilite la création et l'exécution de différentes versions de celles-ci. Sur l'instance EC2, il y a toujours un ensemble de conteneurs docker surélevés bleu et vert, et nginx fonctionne comme un serveur proxy inverse. Le déploiement bleu vert avec Docker permet à un utilisateur de créer un site Web Drupal qui s'exécute en parallèle dans les deux environnements différents.
Déploiement bleu vert avec AWS
Alors qu'historiquement, le déploiement bleu vert n'était pas le premier choix pour déployer des logiciels sur site en raison de son coût élevé et de la complexité, les conteneurs ont changé cette perception pour de bon.
Les conteneurs facilitent l'adoption du déploiement bleu-vert en raison de leur package simple et de leur comportement cohérent lorsqu'ils basculent entre les environnements. Et pour changer la configuration d'un conteneur, il suffit de mettre à jour son fichier docker et de reconstruire et redéployer le conteneur en place plutôt que de mettre à jour le logiciel.
Amazon ECS effectue ces mises à jour progressives lorsque vous mettez à jour un service Amazon ECS existant. La mise à jour progressive pour le déploiement ecs bleu-vert implique le remplacement de la version existante du conteneur par la dernière. Ce nombre de conteneurs qu'Amazon ECS ajoute ou supprime pendant la mise à jour est contrôlé en ajustant le nombre maximum et minimum de tâches saines autorisées pendant les déploiements de service. Amazon ECS commence automatiquement à remplacer l'ancienne version du conteneur par la dernière.

Le déploiement bleu vert avec AWS ECS offrira également des avantages d'optimisation puisque vous n'êtes pas lié au même ensemble de ressources. C'est-à-dire que lorsque l'enveloppe de performances de l'application change d'une version à l'autre, vous lancez simplement le nouvel environnement avec les ressources optimisées (peut être moins nombreuses ou un ensemble de ressources complètement différent).
Le déploiement bleu vert dans AWS s'intègre également bien aux workflows d'intégration et de déploiement continus, en surveillant leur complexité en permettant à l'automatisation du déploiement de prendre en compte moins de dépendances sur un environnement existant.
Cette solution permet aux utilisateurs de gérer facilement le déploiement et l'évolutivité des plateformes Web sans perdre de temps. Ce déploiement aide à configurer un environnement à haute disponibilité qui exécutera un site Web Drupal sans aucun problème.
