Архитектура

Bpium Enterprise — распределенное решение, каждая часть приложения может быть многократно продублирована.

Один сервер

Все сервисы могут работать на одном выделенном или виртуальном сервере:

Особенности:

  • Сервисы Bpium и Bpium S3 должны иметь публичные внешние адреса.

Разделенные сервера

Возможно разделить сервисы по серверам для увеличения производительности и независимости:

Особенности:

  • Остальные сервисы могут не иметь внешних адресов, но должны быть досягаемы между собой

  • Сервис Bpium BPM должен иметь доступ во вне и к сервису Bpium

  • Сохранение состояния исполнения процессов реализуется за счет хранилища/очереди Redis

Схема за маршрутизаторами

Сервисы могут находится на разных серверах и стоять за маршрутизаторами, внешними веб-серверами или балансировщиками нагрузки:

Особенности

  • Сервис Bpium должен иметь доступ к сервису Bpium S3 через интернет (по внешнему адресу)

  • Сервис Bpium BPM должен иметь доступ к сервису Bpium через интернет (по внешнему адресу)

Масштабируемая/отказоустойчивая архитектура

Все сервисы Bpium рассчитаны на многосерверную распределенную параллельную работу:

Особенности:

  • Сервера Bpium S3 должны иметь общую папку для хранения файлов

  • Синхронизация баз данных реализуется через репликацию на уровне PostgreSQL

  • Синхронизация серверов Bpium BPM реализуется за счет хранилища/очереди Redis