Je me suis interrogé sur la meilleure façon de s'assurer que certains fichiers de configuration XML restent synchronisés entre plusieurs serveurs d'une ferme Web. Je ne suis pas nécessairement préoccupé par le fichier Web.Config, mais plutôt par d'autres fichiers de configuration présents dans l'application.
Par exemple, nous stockons les politiques de mise en cache dans un fichier XML externe, qui possède son propre schéma et qui disposera bientôt de son propre outil pour maintenir les valeurs. Une fois que les changements sont appliqués, ils doivent être migrés à travers la ferme.
Quelques scénarios que j'ai envisagés jusqu'à présent :
- RoboCopy, réplication ou équivalent. Cela implique que le travail ne soit jamais effectué que sur un nœud particulier de la ferme (Push to application).
- Serveur de configuration. Toutes les configurations externes et leurs outils sont stockés sur une instance physique d'IIS. L'application récupérera ces fichiers de configuration au démarrage de l'application et demandera périodiquement s'il y a des changements. (Application polls.)
- Création d'une équipe. Nous pourrions héberger les outils en interne et mettre en place un processus post-construction pour déployer les fichiers. (Sondages sur les applications.)
- Stockage de la base de données. Les applications peuvent lire et interroger la base de données pour la configuration. (Application polls.)
Tous ces scénarios ont leurs avantages et leurs inconvénients. Je ne suis pas sûr de la meilleure solution, même si je pense que l'approche la plus propre consiste à demander à l'application d'effectuer des sondages en cas de changement. Néanmoins, la question est de savoir quelle est la meilleure façon d'y parvenir selon vous ?