Par Maxime Jumelle
CTO & Co-Founder
Publié le 13 nov. 2023
Catégorie Cloud / 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.
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.
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
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.
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.
Parmi les nombreux avantages du déploiement Blue/Green, on compte :
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.
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.
Vous souhaitez vous former au Cloud / DevOps ?
Articles similaires
28 févr. 2024
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
CTO & Co-Founder
Lire l'article
23 févr. 2024
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
CTO & Co-Founder
Lire l'article
16 févr. 2024
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
CTO & Co-Founder
Lire l'article
60 rue François 1er
75008 Paris
Blent est une plateforme 100% en ligne pour se former aux métiers Tech & Data.
Organisme de formation n°11755985075.
Data Engineering
IA Générative
MLOps
Cloud & DevOps
À propos
Gestion des cookies
© 2024 Blent.ai | Tous droits réservés