← Retourner à la liste des articles
Image blog
Auteur

Par Maxime Jumelle

CTO & Co-Founder

Publié le 13 nov. 2023

Catégorie Cloud / DevOps

Blue/Green DevOps : tout savoir du déploiement DevOps

Avec l'approche DevOps, les entreprises doivent être de plus en plus agiles et réactives pour pouvoir se distinguer en terme de concurrence et répondre aux besoins évolutifs des clients ou utilisateurs. Ainsi, elles doivent être en capacité de déployer constamment de nouvelles versions d'applications avec des méthodes de déploiement continu. Ce processus automatisé permet aux équipes de développement de mettre à jour les applications en corrigeant des bugs, ajoutant des fonctionnalités et apportant une sécurité la plus à jour possible.

Cependant, le déploiement continu n'est pas toujours facile à mettre en place. En effet, une mise en production ratée ou à la hâte peut être synonyme d'interruption de services, ce qui affecte fortement l'expérience utilisateur, et constitue une des pires possibilités pour les entreprises dont le modèle économique est surtout basé sur la vente de services par le biais d'applications (par exemple, les plateformes SaaS). Pour minimiser ce risque, des stratégies de déploiement innovantes ont été conçues, comme le déploiement Blue/Green, qui en constitue l'une des plus populaires.

Source : Torvo

Blue/Green DevOps : définition et exemples

En introduisant une nouvelle version de l'application à côté de la version stable actuelle (production), le déploiement Blue/Green vise à réduire les temps d'arrêt et les risques associés. En réalité, il existe deux environnements distincts mais identiques : le Bleu (version actuelle) et le Vert (nouvelle version). Au moment du déploiement, le trafic est transféré de l'environnement bleu à l'environnement vert, généralement grâce à une modification de la configuration du balancement de charge. On peut rapidement retourner à l'environnement bleu si un problème survient dans l'environnement vert.

Source : Semaphore CI

Prenons un exemple concret : considérons un service de E-Commerce en ligne qui utilise un déploiement Blue/Green. Lors d'un événement de vente majeur, l'équipe de DevOps peut préparer une mise à jour avec des fonctionnalités améliorées et des performances optimisées dans l'environnement Green alors que le site fonctionne normalement dans l'environnement Blue. Une fois que tout est prêt et testé dans le Green, la transition peut être effectuée sans interruption perceptible du service pour les utilisateurs.


À découvrir : notre formation DevOps Engineer


Applications pratiques du déploiement Blue/Green

La haute disponibilité est essentielle dans les services financiers. Lors de l'introduction d'un nouveau système de gestion des transactions, une institution financière pourrait utiliser le déploiement Blue/Green. Avant de renvoyer le trafic des clients de l'ancien système, elle peut utiliser Blue/Green pour s'assurer que le nouveau système est pleinement opérationnel et sécurisé.

Un autre exemple est que les créateurs d'applications mobiles peuvent également bénéficier du déploiement Blue/Green lors de la mise en ligne de leurs nouvelles versions. Avant de diffuser la mise à jour dans les magasins d'applications, ils peuvent la tester entièrement dans l'environnement vert pour s'assurer qu'il n'y a pas de régression ou de nouveaux bugs.

Mise en place d'un environnement Blue/Green

Pour mettre en place un déploiement Blue/Green, une organisation doit avoir deux environnements de production fonctionnant simultanément. En général, cela nécessite une duplication de l'infrastructure, qui comprend des serveurs (ou des instances dans un contexte cloud), des bases de données et tous les autres services essentiels. Pour éviter les écarts de comportement entre les deux environnements, ils doivent être identiques.

Il est également essentiel de mettre en place un système de transition efficace. Cela peut être accompli à l'aide de balanceurs de charge ou de services DNS à propagation rapide. Pour s'assurer que tout changement dans un environnement est reflété dans l'autre, les données et tout état partagé entre les environnements doivent être gérés avec soin.

Source : GoCD

