Архитектура Pyrus Datacenter
Безоблачный Pyrus
Pyrus Datacenter поддерживает запуск на одном хосте или как кластер высокой доступности.
Кластер высокой доступности
Pyrus можно запускать в кластере с несколькими узлами и балансировщиками нагрузки. Это подходит организациям, для которых важны высокая доступность и возможность масштабирования.
Типичная архитектура кластера высокой доступности изображена ниже:
Кластерное решение обладает следующими преимуществами:
- Высокая доступность и автоматический failover: Если один из узлов в вашем приложении выйдет из строя, другие узлы кластера берут на себя нагрузку, обеспечивая бесперебойную доступность приложения;
- Горизонтальное масштабирование: Каждый новый узел увеличивает количество одновременных пользователей и сокращает время отклика по мере роста системы. Также, имеется возможность развернуть узлы, предназначенные только для определенных функций.
Узнать подробнее про установку Pyrus Datacenter в режиме высокой доступности можно на странице репозитория Pyrus Datacenter K8S
Запуск на одном хосте
Pyrus на одном хосте подходит вам, если:
- Вы разворачиваете пилот для первых 200-300 пользователей;
- Вы допускаете полную остановку системы для регламентных работ.
На изображении ниже показана архитектура Pyrus, запущенного на одном хосте:
На сервере запускается следующий набор docker-контейнеров.
web-api | Основной сервис, обрабатывает запросы пользователей и вызовы API. |
files | Сервис сохранения/скачивания файлов. |
bind | Сервис отправки событий в веб-браузер пользователей. |
identity-server | Сервис идентификации. |
mail-sender | Сервис отправки электронной почты через SMTP-сервер клиента. |
mail-reader | Сервис чтения электронной почты из почтовых интеграций. |
notification-service | Сервис отправки пуш-уведомлений на мобильные устройства через pyrus.com. |
async-worker | Сервис обработки асинхронных задач. |
scheduler | Сервис выполнения регулярных задач. |
preview-generator | Сервис генерации превью файлов. |
postgresql | СУБД Postgres, основное хранилище данных. Использует volume для хранения данных на диске. Авторизация происходит по внутренней сети Docker по логину/паролю. |
elasticsearch | Поисковый система Elasticsearch, используется для полнотекстового поиска. Использует volume для хранения данных на диске. Авторизация происходит по внутренней сети Docker по логину/паролю. |
nats | Шина обмена сообщениями между сервисами. Авторизация происходит по внутренней сети Docker по логину/паролю. |
nginx | Веб-сервер, терминирует SSL-соединение и маршрутизирует запросы. |
logs | СУБД Postgres, хранилище логов. Использует volume для хранения данных на диске. Авторизация происходит по внутренней сети Docker по логину/паролю. |