Guide pratique

Valider un service avant sa mise en exploitation

Passer du démarrage des conteneurs à un service utilisable, durable et récupérable grâce à des tests fonctionnels et opérationnels.

Pourquoi ce guide

Valider un service avant sa mise en exploitation répond à une question opérationnelle : comment prendre une décision reproductible, compréhensible par l’équipe et compatible avec les responsabilités du service. Le guide relie conception, mise en œuvre, contrôle et passage de relais.

Chaque étape produit un résultat concret : une carte, une règle, une configuration, un test ou une décision. Cette discipline évite que l’exploitation repose sur la mémoire d’une seule personne. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Définir les critères d’acceptation

Écrire avant le déploiement les actions qu’un utilisateur doit pouvoir accomplir et les conditions d’exploitation à respecter. Les critères couvrent au minimum l’accès, l’authentification, l’écriture et la relecture d’un objet, les traitements différés, le redéploiement et la reprise. Chaque critère possède un résultat attendu et une personne chargée de le constater.

Le résultat est consigné dans une fiche courte, relue par la personne qui utilisera ou administrera le service. Elle nomme aussi le propriétaire fonctionnel, l’administrateur, le canal d’assistance, les seuils de supervision et la fenêtre de maintenance.

Valider la composition

Rendre le fichier Compose avec les valeurs prévues, contrôler sa syntaxe et examiner les images, commandes, montages, réseaux et dépendances. La validation statique repère les variables absentes, les volumes incohérents et les références circulaires avant qu’ils ne deviennent des incidents de démarrage. Elle est rejouée après chaque modification du modèle.

Le contrôle est d’abord exercé sur un périmètre réduit, puis rejoué après chaque changement qui touche cette responsabilité. Une liste de conteneurs sains ne suffit pas : CKAN doit importer et rechercher, Overleaf doit compiler, KoboToolbox doit recevoir une soumission et OpenSPP doit exposer ses modules activés.

Tester le parcours utilisateur

Entrer par le domaine public et accomplir une opération représentative avec un compte normal : créer, modifier, rechercher, exporter ou soumettre selon le produit. Revenir ensuite sur l’objet créé pour vérifier la lecture et les droits. Ce parcours traverse le proxy, l’application, la base et les services associés mieux qu’une simple page d’accueil.

L’équipe conserve un exemple nominal et un cas d’erreur afin que la procédure couvre le fonctionnement courant comme l’incident. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Exercer les tâches de fond

Déclencher une tâche réelle — import, envoi, indexation, compilation ou calcul — puis suivre son passage dans la file et son résultat dans l’application. Un worker actif peut rester inutile s’il écoute la mauvaise file, partage un secret différent ou ne voit pas les mêmes fichiers. Le contrôle porte donc sur l’effet produit, pas sur le seul état du conteneur.

Les rôles fonctionnel, technique et données valident ensemble les points qui traversent leurs responsabilités.

Contrôler la persistance

Créer un objet repérable, redémarrer les services puis effectuer un redéploiement complet sans supprimer les volumes. L’objet, ses fichiers et les paramètres nécessaires doivent rester accessibles. Ce test distingue clairement l’état durable du cache reconstructible et révèle les chemins écrits dans une couche éphémère du conteneur.

Une personne qui n’a pas conçu le dispositif suit ensuite les instructions et signale les étapes ambiguës ou implicites. Elle nomme aussi le propriétaire fonctionnel, l’administrateur, le canal d’assistance, les seuils de supervision et la fenêtre de maintenance.

Tester sauvegarde et restauration

Produire une sauvegarde cohérente, la copier hors des volumes courants et restaurer dans un espace isolé. Démarrer la même version, rejouer les migrations prévues et rechercher un objet métier connu depuis l’interface. Une archive dont la restauration n’aboutit pas à un service utilisable ne remplit pas encore sa fonction.

Le temps nécessaire, les dépendances et le résultat observé sont notés pour dimensionner l’exploitation et le support. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Préparer la supervision

Choisir peu de signaux reliés à une action : disponibilité du domaine, erreurs, latence, capacité disque, connexions à la base, profondeur des files et date du dernier point de reprise. Définir pour chaque alerte un seuil, un destinataire et une première vérification. Les journaux doivent rester accessibles sans exposer inutilement des données sensibles.

Le même repère est utilisé en test, lors du passage en exploitation et pendant les revues périodiques.

Décider du passage en exploitation

Réunir les validations fonctionnelle, technique et données dans une décision datée. Confirmer les responsables, les comptes, l’assistance, les sauvegardes, la supervision, la fenêtre de maintenance et la procédure d’incident. Les écarts acceptés sont associés à une action et une échéance afin de ne pas devenir des oublis permanents.

Toute exception reçoit un responsable, une action et une échéance afin de rester visible jusqu’à sa résolution. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Mise en pratique

Avant de terminer, rejouer le scénario sans utiliser l’historique du navigateur ni une session administrateur déjà ouverte. Vérifier les erreurs visibles, les journaux, la persistance et les actions de l’utilisateur. Une autre personne doit pouvoir suivre la procédure avec les informations publiées et obtenir le même résultat. Une liste de conteneurs sains ne suffit pas : CKAN doit importer et rechercher, Overleaf doit compiler, KoboToolbox doit recevoir une soumission et OpenSPP doit exposer ses modules activés.

