J'ai environ 130 applications web sinatra fonctionnant sur un cluster de serveurs Apache-passagers. Toutes ces applications ont été clonées à partir d'une base de code générique, puis modifiées pour avoir leur propre clé d'authentification. La majorité des applications n'ont pas de modifications hormis la clé d'authentification. L'avantage des applications séparées est que je peux très rapidement apporter des modifications à une application spécifique sans risquer d'indisponibilité pour d'autres applications.Où stocker la configuration de nombreuses applications sinatra similaires
Cependant, ces clés d'authentification sont essentiellement des configurations. Il est à la fois gênant et intuitivement incorrect de stocker la configuration dans la base de code. Les options alternatives que j'ai explorées incluent le stockage de la configuration dans une base de données et la mise en mémoire cache dans la mémoire, les variables d'environnement apache par application et un fichier json partagé.
Y a-t-il de meilleures options? Des pièges que j'ai ratés?
Je suis d'accord que le stockage de la configuration dans une base de données est excessif, mais l'avantage est que vous pouvez changer la configuration sans redémarrer l'application. – Erik
C'est un bon point, mais il en irait de même pour l'utilisation d'un fichier de configuration. Si les applications sinatra du cluster OP partagent toutes une base de données, le fichier et la base de données ont des avantages et des inconvénients similaires, sauf que la modification des valeurs dans une base de données nécessite plus de travail que la modification d'un fichier. –
À droite, ce qui signifie stocker les clés dans la configuration apache, car c'est là que vous définissez les variables d'environnement pour les applications sinatra fonctionnant sur Apache/passager. –