J’ai installé ma propre instance Discourse ‘stable’ avec Postgres et Redis externes.
Pour préciser l’architecture : dans Azure, 1 LoadBalancer, 1 VM hébergeant le conteneur Discourse avec un partage NFS pour les sauvegardes et les images, 1 Postgres, 1 Redis.
Je l’ai personnalisé avec mon propre logo, les plugins discourse-calendar et discourse-news (et d’autres choses aussi, mais non pertinentes ici).
Aléatoirement, pendant une période d’environ 30 minutes, certains éléments de l’interface utilisateur échouent :
Le logo principal revient à celui par défaut
L’icône favicon revient à celle par défaut
La page “upcoming-events” générée par discourse-calendar disparaît (pas de lien et réponse 404 en accédant par URL)
Le logo personnalisé donné à discourse-news (avec une URL) disparaît
Puis cela revient.
Je n’ai rien dans les logs à ce sujet.
La console de mon navigateur ne montre rien.
Une chose que je peux dire, c’est que pendant cette période, je peux observer une augmentation des misses de cache Redis.
Quelqu’un peut-il m’aider à dépanner cela ? Je ne sais même pas où trouver les logs pertinents…
@pfaffman j’ai utilisé l’installation standard de mon point de vue.
Sauf que j’ai utilisé la fonctionnalité fournie pour utiliser une base de données et Redis externes.
Mais j’utilise app.yaml et docker build and run décrits dans l’installation standard.
J’ai fait cela pour pouvoir fournir une haute disponibilité et différentes stratégies de mise à l’échelle : avec un déploiement entièrement autonome, vous ne pouvez évoluer que verticalement (augmenter la taille de votre nœud) et non en haute disponibilité.
Je vois. Cela semble en effet fonctionner. Ma meilleure hypothèse est que vous réduisez à zéro machine virtuelle et que ce que vous voyez est le site mis en cache dans votre navigateur. Ou une autre façon pour l’équilibreur de charge de ne pas se connecter à l’hôte. Ou que Discourse ne reçoit pas la vraie IP et qu’il limite le débit (mais normalement vous verriez une erreur).
Mais vos fonctionnalités de haute disponibilité fournissent une faible disponibilité. À moins que vous ne passiez de dizaines d’utilisateurs la plupart du temps à des milliers d’autres (comme pour un site sportif), la mise à l’échelle causera probablement plus de problèmes qu’elle n’en résoudra.
La première chose que je ferais serait donc de supprimer l’équilibreur de charge et de voir si cela résout le problème. Ensuite, décidez quoi faire à partir de là. Si cela se produit une fois par mois, ce ne sera pas facile à diagnostiquer.