Qu’est-ce que le déploiement d’une application ?

Le déploiement d’une application désigne l’ensemble du processus qui consiste à rendre une application disponible et fonctionnelle pour ses utilisateurs finaux. Il ne s’agit pas uniquement de copier des fichiers sur un serveur : c’est une séquence d’étapes coordonnées qui va de la compilation du code source jusqu’à la vérification que tout fonctionne correctement en conditions réelles.

Cette définition recouvre des réalités très différentes selon le contexte. Pour une petite application web, déployer peut signifier envoyer quelques fichiers HTML sur un hébergement mutualisé. Pour une plateforme à fort trafic, cela implique des pipelines automatisés, des tests en cascade, des bascules progressives entre serveurs, et une surveillance continue des indicateurs de performance après la mise en production. Le point commun reste le même : amener du code qui fonctionnait en développement jusqu’aux mains des utilisateurs de façon contrôlée et fiable.

Déploiement vs hébergement : quelle différence ?

L’hébergement désigne l’infrastructure qui fait tourner l’application, c’est-à-dire les serveurs, les bases de données, le réseau, le stockage. C’est le socle physique ou virtuel sur lequel repose l’application. Le déploiement, lui, désigne l’acte de placer une version de l’application sur cette infrastructure et de la rendre active.

Pour prendre une analogie concrète : l’hébergement, c’est l’immeuble et son électricité. Le déploiement, c’est le fait d’emménager, d’installer les meubles et d’ouvrir les portes aux visiteurs. On peut changer d’occupant sans changer l’immeuble, et on peut refaire la décoration intérieure sans déménager. De la même façon, une nouvelle version d’application peut être déployée sur le même hébergement, et un hébergement peut être migré sans que le code de l’application change. Les deux notions sont liées mais bien distinctes.

Quels sont les avantages du déploiement continu ?

Le déploiement continu, souvent désigné par l’acronyme CD pour Continuous Deployment, permet de livrer automatiquement chaque modification de code validée directement en production, sans intervention humaine. Le premier avantage majeur est la vitesse de livraison : les nouvelles fonctionnalités et les corrections de bugs arrivent aux utilisateurs en heures plutôt qu’en semaines. La boucle de feedback entre le développement et l’usage réel devient beaucoup plus courte.

Le deuxième avantage, souvent contre-intuitif, est la réduction du risque. Quand on déploie très fréquemment de petites modifications, chaque déploiement est moins risqué qu’un gros déploiement mensuel qui concentre des semaines de changements. Identifier et corriger un problème sur une modification mineure est infiniment plus simple que déboguer une mise à jour massive. Le déploiement continu impose aussi une discipline de qualité : pour que l’automatisation fonctionne, les tests doivent être fiables et complets, ce qui améliore structurellement la robustesse du code.

Quels sont les risques du déploiement ?

Le risque le plus évident est l’introduction de régressions, c’est-à-dire de bugs qui n’existaient pas dans la version précédente. Une modification apparemment anodine peut avoir des effets de bord inattendus sur d’autres parties du système, particulièrement dans les applications complexes avec de nombreuses dépendances internes.

Les autres risques concernent la disponibilité du service pendant la transition. Une mise à jour mal orchestrée peut provoquer une interruption de service, même brève, qui est inacceptable pour certaines applications critiques. Il y a également les risques liés aux migrations de base de données : modifier le schéma d’une base en production est une opération délicate qui peut corrompre des données si elle est mal réalisée. Enfin, les problèmes de configuration, comme une variable d’environnement manquante ou une permission mal définie, sont parmi les causes les plus fréquentes d’incidents en production après un déploiement.

Types de déploiement

C’est quoi un déploiement en production ?

Le déploiement en production est la mise en ligne officielle d’une version de l’application sur l’environnement qui accueille les vrais utilisateurs. C’est l’étape finale du cycle de développement, celle qui concrétise tout le travail réalisé en amont. L’environnement de production est par définition le plus critique : c’est là que se joue l’expérience réelle des utilisateurs, que se mesurent les performances authentiques, et que les erreurs ont des conséquences directes sur le service.

Un déploiement en production sérieux ne se fait jamais à la légère. Il est précédé par des validations en staging, accompagné de procédures de surveillance renforcée dans les heures qui suivent, et assorti d’un plan de rollback si quelque chose tourne mal. Dans les organisations matures, un déploiement en production est un événement tracé, documenté et réversible, pas une opération réalisée en urgence un vendredi soir.

