Интерфейс случайно перестаёт работать в течение короткого периода

Привет!

Я установил собственную стабильную версию Discourse с внешними базами данных Postgres и Redis.
Для уточнения архитектуры: в Azure — 1 балансировщик нагрузки, 1 ВМ с контейнером Discourse, использующая общий NFS-ресурс для резервных копий и изображений, 1 сервер Postgres, 1 сервер Redis.

Я настроил его, добавив собственный логотип, плагины discourse-calendar и discourse-news (и другие элементы, но они здесь не важны).

Случайным образом, на периоды около 30 минут, часть интерфейса перестаёт работать:

  • Основной логотип возвращается к стандартному
  • Фавикон возвращается к стандартному
  • Страница «upcoming-events», генерируемая плагином discourse-calendar, исчезает (нет ссылки, при переходе по URL — ошибка 404)
  • Кастомный логотип, переданный дискуссии через discourse-news (с URL), исчезает

Затем всё возвращается в норму.

В логах я ничего об этом не нашёл.
В консоли браузера тоже ничего нет.
Единственное, что могу отметить: в этот период наблюдается рост числа промахов кэша Redis.

Может ли кто-нибудь помочь мне разобраться в проблеме? Я даже не знаю, где искать соответствующие логи…

Боюсь, это слишком далеко от стандартной установки, чтобы я мог что-либо знать об этом. :slight_smile:

Вам удалось найти то, что вам нужно?

Нет, не удалось.
И моя проблема время от времени продолжает проявляться :disappointed_relieved:
Не знаю, где искать подсказку…

Самое простое — перейти на стандартную установку stabs. Это тоже будет дешевле. Не представляю, что это может быть.

@pfaffman с моей точки зрения, я использовал стандартную установку.
За исключением того, что я воспользовался предоставленной возможностью для использования внешней базы данных и Redis.
Однако я использовал app.yaml и сборку Docker, а также запуск, описанные в разделе «Стандартная установка».

Я сделал это, чтобы обеспечить высокую доступность и различные стратегии масштабирования: при полностью автономном развёртывании можно масштабировать только вертикально (увеличивать мощность узла), но не обеспечивать высокую доступность.

Понятно. Звучит так, будто это должно работать. Скорее всего, вы масштабируете количество виртуальных машин до нуля, и то, что вы видите — это кэшированная версия сайта в вашем браузере. Или же балансировщик нагрузки каким-то другим образом не подключается к хосту. Или же Discourse не получает реальный IP-адрес и применяет ограничение частоты запросов (хотя обычно в таком случае вы бы увидели ошибку).

Но ваши функции высокой доступности обеспечивают низкую доступность. Если вы не переходите от десятков пользователей большую часть времени к тысячам в отдельные моменты (как, например, на спортивном сайте), то масштабирование, скорее всего, создаст больше проблем, чем решит.

Поэтому первое, что я бы сделал, — убрал балансировщик нагрузки и посмотрел, исправит ли это проблему. А затем уже решал, что делать дальше. Если это происходит раз в месяц, диагностировать причину будет нелегко.