#  Возможна ли конфигурация системы с выносом на отдельные инстансы сервисов postgresql, redis, backend-frontend?
# Вопрос

Возможна ли конфигурация системы с выносом на отдельные инстансы сервисов postgresql, redis, backend-frontend?

# Ответ

Такая конфигурация не рекомендуется.

Штатно мы тестируем/поддерживаем схему, когда база данных находится на том же сервере[ на том же сервере](https://support.swarmica.com/article/ru/416-shema-razvertyvaniya-swarmica-i-neobhodimyj-dostup.html), , а резервное копирование производится на уровне всей виртуальной машины. В таком случае время восстановления \= времени восстановления резервной копии виртуального диска, а глубина потерянных данных \= время от даты создания резервной копии до времени восстановления.&#x20;

Если в теории вынести сервер БД во внешний кластер **на свой страх и риск**, а приложение настроить на подключение к этому самому кластеру, то:

1.  Такая схема штатно не тестируется  - поэтому возможны какие-то неожиданные нюансы, которые будет сложно решать.
2.  В случае сценария восстановления после сбоя есть риск (хоть и минимальный), что код приложения, который в контейнерах и версия базы будут отличаться. Особенно если отдельно восстановить данные на стороне БД, если там был сбой. А тогда сложно предсказать поведение приложения - сможет ли оно подняться и корректно прокатить все миграции или нет
3.  В случае поломки, резервирование БД не решает проблему восстановления пользовательских данных , которые лежат в докер волюмах *swarmica\_ugc, swarmica\_uploads, swarmica\_runtime, swarmica\_cron\_d .*  В теории, конечно, можно примонтировать их как сетевые диски, но тогда будет задержка при чтении/записи этих файлов на *latency* сети, а это уже будет негативно сказываться на скорости работы веб-интерфейса

:::danger
Резюме: вместо прироста производительности и отказоустойчивости это даст задержку по сети и деградацию производительности.
:::

:::tip
Как показывает практика, гораздо надежнее устанавливать Swarmica в одну виртуальную машину **достаточной мощности**, которую просто бэкапить, просто восстанавливать в случае инцидента, а так же просто администрировать и обновлять.
:::