Qu’est-ce qu’un déploiement staging ?

L’environnement de staging, parfois appelé pré-production, est une copie fidèle de la production destinée à valider une nouvelle version avant qu’elle n’atteigne les vrais utilisateurs. L’idée est de reproduire les conditions réelles du déploiement, avec les mêmes configurations, les mêmes données proches du réel et les mêmes dépendances, pour détecter les problèmes qui ne sont pas apparus en développement ou en tests unitaires.

Le staging est l’endroit où se font les tests d’intégration finaux, les tests de performance, et parfois les validations fonctionnelles par les équipes produit avant une livraison. Un problème détecté en staging coûte infiniment moins cher qu’un incident en production. La qualité d’un staging est directement proportionnelle à sa ressemblance avec la production : un staging qui diffère trop de la prod en termes de données, de volumes ou de configuration perd une grande partie de sa valeur.

Déploiement blue-green c’est quoi ?

Le déploiement blue-green est une stratégie qui consiste à maintenir deux environnements de production identiques en parallèle, désignés par les couleurs bleu et vert. À tout moment, un seul des deux est actif et reçoit le trafic des utilisateurs. Pour déployer une nouvelle version, on la prépare et on la valide sur l’environnement inactif, puis on bascule l’intégralité du trafic de l’un vers l’autre en quelques secondes.

L’avantage principal est la capacité de rollback quasi instantané : si un problème est détecté après la bascule, il suffit de rediriger le trafic vers l’environnement précédent pour revenir à la version stable en quelques secondes. Le coût est évident : maintenir deux environnements complets en parallèle double la facture d’infrastructure. Cette stratégie est particulièrement adaptée aux applications à fort enjeu de disponibilité où même quelques minutes d’interruption sont inacceptables.

Rolling deployment vs canary : différences ?

Le rolling deployment, ou déploiement progressif, consiste à remplacer les instances de l’ancienne version par la nouvelle de façon séquentielle. On met à jour un serveur, on vérifie qu’il fonctionne bien, puis on passe au suivant, et ainsi de suite jusqu’à ce que toute la flotte soit mise à jour. Pendant ce processus, les deux versions coexistent temporairement, ce qui nécessite que l’application soit conçue pour supporter cette transition.

Le canary deployment est une approche différente dans l’intention : il s’agit de déployer la nouvelle version sur un sous-ensemble très réduit du trafic réel, par exemple 1 ou 5 %, pour observer son comportement en conditions réelles avant d’étendre progressivement. Le terme vient de l’expression canari dans une mine de charbon : on expose d’abord une petite portion pour détecter les problèmes. Le canary est plus prudent que le rolling car il permet une observation en production sur un faible volume avant de s’engager plus loin, ce qui est précieux pour les nouvelles fonctionnalités expérimentales.

guide visuel deploiement

Outils et pipelines

Quels sont les meilleurs outils de déploiement ?

Le marché des outils de déploiement est riche et les bons choix dépendent largement de la stack technique et de la taille de l’équipe. GitHub Actions et GitLab CI/CD sont devenus les références pour les équipes qui hébergent leur code sur ces plateformes : ils permettent d’automatiser l’intégralité du pipeline sans sortir de l’environnement de développement habituel. Jenkins reste incontournable dans les environnements d’entreprise qui ont besoin d’un contrôle total sur leur infrastructure CI/CD.

Pour le déploiement sur cloud, les plateformes comme AWS CodeDeploy, Google Cloud Deploy ou Azure DevOps offrent des intégrations natives avec leurs services respectifs. Des outils comme Terraform et Ansible gèrent le provisionnement et la configuration de l’infrastructure de façon déclarative. Kubernetes avec Helm s’est imposé comme standard pour les architectures conteneurisées à grande échelle. En réalité, la plupart des équipes combinent plusieurs de ces outils : un outil de CI pour les tests, un outil d’infrastructure as code pour l’environnement, et les services natifs du fournisseur cloud pour le déploiement.

C’est quoi CI/CD en déploiement ?

CI/CD est l’acronyme de Continuous Integration et Continuous Delivery (ou Continuous Deployment). L’intégration continue désigne la pratique qui consiste à fusionner régulièrement le code de tous les développeurs dans une branche commune et à déclencher automatiquement une série de vérifications : compilation, tests unitaires, analyse de qualité du code. L’objectif est de détecter les conflits et les régressions le plus tôt possible, idéalement dans les minutes qui suivent chaque modification.

