Высокая доступность / микросервисная архитектура

Я администрирую очень активное сообщество со средним количеством 180 тысяч пользователей в день, и вертикальное масштабирование для меня уже практически невозможно. Нам нужно горизонтальное масштабирование. Прежде чем об этом заговорят, хочу сразу сказать: меня мало волнует, что «официально поддерживается». Меня интересует только то, что технологически возможно.

В настоящее время у нас работает экземпляр Ubuntu с Discourse в Docker, установленный по официальным инструкциям. Для хранения используется S3, а также CDN для раздачи контента.

Я планирую мигрировать на NixOS flake, который сейчас пишу. Проведя очень детальное исследование использования ресурсов, я заметил, что процессор в основном нагружен PostgreSQL и воркерами Unicorn (мы оптимизировали это, чтобы минимизировать нагрузку на CPU при сохранении производительности. У нас 16 воркеров).

Также оперативная память в основном занята PostgreSQL и Redis.

Если это возможно, я хочу изолировать эти компоненты на трёх отдельных серверах:

  • Frontend Discourse (с Unicorn)
  • Сервер Redis
  • Сервер PostgreSQL

Я уже успешно настроил сервер Discourse с PostgreSQL на отдельной машине, но не уверен, можно ли вынести Redis на другой сервер и будет ли это иметь смысл с точки зрения производительности.

Кто-нибудь ещё сейчас запускает Discourse в такой конфигурации?

Вы можете запустить Redis на другом сервере, если считаете, что это поможет. Например, довольно часто используют AWS ElastiCache в экосистеме AWS, поэтому нет никаких проблем с размещением его там, где, по вашему мнению, есть достаточная производительность и пропускная способность.