Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

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 sertQui l'utiliseDonnéesChez Sorbier
DéveloppementÉcrire et essayer le code ou la configurationLe développeur, l'administrateurFictives, souvent minimalesLes postes de Lina et Yanis ; ta maquette dans le labo
Intégration (CI)Lancer les tests automatiques à chaque modificationLe pipelineCréées et détruites par les testsLes conteneurs jetables de GitHub Actions
Recette (staging, UAT)Faire valider la version par les utilisateurs, dans des conditions proches de la productionLa MOA, les utilisateurs référents, le supportFictives ou anonymisées, mais réalistesLa VM srv-recette (192.168.21.186), dans le VLAN 21
PréproductionRépéter la mise en production à l'identique : même configuration, même volumeL'exploitationCopie anonymisée de la productionAbsente : pour 14 salariés, la recette suffit
ProductionServir les vrais utilisateursTout le mondeRéellesLa 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).

la même image (même empreinte) : construite une fois, déployée partoutDéveloppementposte dudéveloppeur,maquettedonnées fictivesIntégrationpipeline de CI :construction ettests automatiquesdonnées jetablesRecettesrv-recette .186les référents etle cahier de recettefictives, réalistesProductionsrv-pretmatos .130les 14 salariés,vrais courrielsdonnées réellesanomalie en recette : correction, puis nouvelle versionD'un environnement à l'autre, seules changent la configuration(base, serveur de courriel, secrets) et les données.
La même version traverse les environnements ; seules la configuration et les données changent

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'MatosRecetteProduction
Adresse du servicehttps://recette.pretmatos.examplehttps://pretmatos.ad.sorbier.example
Base de donnéesConteneur bdd de srv-recette, base pretmatos_recetteConteneur bdd de srv-pretmatos, base pretmatos
CourrielsFaux serveur SMTP (Mailpit) : les rappels sont capturés et affichés, jamais envoyésRelais srv-intranet, port 25
AnnuaireGroupe de test GG-PretMatos-RecetteGroupes réels GG-PretMatos-Utilisateurs et GG-PretMatos-Logistique
JournauxNiveau debugNiveau 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.

FamillePrérequis pour Prêt'MatosComment le vérifierQui
HébergementVM srv-pretmatos créée : Debian 13 à jour, 2 vCPU, 4 Gio de mémoire, 40 Gio de disquessh depuis le bastion, apt list --upgradable videMoussa
HébergementDocker Engine et Compose installésdocker compose versionMoussa
RéseauAdresse 192.168.21.130 fixe, nom srv-pretmatos et alias pretmatos dans le DNS de l'annuaireResolve-DnsName pretmatos.ad.sorbier.example depuis un posteChloé
RéseauRègles du pare-feu pour les flux F1 à F9 ; réseau 192.168.21.0/24 ajouté aux réseaux locaux du serveur OpenVPNTest de chaque flux depuis sa source (chapitre 4)Moussa
SécuritéCertificat de Sorbier-AC pour pretmatos.ad.sorbier.example, valable au moins un anOuvrir la page depuis un poste du domaine : cadenas, aucun avertissementMoussa
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 conteneurMoussa
SécuritéCompte de service svc-pretmatos dans l'annuaire, en lecture seule, mot de passe long rangé dans le coffre de l'équipeTest de connexion LDAPS avec ce compteChloé
SécuritéGroupes GG-PretMatos-Utilisateurs et GG-PretMatos-Logistique créés et remplisListe des membres validée par NadiaChloé
Messagerie192.168.21.130 ajoutée à mynetworks du relais Postfix de srv-intranetRappel de test reçuMoussa
ApplicationImage 1.0.0 construite, analysée par la CI, recettéePV 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éeLina
DonnéesFichier d'import du catalogue (24 matériels) et des réservations à venir, extrait du tableur et nettoyéComptage des lignes, contrôle par NadiaYanis
ExploitationExport NFS dédié /srv/nfs/sauvegardes/pretmatos sur srv-partages, ouvert à 192.168.21.130 seulementMontage depuis srv-pretmatos et écriture d'un fichier de testMoussa
ExploitationSauvegarde nocturne de la base programmée vers srv-partagesUne sauvegarde de test restaurée sur srv-recetteMoussa
ExploitationHô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 WazuhMoussa
JuridiqueTraitement « prêt de matériel » inscrit au registre des traitements, durée de conservation fixéeLigne du registre validée par la directionAntoine
SupportCatégorie « Prêt de matériel » créée dans GLPI, articles de la base de connaissances rédigésUn ticket de test dans la catégorieChloé
UtilisateursAnnonce envoyée, guide et fiche réflexe publiés, référents formésCourriel envoyé ; liens vérifiésNadia et Yanis
DocumentationDossier d'architecture, documentation d'exploitation, procédure de restaurationRelecture par MoussaLina et Yanis
CatalogueLe service ajouté au catalogue de servicesLigne visible sur le portail GLPIAntoine

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.