La livraison continue va plus loin : elle automatise aussi la préparation et le déploiement de l’application vers les environnements de staging et de production. Le déploiement continu est la forme la plus avancée où chaque modification validée par les tests est automatiquement mise en production sans validation humaine intermédiaire. Dans la pratique, beaucoup d’équipes s’arrêtent à la livraison continue et conservent une validation manuelle pour les déploiements en production, ce qui représente un bon équilibre entre automatisation et contrôle.

GitHub Actions sert à quoi pour déployer ?

GitHub Actions est le système d’automatisation intégré à GitHub qui permet de définir des workflows déclenchés par des événements sur le dépôt de code : un push, une pull request mergée, la création d’un tag de version. Pour le déploiement, cela signifie qu’on peut configurer une séquence d’actions qui s’exécute automatiquement à chaque fois qu’un développeur pousse du code sur une branche spécifique.

Concrètement, un workflow GitHub Actions pour le déploiement peut enchaîner l’installation des dépendances, l’exécution des tests, la compilation de l’application, la construction d’une image Docker, son push vers un registre, et enfin son déploiement sur un serveur ou un service cloud. Tout cela sans intervention humaine. L’écosystème d’actions prédéfinies disponibles sur le marketplace permet d’intégrer facilement des déploiements vers AWS, Google Cloud, Azure, Vercel, Heroku et des dizaines d’autres plateformes en quelques lignes de configuration.

Jenkins c’est quoi pour le déploiement ?

Jenkins est un serveur d’automatisation open source créé en 2011, l’un des outils de CI/CD les plus anciens et les plus répandus dans l’industrie. Il permet de créer des pipelines de déploiement entièrement personnalisés grâce à son système de plugins, dont il en existe plus de mille huit cents. Jenkins s’installe sur votre propre infrastructure, ce qui donne un contrôle total sur l’environnement d’exécution, contrairement aux solutions hébergées comme GitHub Actions.

Sa force est sa flexibilité absolue : Jenkins peut s’adapter à quasiment n’importe quelle stack technique, n’importe quel processus de déploiement, n’importe quel environnement cible. Sa faiblesse est sa complexité d’administration : Jenkins nécessite une maintenance régulière, des mises à jour de plugins parfois délicates, et une courbe d’apprentissage non négligeable. Il est particulièrement présent dans les grandes entreprises qui ont des exigences de sécurité strictes et ne peuvent pas envoyer leur code sur des plateformes cloud tierces.

Docker est-il nécessaire pour déployer ?

Docker n’est pas strictement nécessaire pour déployer une application, mais il est devenu un standard de facto dans l’industrie pour de bonnes raisons. Docker permet d’empaqueter une application avec toutes ses dépendances dans un conteneur portable et reproductible. Le résultat est un artefact de déploiement qui se comporte exactement de la même façon sur le poste du développeur, en staging et en production, éliminant la fameuse excuse cela marchait sur ma machine.

Les bénéfices concrets pour le déploiement sont nombreux : démarrage rapide des instances, isolation entre les applications sur un même serveur, facilité de mise à l’échelle, rollback simple en revenant à une image précédente. En dehors de Docker, il existe des alternatives de déploiement qui fonctionnent très bien, comme le déploiement direct sur des serveurs configurés avec Ansible, ou les solutions PaaS comme Heroku ou Render qui gèrent l’infrastructure de façon transparente. Mais pour toute équipe qui souhaite un contrôle fin sur ses déploiements à travers plusieurs environnements, Docker s’est imposé comme un outil de base incontournable.

Environnements de déploiement

Combien d’environnements pour déployer ?

Le nombre d’environnements varie selon la maturité de l’organisation et la criticité de l’application, mais le modèle minimal recommandé est trois : développement, staging et production. Ce découpage garantit que le code est validé progressivement avant d’atteindre les utilisateurs réels, sans alourdir excessivement l’infrastructure.

Les équipes plus avancées ajoutent parfois un quatrième environnement dédié aux tests d’intégration ou de performance, distinct du staging pour éviter que les tests lourds n’interfèrent avec les validations fonctionnelles. Certaines organisations ont également des environnements par feature, créés dynamiquement pour tester une branche spécifique en isolation avant de la merger. La règle générale est d’avoir autant d’environnements que nécessaire pour valider correctement sans en avoir tellement que la maintenance devient un fardeau en elle-même.