Avantages du déploiement Blue/Green

Parmi les nombreux avantages du déploiement Blue/Green, on compte :

  • Réduction des temps d'arrêt: en transférant le trafic entre les environnements sans arrêter les services, les utilisateurs ne ressentent pas d'interruption.
  • Rollback rapide: si le nouveau déploiement provoque des bugs ou des problèmes de performance, un rollback est possible en basculant simplement le trafic vers l'environnement Blue original.
  • Possibilité de tests en production: le nouvel environnement peut être utilisé pour tester la nouvelle version en conditions réelles avant le basculement complet.
  • Diminution du stress associé au déploiement: en sachant qu'il est possible de revenir facilement en arrière, les équipes sont moins réticentes à lancer de nouvelles versions.

Méthodes de déploiement alternatives

Alors que le déploiement Blue/Green est un choix populaire, il existe d'autres méthodes qui peuvent mieux convenir à certains scénarios.

Canary Releases : cette méthode consiste à déployer la nouvelle version à un petit pourcentage d'utilisateurs avant de la déployer progressivement à tout le monde. Cela permet de tester la nouvelle version en conditions réelles et de minimiser l'impact des éventuels problèmes. Rolling Updates : L'approche des mises à jour progressives remplace les serveurs un par un, minimisant la redondance de l'infrastructure mais aussi la possibilité d'un rollback rapide si nécessaire. Dans certaines plateformes comme Kubernetes, il s'agit du comportement par défaut lorsque des mises à jour sont appliqués sur un ReplicaSet.


À lire : découvrez notre formation DevOps Engineer


Chaque stratégie a ses avantages et inconvénients, et le choix dépend de nombreux facteurs comme le coût, la complexité de l'infrastructure, les ressources disponibles, et tolérance au risque de l'organisation.

Conclusion

Une stratégie de déploiement Blue/Green permet aux organisations de mettre en place des modifications logicielles avec un risque minime et une interruption presque zéro. Il existe des obstacles à cette méthode, en particulier en termes de dépenses et de la nécessité de maintenir deux environnements de production distincts. Cependant, de nombreuses entreprises cherchant à optimiser leurs pratiques de déploiement continu optent pour le déploiement Blue/Green en raison de ses avantages, tels que le déploiement fiable et sécure, le rollback rapide et les tests en conditions réelles.

Les mises à jour Canary ou Rolling offrent également des avantages importants et peuvent être plus adaptées à certains contextes. Une entreprise doit évaluer les avantages et les inconvénients de chaque méthode en fonction de ses propres besoins et objectifs. Le déploiement Blue/Green reste une méthode éprouvée et fiable dans l'environnement DevOps en constante évolution, contribuant à une mise sur le marché plus rapide et plus sûre des applications et des mises à jour.

Articles similaires

Blog

28 févr. 2024

Cloud / DevOps

Pour de nombreuses entreprises, innover chaque jour en proposant des applications à ses utilisateurs est un sujet primordial. Pour autant, cette course au déploiement continu de nouvelles applications nécessite des compétences bien particulières sur les architectures Cloud, l'automatisation de projets et la supervision. C'est à partir de ce moment qu'intervient le rôle de l'ingénieur DevOps dans les entreprises.

Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

23 févr. 2024

Cloud / DevOps

Dans le monde du DevOps, les conteneurs sont rapidement devenus des incontournables, aussi important que les machines virtuelles. Des plateformes de conteneurisation comme Docker ont permis de simplifier et d'accélérer la création d'image et l'exécution de conteneurs sur différents systèmes, à portée de tous.

Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

16 févr. 2024

Cloud / DevOps

Dans l'approche GitOps, il existe de nombreux outils permettant d'exécuter des pipelines CI/CD : certains se concentrent uniquement sur la partie intégration continue, d'autres avec le déploiement en plus. S'il y en a un qui est considéré comme l'un des plus matures et des plus robustes, c'est bien GitLab.

Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article