Astuces
2 min de lecture 306 vues

C'est quoi un Zero Downtime Deployments

fabriceyopa

Fabrice Yopa

@fabriceyopa

C'est quoi un Zero Downtime Deployments

C'est quoi le "Zero Downtime Deployment"?

Le Zero Downtime Deployment ou encore déploiement sans temps d'arrêt en français est une méthode de déploiement d'un site Web, d'une application ou d'un système sans jamais mettre hors service ou dans un état instable une application pendant son processus de déploiement.

Comment ça fonctionne

L’objectif est d’associer le mécanisme de répartition de charge (Load Balancer) au processus de déploiement:

  • Le load balancer dirige la requête sur laquelle est déployée la version N.
  • Un processus interne procéde a l'installation de la version N+1 de l'application.
  • Une fois cette migration effective, le load balancer dirige les utilisateurs vers ce nouveau serveur en version N+1,
  • Il déconnecte le serveur avec la version N de l'application et redirige les requêtes vers le nouveau serveur.

Problématiques liées au Zero Downtime Deployment

Déployer une application, service sans temps d'arrêt revient a construire un système qui prends en compte les problématique de redirection de serveur et aussi les mises à jour effectuées ou non au niveau de la base de données.

Il est impératif de se demander comment déployer de façon transparente une application tout en gardant ma base de données a jour.

En fonction de l'architecture de son système, il est existe plusieurs stratégies pour résoudre la problématique de la mise à jour de la base de données.

  • S'assurer que l'instance en production est bien connectée au bon serveur de données
  • Les scripts d’expansion, qui vont préparer la phase transitoire pendant laquelle les deux schémas cohabiteront,
  • Les scripts de contraction, qui permettront de consolider le schéma transitoire pour obtenir le schéma cible
  • Les scripts de rollback, qui permettront de retourner au schéma initial sans perdre de données en cas de problème.

Cet article a pour but de décrire de façon générale le "Zero Downtine Deployment". Dans un prochain on prendra un cas pratique pour le déploiement d'une application web et ses contours.

fabriceyopa

Fabrice Yopa

@fabriceyopa

CTO at @isdevexperts, Full Stack Web & Mobile Developer previously at @dioollabs 💥 , Laravel Cameroon Organizer @laravelcm 🌓 React Lover ❤️

Vous aimez cet article ? Faite le savoir en partageant