Qu’est-ce qu’un environnement dev/test/prod ?

L’environnement de développement, souvent appelé simplement dev, est celui sur lequel travaillent les développeurs au quotidien. Il est généralement local sur leur machine ou partagé dans une configuration légère. Les données y sont fictives, les performances ne sont pas représentatives, et il peut être cassé temporairement sans conséquence pour qui que ce soit d’autre.

L’environnement de test, parfois confondu avec le staging, accueille les versions intermédiaires pour la validation automatisée ou manuelle par les équipes QA. Il doit être stable et représentatif pour que les résultats des tests soient significatifs. L’environnement de production est le seul qui compte pour les utilisateurs : il doit être dimensionné pour le charge réelle, configuré pour la haute disponibilité, et surveillé en permanence. Chaque passage d’un environnement à l’autre représente une validation supplémentaire qui réduit le risque d’incident en production.

Déploiement cloud vs on-premise ?

Le déploiement on-premise signifie que les serveurs qui font tourner l’application sont physiquement installés dans les locaux de l’entreprise ou dans un datacenter qu’elle contrôle. L’entreprise est responsable du matériel, de la sécurité physique, de la maintenance des serveurs, des mises à jour système et de la capacité. C’est le modèle traditionnel, encore très présent dans les secteurs régulés comme la santé, la finance ou la défense pour des raisons de conformité et de souveraineté des données.

Le déploiement cloud délègue toute la gestion de l’infrastructure à un fournisseur comme AWS, Google Cloud ou Azure. L’entreprise loue des ressources à la demande et ne gère que son application, pas les serveurs physiques. Les avantages sont la flexibilité, la rapidité de mise en place et la capacité à absorber des pics de charge sans investissement matériel préalable. Le cloud ne convient pas à toutes les situations : certaines contraintes réglementaires imposent l’on-premise, et pour des charges très stables et élevées, le coût total du cloud peut dépasser celui d’une infrastructure propre sur le long terme.

Processus technique

Comment fonctionne un pipeline de déploiement ?

Un pipeline de déploiement est une séquence automatisée d’étapes qui transforment du code source en application déployée. Il démarre généralement par un événement déclencheur, comme un push sur la branche principale, et enchaîne les étapes dans un ordre précis : récupération du code, installation des dépendances, compilation, exécution des tests unitaires, analyse statique du code, construction de l’artefact déployable, déploiement sur staging, tests d’intégration, validation, puis déploiement en production.

Chaque étape du pipeline est une porte : si elle échoue, le pipeline s’arrête et le déploiement n’a pas lieu. Cette logique de portes successives garantit que seul du code qui a passé tous les contrôles atteint la production. Les pipelines modernes affichent leur état en temps réel, notifient les équipes en cas d’échec, et conservent un historique complet de tous les déploiements avec leurs résultats. Un bon pipeline est à la fois une garantie de qualité et un outil de traçabilité.

flowchart LR
A[Code Push] –> B[CI Tests Build]
B –> C[Quality Check]
C –> D[Build Artefact]
D –> E[Staging Deploy]
E –> F[Integration Tests]
F –> G{Validation}
G –>|OK| H[Production Deploy]
G –>|Fail| I[Fix and Retry]
H –> J[Monitoring]

 

Qu’est-ce que l’automatisation du déploiement ?

L’automatisation du déploiement consiste à remplacer les interventions manuelles dans le processus de mise en production par des scripts et des outils qui s’exécutent de façon reproductible sans erreur humaine. Au lieu qu’un développeur se connecte en SSH à un serveur, exécute des commandes, copie des fichiers et redémarre des services, toutes ces opérations sont décrites dans du code et déclenchées automatiquement.

Les bénéfices sont multiples. L’automatisation élimine les erreurs de manipulation, qui sont une des premières causes d’incidents en production. Elle garantit que chaque déploiement suit exactement le même processus, sans variation liée à la personne qui l’effectue. Elle permet aussi de déployer à n’importe quelle heure sans mobiliser une équipe, et de scaler le nombre de déploiements journaliers bien au-delà de ce qu’une équipe humaine pourrait gérer manuellement. Dans les organisations les plus avancées, des dizaines voire des centaines de déploiements sont effectués chaque jour de façon entièrement automatique.