RisqueProbabilitéGravitéParade
L'import du tableur perd ou duplique des réservationsMoyenneForteImport testé deux fois en recette ; contrôle des comptages ; tableur gelé mais conservé
La connexion par l'annuaire échoue en productionFaibleForteTest LDAPS dans les prérequis ; test de fumée avec un compte réel
Les salariés continuent d'écrire à Nadia par courrielForteMoyenneAnnonce, fiche réflexe, réponse type de Nadia qui renvoie vers l'application
Le relais de courriel refuse les rappelsFaibleFaibleRappel 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.

RubriqueContenu
Objet et versionCe 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ètreCe qui est concerné et ce qui ne l'est pas
Dates et fenêtreLe jour, l'heure de début, l'heure limite, la date d'ouverture aux utilisateurs
Équipe et contactsQui intervient, qui décide, comment les joindre ; qui est d'astreinte les jours suivants
PrérequisLa 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-retourL'étape après laquelle revenir en arrière devient coûteux, et l'heure limite pour décider
Tests après déploiementLes tests de fumée, puis les vérifications par un utilisateur référent
Plan de retour arrièreLe critère de déclenchement et la procédure
CommunicationQui 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ÉtapeQuiVérification
1Ven. 17 hGel du tableur : passage en lecture seule, message aux salariésNadiaLe fichier refuse les modifications
2Sam. 9 h 00Sauvegarde du tableur et instantané de la VM srv-pretmatosMoussaInstantané visible dans Proxmox, copie du tableur sur srv-partages
39 h 15Déploiement de l'image 1.0.0 : téléchargement, création de la base, démarrageMoussaLes quatre conteneurs sont démarrés et sains
49 h 45Import du catalogue et des réservations à venirYanisComptages identiques au fichier source
510 h 15Tests de fumée : page, connexion, réservation de test, rappel de test, sauvegardeLinaTous verts, consignés dans le journal
610 h 45Vérification par Nadia : son planning de la semaine correspond au tableurNadiaAccord écrit dans le journal
711 h 30Décision : service conservé ou retour arrièreAntoineDécision consignée
8Lun. 8 hMise en service : annonce envoyée, lien publié, support renforcé en placeNadia, 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 :

  1. 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 ».
  2. L'heure limite de décision, pour ne pas s'acharner jusqu'au soir.
  3. La procédure, aussi concrète que celle du déploiement : des commandes, des fichiers, des écrans.
  4. 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.

point de non-retourJ−14Annonceaux salariésJ−12 à J−10Recette,deux toursJ−7PV de recettesignéJ−5Formationdes référentsJ−4Réuniongo/no-goJ−3Gel du tableurvendredi 17 hJ−2Mise enproductionJ : mise en service, lundi 8 hJ+11Fin du supportrenforcéJ+30Bilanà un moisretour arrière simplesupport renforcé
Le chronogramme de Prêt'Matos : tout se prépare avant la bascule, et le retour arrière reste simple jusqu'à l'ouverture

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èrePrêt'Matos à J−4
Recette terminée, PV signé, aucune anomalie bloquante ou majeure ouverteOui : PV signé à J−7 avec une réserve mineure
Version figée, identique à celle qui a été recettéeOui : image 1.0.0
Prérequis techniques tous vérifiésOui, sauf le certificat : livré à J−5, vérifié à J−4
Plan de déploiement et plan de retour arrière relus et validésOui
Sauvegarde et supervision en placeOui
Équipe disponible le jour J et les jours suivantsOui ; Moussa joignable samedi après-midi
Communication prête, support informé, documentation publiéeOui
Pas d'événement qui rend la date risquéeOui : 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.

  1. Yanis teste une requête de recherche en modifiant le code toutes les deux minutes.
  2. Nadia et deux salariés vérifient que les réservations qui se chevauchent sont refusées.
  3. 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.
  4. Un test automatique crée 200 réservations puis les supprime à chaque modification du code.
  5. 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
  1. Développement : son poste.
  2. Recette : la MOA et des utilisateurs valident un comportement métier.
  3. 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.
  4. Intégration : le pipeline de CI, avec une base créée et détruite par les tests.
  5. 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.

  1. « Le DNS est fait. »
  2. « Le pare-feu est ouvert. »
  3. « La sauvegarde est en place. »
  4. « Les utilisateurs sont prévenus. »
Voir la réponseMasquer la réponse de l'exercice 2
  1. « L'alias pretmatos.ad.sorbier.example répond 192.168.21.130 à Resolve-DnsName depuis un poste du VLAN 10, et à getent hosts pretmatos.ad.sorbier.example depuis srv-pretmatos. »
  2. « 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 443 depuis un poste renvoie TcpTestSucceeded : True. »
  3. « 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. »
  4. « 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 VM srv-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é ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Tests d'intégration et d'acceptation : cahier de recette et PVRevoir le sommaire du cours