Il s'agit principalement d'un problème de communication, mais vous pouvez faire des erreurs moins probables par quelques mesures techniques et organisationnelles simples. Tout d'abord, vous devez fournir une documentation de haute qualité de toutes les entrées de vos fichiers de configuration, ainsi qu'un exemple facilement accessible ou un fichier de configuration «par défaut». Le fichier d'exemple peut être déployé automatiquement dans chaque environnement, car il n'est pas destiné à être modifié directement par l'équipe de prod.
Ensuite, avec chaque nouvelle version, fournissez un journal des modifications, où les changements importants sont documentés. Les modifications de la configuration qui pourraient empêcher le système de fonctionner lorsqu'elles sont manquantes sont toujours importantes, alors assurez-vous que les informations sont là.
Par exemple, supposons que l'équipe de développement ajoute quelques paires clé-valeur à application.properties dans leur environnement. Quelle serait la meilleure façon d'enregistrer ces nouvelles clés, afin que lorsque le déploiement se produit dans l'équipe des opérations, elles sachent exactement quelles clés ajouter, de sorte que le risque de démarrer le nouveau service et de le voir échouer en raison d'une clé manquante soit minimisé?
La meilleure façon de réduire le risque d'échec est d'éviter de modifier votre application d'une manière qui nécessite les nouvelles clés, de sorte que l'application doit être rétrocompatible avec les anciens fichiers de configuration chaque fois que possible. Souvent, votre application peut se comporter de manière sensée en fournissant des valeurs par défaut intégrées pour les nouvelles clés pour le cas où elles sont manquantes.
Cependant, si cela n'est pas possible, votre système devrait permettre à l'équipe de production de découvrir le plus facilement possible pourquoi le nouveau service ne démarre pas lorsque la clé est manquante. Il devrait y avoir un message d'erreur clair, indiquant exactement quelle clé est manquante dans quel fichier , et si nécessaire où trouver les informations sur la clé manquante, ou un indice ou un exemple sur une entrée significative pour cette clé.
Si la configuration est complexe et que le format change d'une manière dont l'édition manuelle devient sujette aux erreurs, vous pouvez également envisager de fournir des outils pour éditer les configurations et pour la migration vers une version plus récente.
Par exemple, j'utilise le navigateur Web Firefox, et avec chaque nouvelle version (que j'obtiens automatiquement), certaines choses sont ajoutées à la configuration locale que l'on peut inspecter sur la page "about: config". Ceci est comparable à la configuration de votre environnement de "production". Étant donné que l'ensemble de la configuration est strictement rétrocompatible, je n'ai jamais à ajouter de nouvelles clés à la configuration manuellement simplement parce qu'il existe une nouvelle version du navigateur. Et pour le cas où je veux changer quelque chose là-bas (peut-être une nouvelle entrée qui ne faisait pas partie de la version précédente), j'utilise le menu Outils / Options ou la page "about: config", et je peux trouver l'entrée plus quelques type de documentation. Je recommande donc d'essayer d'implémenter votre système d'une manière comparable.