Rollback de déploiement : comment ça marche ?

Le rollback est la procédure qui permet de revenir à une version précédente de l’application quand un déploiement introduit un problème critique. C’est le filet de sécurité fondamental de tout processus de déploiement sérieux. Sans capacité de rollback fiable et rapide, chaque déploiement est un pari risqué.

Les mécanismes de rollback varient selon la stratégie de déploiement utilisée. Dans un déploiement blue-green, le rollback se fait en quelques secondes en rebasculant le trafic vers l’environnement précédent. Avec des conteneurs Docker, on réactive simplement l’image de la version précédente. Avec des déploiements sur serveurs classiques, on conserve les artefacts des dernières versions pour pouvoir les redéployer rapidement. La partie la plus délicate du rollback concerne les migrations de base de données : revenir en arrière sur le code est simple, mais défaire une modification du schéma de base de données peut être complexe ou impossible selon les changements effectués. C’est pourquoi les bonnes pratiques recommandent des migrations backward-compatible qui permettent à l’ancienne version du code de coexister avec le nouveau schéma.

Monitoring après déploiement ?

La surveillance après un déploiement est une phase critique souvent sous-estimée. Un déploiement n’est pas terminé au moment où l’application redémarre : il est terminé quand on a la confirmation que tout fonctionne normalement en conditions réelles de production. Cette confirmation nécessite un monitoring actif dans la fenêtre qui suit le déploiement, traditionnellement les trente premières minutes à quelques heures selon la criticité.

Les indicateurs à surveiller sont multiples : taux d’erreurs HTTP, temps de réponse des endpoints critiques, utilisation CPU et mémoire, métriques métier comme le nombre de transactions par minute, et logs applicatifs pour détecter des exceptions inhabituelles. Des outils comme Datadog, New Relic, Prometheus ou Grafana permettent de visualiser ces métriques en temps réel et de configurer des alertes automatiques. La pratique des alertes sur les anomalies post-déploiement permet de détecter un problème avant même que les premiers utilisateurs affectés ne contactent le support.

Cloud et conteneurs

Déploiement Kubernetes c’est quoi ?

Kubernetes est un système d’orchestration de conteneurs open source, initialement développé par Google, qui automatise le déploiement, la mise à l’échelle et la gestion des applications conteneurisées. Dans le contexte du déploiement, Kubernetes gère une flotte de conteneurs répartis sur un cluster de machines, en s’assurant que le nombre de répliques souhaité est toujours en cours d’exécution, que les conteneurs défaillants sont automatiquement redémarrés, et que les nouvelles versions sont déployées selon la stratégie configurée.

Déployer sur Kubernetes signifie décrire l’état souhaité de l’application dans des fichiers YAML, que Kubernetes cherche ensuite à atteindre et maintenir de façon autonome. Cette approche déclarative simplifie considérablement la gestion des mises à jour sur des architectures à grande échelle. Kubernetes prend en charge nativement les rolling deployments et peut être configuré pour des stratégies canary. Sa courbe d’apprentissage est cependant significative et sa complexité opérationnelle le réserve généralement aux équipes qui gèrent des applications à large échelle ou des architectures microservices complexes.

AWS deployment avec Elastic Beanstalk ?

AWS Elastic Beanstalk est un service de la plateforme Amazon Web Services qui simplifie le déploiement d’applications en prenant en charge automatiquement la gestion de l’infrastructure sous-jacente. L’idée est de permettre aux développeurs de se concentrer sur leur code sans avoir à configurer manuellement les serveurs EC2, les load balancers, les groupes de mise à l’échelle automatique et les autres composants AWS nécessaires au fonctionnement d’une application en production.

En pratique, on fournit à Elastic Beanstalk le code de l’application ou un conteneur Docker, et le service crée et configure automatiquement l’environnement correspondant. Il gère les déploiements, les montées en charge, la surveillance de la santé des instances et le remplacement automatique des instances défaillantes. Elastic Beanstalk supporte plusieurs stratégies de déploiement intégrées, dont le rolling deployment et le blue-green. C’est une solution bien adaptée aux équipes qui veulent bénéficier de la puissance d’AWS sans s’investir dans l’administration fine de l’infrastructure.

Déploiement serverless avec AWS Lambda ?