Répartir les responsabilités

Le responsable fonctionnel définit le besoin, les règles métier et les critères de réussite. Le responsable des données fixe les catégories, les droits, la durée de conservation et les usages. L’administrateur applicatif gère les comptes, la configuration et l’assistance. L’équipe infrastructure prend en charge serveur, réseau, certificats, supervision et sauvegardes. Ces responsabilités peuvent être portées par peu de personnes, mais elles doivent rester explicites. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Pour chaque opération récurrente, désigner qui prépare, qui approuve, qui exécute et qui vérifie. Cette matrice réduit les dépendances et accélère la réponse lorsque le contexte change. Elle nomme aussi le propriétaire fonctionnel, l’administrateur, le canal d’assistance, les seuils de supervision et la fenêtre de maintenance.

Réviser la pratique

Planifier une revue après les premières semaines d’usage, puis à chaque changement important. Examiner les incidents, les demandes d’assistance, les écarts de qualité, les restaurations et le temps consacré à l’administration. Ces observations montrent si la procédure reste adaptée ou si une responsabilité doit être clarifiée. Une liste de conteneurs sains ne suffit pas : CKAN doit importer et rechercher, Overleaf doit compiler, KoboToolbox doit recevoir une soumission et OpenSPP doit exposer ses modules activés.

La revue se termine par peu de décisions, chacune avec un responsable et une échéance. Les changements sont intégrés au guide, testés et communiqués aux utilisateurs concernés. Le document reste ainsi aligné sur le service réellement exploité. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Conserver une trace utile

Noter la version, la date, la personne qui a exécuté le contrôle et le résultat attendu. Conserver les commandes ou captures strictement nécessaires à la reproduction. Une trace courte et structurée aide davantage qu’un long journal de dépannage sans décision. Elle facilite aussi la revue périodique et le transfert de responsabilité. Elle nomme aussi le propriétaire fonctionnel, l’administrateur, le canal d’assistance, les seuils de supervision et la fenêtre de maintenance.

Préparer la mise en œuvre

Transformer le guide en séquence de travail avant d’intervenir. Définir le périmètre, l’environnement, les accès, les données d’essai, le créneau et les personnes disponibles. Prévoir un point d’arrêt avant chaque changement difficile à inverser et confirmer la manière de revenir à l’état précédent. Cette préparation réduit les improvisations et protège le service courant. Une liste de conteneurs sains ne suffit pas : CKAN doit importer et rechercher, Overleaf doit compiler, KoboToolbox doit recevoir une soumission et OpenSPP doit exposer ses modules activés.

Présenter ensuite la séquence aux futurs utilisateurs et aux responsables concernés. Leurs questions révèlent souvent une dépendance oubliée, une règle métier implicite ou un horaire inadapté. Intégrer ces éléments au scénario permet d’évaluer le dispositif dans les conditions où il sera réellement utilisé. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Évaluer la maintenabilité

Un résultat fonctionnel aujourd’hui doit rester compréhensible demain. Vérifier qu’une deuxième personne peut localiser la configuration, identifier les états durables, lire les alertes et exécuter la procédure sans accès personnel du concepteur. Les dépendances externes, dates de renouvellement, versions et contacts d’assistance sont regroupés dans un emplacement partagé. Elle nomme aussi le propriétaire fonctionnel, l’administrateur, le canal d’assistance, les seuils de supervision et la fenêtre de maintenance.

Après un incident, une mise à jour ou un exercice de reprise, comparer le déroulement réel au guide. Corriger immédiatement les étapes imprécises, supprimer les opérations devenues inutiles et ajouter les contrôles qui auraient permis de détecter plus tôt le problème. La documentation devient ainsi une composante vivante du service. Une liste de conteneurs sains ne suffit pas : CKAN doit importer et rechercher, Overleaf doit compiler, KoboToolbox doit recevoir une soumission et OpenSPP doit exposer ses modules activés.

Passer du pilote à l’usage régulier

Avant d’élargir le périmètre, comparer les hypothèses du pilote avec l’usage observé : charge, qualité, demandes d’assistance, incidents, temps d’administration et capacité des équipes. Ajuster les rôles, les automatismes et la formation avant d’ajouter de nouveaux utilisateurs ou territoires. Une montée en charge progressive permet de conserver la compréhension du dispositif et de corriger les fragilités tant qu’elles restent maîtrisables. La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration.

Passer de la recette au service

La décision de mise en exploitation réunit un parcours nominal, un cas d’erreur, une écriture durable, un traitement asynchrone lorsqu’il existe, un redéploiement et une restauration. Elle nomme aussi le propriétaire fonctionnel, l’administrateur, le canal d’assistance, les seuils de supervision et la fenêtre de maintenance. Une liste de conteneurs sains ne suffit pas : CKAN doit importer et rechercher, Overleaf doit compiler, KoboToolbox doit recevoir une soumission et OpenSPP doit exposer ses modules activés.