Aller au contenu
Explorer le site
Parlons de votre projet

contact@almousa.dev

PRATIQUES DE LIVRAISON / DU CODE À L’EXPLOITATION

Ingénierie et exploitation

Notre travail comprend une révision par une autre personne et une approche GitHub Actions pour les tests et les builds. Cette page décrit notre politique de livraison et d'exploitation. Chaque contrôle est mis en œuvre et vérifié dans le cadre convenu du projet ; son inclusion ici n'établit pas que chaque paramètre est activé pour chaque projet.

De la modification du code à la mise en production

  1. Git

    Suivez les modifications, attribuez un objectif clair à chacune et gérez-les au moyen de demandes de fusion pouvant être examinées.

  2. Revue de code

    Faites examiner la modification par une autre personne. La fusion nécessite une approbation, et toute modification ultérieure exige une nouvelle revue.

  3. CI

    Exécutez des contrôles automatisés avec GitHub Actions et exigez la réussite des contrôles obligatoires avant toute fusion.

  4. Tests

    Vérifiez le comportement affecté par la modification et ajoutez des tests adaptés à ses risques et à son périmètre.

  5. Compilation

    Produisez une version identifiable et traçable après la réussite des contrôles requis.

  6. Préproduction

    Testez la version dans un environnement distinct de la production, avec des données de test et des secrets séparés.

  7. Acceptation

    Le responsable technique de l’équipe valide l’état de préparation technique, et le client ou son représentant approuve la conformité aux exigences, selon l’ampleur de la modification. Documentez l’acceptation.

  8. Production

    Déployez la version approuvée avec les autorisations définies et bloquez le déploiement si une étape de validation obligatoire échoue.

  9. Surveillance

    Vérifiez l’état du service après le déploiement et surveillez la disponibilité, les performances et les erreurs en interne.

Il s’agit d’étapes logiques ; les tests et la compilation peuvent s’exécuter dans le cadre de l’intégration continue (CI). Les critères de validation et les autorisations sont définis pour chaque projet avant le déploiement.

Les mesures ci-dessous relèvent d’une politique approuvée, à mettre en œuvre et à vérifier dans le cadre de l’accord de projet. Les responsabilités opérationnelles effectivement applicables sont celles attribuées par le contrat d’exploitation ou d’assistance.

Journalisation

Les journaux se limitent aux informations nécessaires au diagnostic des défaillances et au soutien de l’exploitation. Les données sensibles sont masquées et l’accès est réservé aux personnes habilitées. Les durées de conservation sont définies selon les besoins opérationnels, avec suppression automatique à leur expiration. Les mots de passe et les clés d’accès ne doivent pas être consignés dans les journaux, et le contenu sensible des requêtes ne doit pas y être enregistré en intégralité.

Suivi des erreurs

Les erreurs sont collectées et hiérarchisées en fonction de leur impact sur le service, avec des alertes qui aident la personne désignée à enquêter et à assurer le suivi. Les données sont expurgées avant d'être envoyées à l'outil de suivi, et les diagnostics ne doivent pas se transformer en une collecte inutile de données sur les visiteurs.

Surveillance

La politique approuvée prévoit une surveillance automatisée de la disponibilité, des performances et des erreurs, avec une personne désignée pour recevoir et suivre les alertes. L’accord d’exploitation ou d’assistance définit les horaires de prise en charge, les délais de réponse et les responsabilités. Cette politique ne promet ni une surveillance humaine permanente ni un pourcentage précis de disponibilité.

Sauvegardes

La politique approuvée prévoit des sauvegardes automatiques et chiffrées, isolées du système principal, avec une durée de conservation définie et des tests périodiques de restauration. Le contrat désigne les responsables des sauvegardes, du suivi et de la restauration ; cette responsabilité n’incombe pas automatiquement au développeur du seul fait qu’il a créé le site.

Le périmètre des sauvegardes dépend des données réellement présentes : fichiers du site, ressources, configuration nécessaire à la restauration et, le cas échéant, données évolutives. La réussite d’une tâche de sauvegarde ne suffit pas ; la possibilité de restaurer doit être vérifiée. La fréquence des sauvegardes, la perte de données acceptable et le délai de rétablissement sont fixés selon les besoins du service et l’accord, sans engagements chiffrés non approuvés.

Retour à la version précédente

Conservez une version stable et préparez une procédure testée de retour à la version précédente, avec des contrôles de bon fonctionnement du service après le déploiement et après le retour arrière. Les modifications de la base de données, le cas échéant, nécessitent un plan distinct pour protéger les données et vérifier la compatibilité. Il ne faut pas supposer que la restauration des fichiers de l’application restaure automatiquement les données.

Gestion des secrets

Les mots de passe des services et les clés API sont stockés dans un gestionnaire de secrets dédié. Les secrets de test et de production sont séparés, et l’accès est limité aux besoins. Les secrets ne doivent figurer ni dans le code source, ni dans les fichiers publics du frontend, ni dans les journaux. Ils sont révoqués et remplacés en cas de suspicion d’exposition, et les autorisations d’accès sont réexaminées.