Le déploiement serverless avec AWS Lambda représente une approche radicalement différente du déploiement traditionnel. Plutôt que de déployer une application qui tourne en permanence sur des serveurs, on déploie des fonctions individuelles qui ne s’exécutent qu’en réponse à des événements spécifiques : une requête HTTP, un message dans une file d’attente, un fichier déposé dans un bucket S3. AWS gère entièrement l’infrastructure sous-jacente, la mise à l’échelle et la disponibilité.

Du point de vue du déploiement, le serverless simplifie certains aspects et complique d’autres. Il n’y a plus de serveurs à provisionner, plus de rollouts à orchestrer sur une flotte de machines. Un déploiement Lambda consiste à uploader un nouveau paquet de code et c’est tout. En contrepartie, le déploiement d’une architecture serverless complexe avec de nombreuses fonctions interdépendantes nécessite des outils spécialisés comme AWS SAM ou le Serverless Framework pour gérer l’ensemble de façon cohérente. Les cold starts, c’est-à-dire le délai de démarrage d’une fonction Lambda non utilisée récemment, sont également un facteur à prendre en compte dans les stratégies de déploiement.

Bonnes pratiques

Checklist avant déploiement ?

Une checklist de pré-déploiement sérieuse commence par les vérifications de base : tous les tests automatisés passent, la revue de code a été effectuée et approuvée, les dépendances sont à jour et sans vulnérabilité connue, les variables d’environnement de production sont configurées. Ces points semblent évidents mais sont régulièrement à l’origine d’incidents quand ils ne sont pas vérifiés systématiquement.

Les points suivants concernent la préparation opérationnelle : le plan de rollback est défini et testé, l’équipe de garde est informée du déploiement et disponible pour réagir, les alertes de monitoring sont actives, la documentation de la version est rédigée. Pour les déploiements majeurs, il est conseillé de définir une fenêtre de déploiement à faible trafic, de notifier les utilisateurs si une interruption est prévisible, et de s’assurer que les sauvegardes de base de données ont été effectuées récemment. Une checklist n’est pas un fardeau bureaucratique : c’est la mémoire collective de tout ce qui peut mal tourner.

Comment tester avant de déployer ?

Les tests avant déploiement s’organisent en plusieurs couches complémentaires. Les tests unitaires vérifient que chaque composant du code fonctionne correctement en isolation. Les tests d’intégration vérifient que les composants fonctionnent bien ensemble et que les interfaces entre services sont correctes. Les tests fonctionnels ou end-to-end simulent des scénarios utilisateurs complets pour valider le comportement global de l’application.

Au-delà des tests fonctionnels, les tests de performance permettent de vérifier que la nouvelle version ne dégrade pas les temps de réponse sous charge. Les tests de sécurité automatisés détectent les vulnérabilités introduites par les nouvelles dépendances ou les modifications de code. En staging, une phase de smoke testing après le déploiement vérifie rapidement que les fonctionnalités critiques répondent correctement avant d’ouvrir le trafic. La règle fondamentale est que tout ce qui peut être automatisé doit l’être : les tests manuels sont précieux pour l’exploration et la validation visuelle, mais ils ne peuvent pas remplacer une suite de tests automatisés pour garantir la régression.

Gestion des downtimes en déploiement ?

L’objectif moderne du déploiement est le zéro downtime, c’est-à-dire aucune interruption de service perceptible par les utilisateurs pendant la mise à jour. Les stratégies décrites précédemment, blue-green, rolling deployment et canary, ont précisément été conçues pour atteindre cet objectif. En pratique, le zéro downtime est accessible à la grande majorité des applications web à condition que leur architecture soit conçue pour le supporter, notamment en séparant bien le déploiement du code de la migration des bases de données.

Quand un downtime est inévitable, par exemple pour des opérations de maintenance lourde ou des migrations de données complexes, la gestion rigoureuse s’impose. Cela commence par la communication préalable aux utilisateurs avec un préavis suffisant et une durée estimée honnête. Pendant l’interruption, une page de maintenance claire et informative remplace l’application. Après la reprise, une confirmation de retour à la normale est publiée. Les fenêtres de maintenance sont idéalement programmées aux heures de trafic minimal, qui varient selon le public cible de l’application. Une bonne gestion du downtime ne se mesure pas à sa durée mais à la qualité de la communication qui l’accompagne.