Blue/Green DevOps : Une philosophie de travail indispensable ?

-
4
 m de lecture
-

Avec le développement de la culture DevOps, de nouveaux concepts émergent. C’est notamment le cas du déploiement bleu/vert qui est pleinement associé à cette philosophie de travail. Alors qu’est-ce que le Blue/Green DevOps ? Quels sont les avantages ? Et les enjeux ? Comment utiliser ce pattern ? Les réponses sont ici.

Qu’est-ce que le Blue/Green DevOps ?

Le Blue/Green deployment et la culture DevOps

Le Blue/Green deployment est apparu en 2010 à travers le livre « Continuous Delivery » de Jez Humble et David Farley. Autrement dit, peu de temps après l’apparition et la démocratisation du concept DevOps.

Et pour cause, ce pattern de déploiement est pleinement associé à la culture DevOps.

Pour cette philosophie de travail, l’objectif est de déployer une solution logicielle de qualité rapidement. Et tout cela, sans interrompre les services.

Mais pour atteindre cet objectif d’amélioration continue, les DevOps ont besoin d’un environnement de production optimal. C’est à cet instant qu’intervient le Blue/Green Deployment.

Un concept au service des DevOps

Lorsque les développeurs conçoivent la nouvelle version d’une application, ils doivent avoir un outil de routage capable de passer d’un environnement à l’autre (que ce soit au niveau des serveurs web, des plateformes microservice ou des bases de données).

Pour cela, un environnement Green est dupliqué par rapport à la version initiale. Dans le même temps, les développeurs sont orientés vers un environnement Blue qui leur permet de travailler sur la nouvelle version en toute transparence. C’est la version N.

Une fois que les améliorations sont vérifiées et validées, il est possible de les implémenter dans l’environnement Green. C’est la version N+1.

Ces deux versions sont exécutées en même temps au sein de l’environnement de production afin de favoriser le déploiement continu et de limiter les interruptions. On parle d’ailleurs du Zero Downtime Deployment (ZDD).

Bon à savoir : ce n’est pas parce que le transfert est achevé que la version N est amenée à disparaître. En effet, il est possible de la conserver (notamment en prévision d’une future restauration ou de mises à jour ultérieures) ou de la retirer définitivement.

Quels sont les avantages du Blue/Green DevOps ?

Le Blue/Green deployment présente une multitude d’avantages pour les utilisateurs :

  • La rapidité du déploiement : le Blue/Green permet de lancer un logiciel à tout moment (ou presque). En effet, un simple changement de routage suffit pour que le logiciel soit mis en production.
  • L’amélioration de l’expérience utilisateur : l’utilisation de déploiement Blue/Green permet de publier des modifications de manière très rapide et régulière. Ce faisant, les utilisateurs ont toujours accès aux dernières mises à jour. Et ce, sans interruption du service.
  • L’AB testing : ces techniques de Blue/Green DevOps permettent également de mener des tests A/B. Dans ce cas, il suffit d’orienter 50 % d’utilisateurs sur le Green et 50 % sur le Blue. Ensuite, vous pouvez apporter des modifications différentes sur chaque environnement. À la fin du test, les DevOps identifient facilement les modifications les plus efficaces.

Quels sont les enjeux du Blue/Green deployment ?

Si le Blue/Green deployment permet au DevOps de simplifier leur travail, l’utilisation de ce pattern présente toutefois une multitude d’enjeux.

Les sessions utilisateurs

Il s’agit de faire passer l’utilisateur d’un environnement à l’autre, sans qu’il ne soit déconnecté. Pour cela, il est possible de placer la session dans un cookie ou encore de faire appel à un dépôt indépendant.

Ces deux techniques permettent alors de changer d’environnement instantanément, sans même que l’utilisateur ne s’en rende compte.

L’absence de ressources

Si le déploiement Blue/Green est bien connu dans le monde des DevOps, encore trop peu d’entreprises utilisent cette méthode de déploiement continu. Et pour cause, certaines ne disposent pas des ressources suffisantes en interne pour mener à bien les processus CI/CD.

À l’heure actuelle, le Blue/Green DevOps n’est donc pas encore généralisé. Cela dit, au fur et à mesure que les organisations se numérisent, les applications évoluent. Ce qui leur permet de prendre en charge la distribution continue.

Les bases de données pour le Blue/Green deployment

Au-delà des sessions utilisateurs, le Blue/Green deployment pose quelques problèmes en termes de gestion des bases de données. En effet, pour que cette technique fonctionne, il est primordial d’appliquer les transactions commencées dans la base de données SQL d’un environnement vers l’autre. Mais comment faire ? Cela dépend du type de base de données.

  • Les data base indépendante : dans ce cadre, il n’est pas nécessaire de synchroniser la base de données Blue et la base de données Green. Il n’y a donc pas de rupture de service. Cependant, ces database indépendantes impliquent un changement de modèle. Pour éviter cette situation, il est possible de faire appel à des bases de données noSQL ou de séparer les bases de données par rapport aux deux environnements.
  • Les bases de données insérées dans le déploiement bleu/vert : ici, il n’y a plus de problème de changement de modèle. En revanche, il est primordial de synchroniser les bases de données dans les deux sens. Ce modèle est beaucoup plus complexe à mettre en œuvre. Mais c’est celui qui limite au maximum le risque d’erreur.

Comment utiliser le Blue/Green DevOps ?

Les tests A/B

Il s’agit d’un pattern utilisé pour le déploiement Blue/Green. Dans ce cadre, vous sélectionnez une petite tranche de la population qui utilise la version N, et une autre utilise la version N+1. Le fait de séparer les deux permet de tester les fonctionnalités et de s’assurer qu’il n’y a pas d’erreur.

Cette méthode est particulièrement efficace, et elle est notamment utilisée par Facebook lorsqu’elle prévoit de lancer de nouvelles fonctionnalités. Ainsi, avant le lancement, un premier déploiement est lancé auprès des employés de l’entreprise. Ces derniers sont alors chargés de tester la nouvelle version de l’application.

Le déploiement progressif

Ici, il s’agit surtout d’un passage progressif d’un environnement à l’autre. Ainsi, les fonctionnalités améliorées dans la version N ne sont pas toutes implémentées en même temps dans la version N+1, mais de manière progressive. Ce qui permet de détecter d’éventuelles erreurs sur chaque fonctionnalité une par une.

C’est utile si vous apportez de nombreuses modifications à vos solutions logicielles.

Les outils

Pour le déploiement Blue/Green, les DevOps auront besoin d’outils performants.

C’est par exemple le cas d’HAProxy qui facilite le passage de routage entre le Blue et le Green. Sans oublier la plateforme Openshift de Red Hat qui automatise l’exploitation des conteneurs et qui intègre des fonctionnalités CI/CD. Ou encore F5 pour l’équilibrage de charge et la consolidation des services natifs.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?