Chapitre 321 minIntermédiaire
Préparer une mise en production : environnements, plan de déploiement et retour arrière
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- choisir les environnements où le service sera testé ;
- dresser la liste des prérequis et la vérifier ;
- rédiger un plan de déploiement minuté ;
- prévoir un retour arrière avec son critère de déclenchement ;
- mener la décision go/no-go.
4 exercices corrigés2 schémas
Préparer une mise en production, c'est décider où le service sera testé, vérifier que tout ce dont il a besoin existe, écrire pas à pas comment il sera installé et comment revenir en arrière si l'installation échoue, puis faire autoriser le tout. Une mise en production réussie se joue presque entièrement avant le jour J : le jour J, on déroule un plan déjà écrit. Ce chapitre présente les environnements, la liste des prérequis, la demande de changement, le plan de déploiement, le plan de retour arrière et la décision go/no-go.
Les environnements
Un environnement est une installation complète du service (serveurs, application, base de données, configuration) réservée à un usage. On n'essaie jamais une nouvelle version là où les utilisateurs travaillent : on la fait passer d'un environnement à l'autre, du moins risqué au plus exposé.
| Environnement | À quoi il sert | Qui l'utilise | Données | Chez Sorbier |
|---|---|---|---|---|
| Développement | Écrire et essayer le code ou la configuration | Le développeur, l'administrateur | Fictives, souvent minimales | Les postes de Lina et Yanis ; ta maquette dans le labo |
| Intégration (CI) | Lancer les tests automatiques à chaque modification | Le pipeline | Créées et détruites par les tests | Les conteneurs jetables de GitHub Actions |
| Recette (staging, UAT) | Faire valider la version par les utilisateurs, dans des conditions proches de la production | La MOA, les utilisateurs référents, le support | Fictives ou anonymisées, mais réalistes | La VM srv-recette (192.168.21.186), dans le VLAN 21 |
| Préproduction | Répéter la mise en production à l'identique : même configuration, même volume | L'exploitation | Copie anonymisée de la production | Absente : pour 14 salariés, la recette suffit |
| Production | Servir les vrais utilisateurs | Tout le monde | Réelles | La VM srv-pretmatos (192.168.21.130) |
Une petite organisation a souvent trois environnements : développement, recette et production. Pour un service d'infrastructure (un GLPI, un serveur de fichiers, une nouvelle règle de pare-feu), la « recette » est une maquette : une machine virtuelle de test dans le labo, un clone de la VM de production, ou un instantané pris juste avant la modification (modèles et clones Proxmox).
Ce qui change d'un environnement à l'autre
La règle d'or : la version testée en recette est exactement celle qui part en production. Pas une version recompilée, pas une configuration retouchée à la main sur le serveur. Ce qui diffère d'un environnement à l'autre, c'est seulement :
- la configuration, fournie au démarrage (variables d'environnement, fichiers de configuration) : l'adresse de la base, le serveur de courriel, le niveau des journaux, l'adresse publique du service ;
- les secrets : chaque environnement a ses propres mots de passe et clés, et ceux de la production ne sont connus que de l'équipe d'exploitation ;
- les données.
| Réglage de Prêt'Matos | Recette | Production |
|---|---|---|
| Adresse du service | https://recette.pretmatos.example | https://pretmatos.ad.sorbier.example |
| Base de données | Conteneur bdd de srv-recette, base pretmatos_recette | Conteneur bdd de srv-pretmatos, base pretmatos |
| Courriels | Faux serveur SMTP (Mailpit) : les rappels sont capturés et affichés, jamais envoyés | Relais srv-intranet, port 25 |
| Annuaire | Groupe de test GG-PretMatos-Recette | Groupes réels GG-PretMatos-Utilisateurs et GG-PretMatos-Logistique |
| Journaux | Niveau debug | Niveau info |
Le cours Intégration continue montre comment un pipeline fait passer la même image d'un environnement à l'autre avec ses secrets propres.
Les prérequis : la liste qui évite les surprises
Un prérequis est une condition qui doit être remplie avant de commencer le déploiement. La liste se construit à partir de l'architecture (chapitre 2) : chaque composant, chaque dépendance et chaque flux donne au moins une ligne. Pour chacune, écris comment on vérifie qu'elle est remplie : un prérequis qu'on « pense » fait n'est pas fait.
| Famille | Prérequis pour Prêt'Matos | Comment le vérifier | Qui |
|---|---|---|---|
| Hébergement | VM srv-pretmatos créée : Debian 13 à jour, 2 vCPU, 4 Gio de mémoire, 40 Gio de disque | ssh depuis le bastion, apt list --upgradable vide | Moussa |
| Hébergement | Docker Engine et Compose installés | docker compose version | Moussa |
| Réseau | Adresse 192.168.21.130 fixe, nom srv-pretmatos et alias pretmatos dans le DNS de l'annuaire | Resolve-DnsName pretmatos.ad.sorbier.example depuis un poste | Chloé |
| Réseau | Règles du pare-feu pour les flux F1 à F9 ; réseau 192.168.21.0/24 ajouté aux réseaux locaux du serveur OpenVPN | Test de chaque flux depuis sa source (chapitre 4) | Moussa |
| Sécurité | Certificat de Sorbier-AC pour pretmatos.ad.sorbier.example, valable au moins un an | Ouvrir la page depuis un poste du domaine : cadenas, aucun avertissement | Moussa |
| Sécurité | Racine de Sorbier-AC approuvée par srv-pretmatos et par le conteneur api (NODE_EXTRA_CA_CERTS) | ldapwhoami -x en LDAPS réussit depuis la VM ; I-06 réussi en recette avec la même configuration du conteneur | Moussa |
| Sécurité | Compte de service svc-pretmatos dans l'annuaire, en lecture seule, mot de passe long rangé dans le coffre de l'équipe | Test de connexion LDAPS avec ce compte | Chloé |
| Sécurité | Groupes GG-PretMatos-Utilisateurs et GG-PretMatos-Logistique créés et remplis | Liste des membres validée par Nadia | Chloé |
| Messagerie | 192.168.21.130 ajoutée à mynetworks du relais Postfix de srv-intranet | Rappel de test reçu | Moussa |
| Application | Image 1.0.0 construite, analysée par la CI, recettée | PV de recette signé ; l'étiquette 1.0.0 pointe vers la même empreinte (digest sha256:…) que l'image 1.0.0-rc.2 recettée | Lina |
| Données | Fichier d'import du catalogue (24 matériels) et des réservations à venir, extrait du tableur et nettoyé | Comptage des lignes, contrôle par Nadia | Yanis |
| Exploitation | Export NFS dédié /srv/nfs/sauvegardes/pretmatos sur srv-partages, ouvert à 192.168.21.130 seulement | Montage depuis srv-pretmatos et écriture d'un fichier de test | Moussa |
| Exploitation | Sauvegarde nocturne de la base programmée vers srv-partages | Une sauvegarde de test restaurée sur srv-recette | Moussa |
| Exploitation | Hôte ajouté dans Zabbix (agent, scénario web, certificat), agent Wazuh installé | L'hôte apparaît vert dans Zabbix ; l'agent est actif dans Wazuh | Moussa |
| Juridique | Traitement « prêt de matériel » inscrit au registre des traitements, durée de conservation fixée | Ligne du registre validée par la direction | Antoine |
| Support | Catégorie « Prêt de matériel » créée dans GLPI, articles de la base de connaissances rédigés | Un ticket de test dans la catégorie | Chloé |
| Utilisateurs | Annonce envoyée, guide et fiche réflexe publiés, référents formés | Courriel envoyé ; liens vérifiés | Nadia et Yanis |
| Documentation | Dossier d'architecture, documentation d'exploitation, procédure de restauration | Relecture par Moussa | Lina et Yanis |
| Catalogue | Le service ajouté au catalogue de services | Ligne visible sur le portail GLPI | Antoine |
La demande de changement
Mettre un nouveau service en production est un changement au sens d'ITIL : une modification de l'infrastructure qui peut avoir un effet sur les services. Il passe donc par la pratique de gestion des changements (gestion des changements et retour arrière).
- Un changement standard est courant, à faible risque, décrit par une procédure éprouvée et pré-autorisé : ajouter un salarié à un groupe, déployer une version corrective d'une application qui a déjà un pipeline rodé.
- Un changement normal est évalué et autorisé au cas par cas : la première mise en production de Prêt'Matos en est un.
- Un changement urgent suit un circuit accéléré : corriger une faille exploitée.
La demande de changement (request for change, RFC) résume tout ce que ce chapitre prépare : la description et la justification, les éléments touchés, l'analyse d'impact et de risque, le plan de mise en œuvre, le plan de tests, le plan de retour arrière et la date. Chez Sorbier, elle est saisie dans GLPI (Assistance > Changements), liée au projet, et c'est Antoine, l'autorité de changement, qui l'autorise. Dans une grande organisation, un comité consultatif des changements (CAB) donnerait son avis.
L'analyse de risque tient en un petit tableau : ce qui peut mal tourner, sa probabilité, sa gravité, et ce qu'on prévoit.
| Risque | Probabilité | Gravité | Parade |
|---|---|---|---|
| L'import du tableur perd ou duplique des réservations | Moyenne | Forte | Import testé deux fois en recette ; contrôle des comptages ; tableur gelé mais conservé |
| La connexion par l'annuaire échoue en production | Faible | Forte | Test LDAPS dans les prérequis ; test de fumée avec un compte réel |
| Les salariés continuent d'écrire à Nadia par courriel | Forte | Moyenne | Annonce, fiche réflexe, réponse type de Nadia qui renvoie vers l'application |
| Le relais de courriel refuse les rappels | Faible | Faible | Rappel de test pendant les tests de fumée ; mode dégradé connu |
Le plan de déploiement
Le plan de déploiement décrit comment la version sera installée et ouverte aux utilisateurs : qui fait quoi, dans quel ordre, à quelle heure, et comment on vérifie chaque étape. Il doit pouvoir être suivi par quelqu'un d'autre que son auteur : si Moussa est malade le jour J, Chloé doit pouvoir le dérouler.
| Rubrique | Contenu |
|---|---|
| Objet et version | Ce qu'on déploie, avec le numéro exact de version (1.0.0) et la référence de la demande de changement |
| Périmètre | Ce qui est concerné et ce qui ne l'est pas |
| Dates et fenêtre | Le jour, l'heure de début, l'heure limite, la date d'ouverture aux utilisateurs |
| Équipe et contacts | Qui intervient, qui décide, comment les joindre ; qui est d'astreinte les jours suivants |
| Prérequis | La liste précédente, avec l'état de chaque ligne |
| Déroulé | Les étapes numérotées, minutées, avec pour chacune son responsable et sa vérification |
| Point de non-retour | L'étape après laquelle revenir en arrière devient coûteux, et l'heure limite pour décider |
| Tests après déploiement | Les tests de fumée, puis les vérifications par un utilisateur référent |
| Plan de retour arrière | Le critère de déclenchement et la procédure |
| Communication | Qui prévient qui, quand, par quel canal |
Le déroulé est le cœur du plan. Celui de Prêt'Matos, pour la matinée du samedi :
| N° | Heure | Étape | Qui | Vérification |
|---|---|---|---|---|
| 1 | Ven. 17 h | Gel du tableur : passage en lecture seule, message aux salariés | Nadia | Le fichier refuse les modifications |
| 2 | Sam. 9 h 00 | Sauvegarde du tableur et instantané de la VM srv-pretmatos | Moussa | Instantané visible dans Proxmox, copie du tableur sur srv-partages |
| 3 | 9 h 15 | Déploiement de l'image 1.0.0 : téléchargement, création de la base, démarrage | Moussa | Les quatre conteneurs sont démarrés et sains |
| 4 | 9 h 45 | Import du catalogue et des réservations à venir | Yanis | Comptages identiques au fichier source |
| 5 | 10 h 15 | Tests de fumée : page, connexion, réservation de test, rappel de test, sauvegarde | Lina | Tous verts, consignés dans le journal |
| 6 | 10 h 45 | Vérification par Nadia : son planning de la semaine correspond au tableur | Nadia | Accord écrit dans le journal |
| 7 | 11 h 30 | Décision : service conservé ou retour arrière | Antoine | Décision consignée |
| 8 | Lun. 8 h | Mise en service : annonce envoyée, lien publié, support renforcé en place | Nadia, Chloé | Premières réservations visibles |
Le chapitre 5 détaille l'exécution de ces étapes, et le chapitre 8 les commandes exactes.
Choisir la date et la fenêtre
La date d'une mise en production ne se choisit pas selon le calendrier de l'équipe technique, mais selon celui des utilisateurs.
- Éviter les pics d'activité : une fin de mois pour la comptabilité, un départ en tournée pour les commerciaux, la veille d'un inventaire pour la logistique.
- Garder du temps après : une mise en production le vendredi à 18 h laisse un week-end sans personne pour réagir. Si on déploie un samedi, quelqu'un doit être joignable et l'ouverture aux utilisateurs a lieu un jour où toute l'équipe est présente.
- Prévoir une fenêtre de maintenance quand un service existant s'arrête : une plage annoncée, assez large pour le retour arrière.
- Tenir compte des contraintes extérieures : le départ de l'intérimaire qui tient le tableur fixe une date au plus tard ; les congés de l'équipe fixent des dates impossibles.
Prêt'Matos remplace un tableur : aucun service ne s'arrête, il n'y a donc pas de coupure à annoncer, seulement un gel du tableur entre vendredi 17 h et lundi 8 h.
Le plan de retour arrière
Le plan de retour arrière (rollback ou backout plan) décrit comment revenir à la situation d'avant si le déploiement échoue. Il se prépare avant, avec quatre éléments :
- Le critère de déclenchement, mesurable : « si un test de fumée est rouge ou si les comptages de l'import diffèrent, et que la cause n'est pas corrigée à 11 h 30, on revient en arrière ».
- L'heure limite de décision, pour ne pas s'acharner jusqu'au soir.
- La procédure, aussi concrète que celle du déploiement : des commandes, des fichiers, des écrans.
- Ses conséquences sur les données : que deviennent les données saisies entre la bascule et le retour arrière ?
Pour Prêt'Matos, revenir en arrière avant l'ouverture ne coûte presque rien : on arrête les conteneurs, on rouvre le tableur en écriture, on prévient les salariés que le nouvel outil est reporté. Après l'ouverture du lundi, chaque réservation saisie dans l'application devrait être recopiée à la main dans le tableur : c'est le point de non-retour. Au-delà, on préfère corriger en avant (livrer un correctif) sauf anomalie bloquante, et c'est Antoine qui tranche.
Pour un service d'infrastructure, le retour arrière s'appuie souvent sur un instantané de la machine virtuelle pris juste avant (instantanés et sauvegardes dans Proxmox) : on revient à l'état exact d'avant en quelques secondes. Mais un instantané ramène aussi en arrière les données saisies depuis : il ne convient que tant que le service n'a pas été rouvert aux utilisateurs.
La décision go/no-go
La réunion go/no-go a lieu quelques jours avant le déploiement. Elle répond à une seule question : tout est-il prêt pour lancer ? Chacun présente l'état de ses prérequis, puis le décideur tranche, et la décision est écrite.
| Critère | Prêt'Matos à J−4 |
|---|---|
| Recette terminée, PV signé, aucune anomalie bloquante ou majeure ouverte | Oui : PV signé à J−7 avec une réserve mineure |
| Version figée, identique à celle qui a été recettée | Oui : image 1.0.0 |
| Prérequis techniques tous vérifiés | Oui, sauf le certificat : livré à J−5, vérifié à J−4 |
| Plan de déploiement et plan de retour arrière relus et validés | Oui |
| Sauvegarde et supervision en place | Oui |
| Équipe disponible le jour J et les jours suivants | Oui ; Moussa joignable samedi après-midi |
| Communication prête, support informé, documentation publiée | Oui |
| Pas d'événement qui rend la date risquée | Oui : pas d'inventaire prévu cette semaine-là |
La décision peut être go, no-go (on reporte, avec une nouvelle date), ou go sous conditions (« go si le certificat est installé et vérifié avant jeudi 18 h »). Elle est consignée dans la demande de changement.
Exercices
Exercice 1 sur 4 Quel environnement ? Réussi À revoir
Pour chaque situation, dis dans quel environnement on se trouve, ou dans lequel on devrait se trouver.
- Yanis teste une requête de recherche en modifiant le code toutes les deux minutes.
- Nadia et deux salariés vérifient que les réservations qui se chevauchent sont refusées.
- Moussa veut savoir si la mise à jour de GLPI de 12.0.1 vers 12.0.2 casse les règles métier, sans toucher aux tickets des salariés.
- Un test automatique crée 200 réservations puis les supprime à chaque modification du code.
- Chloé ouvre un ticket dans GLPI pour un salarié dont le poste ne démarre plus.
Voir la réponseMasquer la réponse de l'exercice 1
- Développement : son poste.
- Recette : la MOA et des utilisateurs valident un comportement métier.
- Une recette pour un service d'infrastructure : un clone de
srv-glpi(ou une VM de test restaurée depuis la dernière sauvegarde) dans le VLAN 21, où il passe la mise à jour et vérifie les règles. Un instantané de la production juste avant la mise à jour servira, lui, de retour arrière. - Intégration : le pipeline de CI, avec une base créée et détruite par les tests.
- Production : de vraies données, un vrai utilisateur.
Tu avais trouvé ?
Exercice 2 sur 4 Des prérequis vérifiables Réussi À revoir
Ces prérequis, notés dans un plan de déploiement, ne se vérifient pas. Réécris chacun pour qu'il dise comment on le vérifie.
- « Le DNS est fait. »
- « Le pare-feu est ouvert. »
- « La sauvegarde est en place. »
- « Les utilisateurs sont prévenus. »
Voir la réponseMasquer la réponse de l'exercice 2
- « L'alias
pretmatos.ad.sorbier.examplerépond192.168.21.130àResolve-DnsNamedepuis un poste du VLAN 10, et àgetent hosts pretmatos.ad.sorbier.exampledepuissrv-pretmatos. » - « Chaque flux F1 à F9 de la matrice a été testé depuis sa source, avec le résultat consigné ; par exemple
Test-NetConnection pretmatos.ad.sorbier.example -Port 443depuis un poste renvoieTcpTestSucceeded : True. » - « La sauvegarde nocturne s'est exécutée deux nuits de suite, et la plus récente a été restaurée sur
srv-recette: l'application y démarre avec les données attendues. » - « L'annonce a été envoyée à la liste de diffusion de tous les salariés à J−14 et rappelée à J−3 ; la fiche réflexe est publiée sur l'intranet. »
Tu avais trouvé ?
Exercice 3 sur 4 Un plan de retour arrière à refaire Réussi À revoir
Pour la mise à jour de GLPI de 12.0.1 vers 12.0.2, un technicien a écrit : « Retour arrière : en cas de problème, on restaure. » La mise à jour est prévue un mardi de 12 h 15 à 13 h 30, pendant la pause du midi, et GLPI reste ouvert aux salariés jusqu'à 12 h 15.
Réécris le plan de retour arrière avec ses quatre éléments.
Voir la réponseMasquer la réponse de l'exercice 3
Une réponse possible :
- Critère de déclenchement : la commande de mise à jour de la base échoue, ou l'un des tests suivants échoue : connexion d'un salarié par l'annuaire, création d'un ticket par le portail, notification reçue, relève de la boîte du support, page des actions automatiques à jour.
- Heure limite : décision à 13 h 15 au plus tard, pour que le service soit rétabli avant 13 h 30.
- Procédure : GLPI passe en mode maintenance à 12 h 15 et l'action automatique
mailgate(le collecteur) est désactivée pendant la fenêtre ; sauvegarde de la base et de la configuration ; instantané de la VMsrv-glpi. En cas de retour arrière : retour à l'instantané (moins d'une minute), vérification de la connexion et de la création d'un ticket, sortie du mode maintenance. - Conséquences sur les données : aucune, si le mode maintenance et l'arrêt du collecteur ont bien empêché toute saisie entre 12 h 15 et la décision ; les courriels reçus pendant ce temps restent dans la boîte du support et seront relevés à la réactivation du collecteur. Un collecteur resté actif aurait retiré ces courriels de la boîte en créant leurs tickets, et le retour à l'instantané aurait effacé les tickets : les demandes seraient perdues. Les salariés sont prévenus que GLPI est indisponible de 12 h 15 à 13 h 30.
Tu avais trouvé ?
Exercice 4 sur 4 Go ou no-go ? Réussi À revoir
À J−4 de la mise en service de GLPI, la situation est la suivante. Décide go, no-go ou go sous conditions, et justifie.
- Recette terminée, PV signé avec deux réserves mineures.
- Connexion par l'annuaire, notifications, collecteur : tous testés et verts.
- L'agent d'inventaire n'est déployé que sur 4 postes sur 16 : la stratégie de groupe a une erreur de chemin.
- La sauvegarde de la base n'a jamais été restaurée.
- Annonce envoyée, fiche « Déclarer une demande » prête.
Voir la réponseMasquer la réponse de l'exercice 4
Go sous conditions, ou no-go si les conditions ne peuvent pas être tenues.
- L'agent d'inventaire ne bloque pas l'ouverture : les salariés peuvent déclarer leurs demandes sans lui. On corrige la stratégie de groupe et on la déploie par vagues après l'ouverture. C'est une réserve, pas un motif de report.
- La sauvegarde jamais restaurée est, elle, une vraie condition : un service mis en production sans restauration testée ne respecte pas son engagement de continuité. Condition : « une restauration complète sur une VM de test, réussie avant J−1 ». Si elle échoue, no-go.
Tu avais trouvé ?