Bpium Docker — это версия Bpium для установки на собственные сервера или облако. Решение включает в себя конфигурационные файлы для создания собственного сервера с технологией контейнеризации.
Хост - операционная система, на которой запущены контейнеры Docker
Docker - программное обеспечение, реализующее контейнерную изоляцию приложений
Контейнеризация - метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо одного. Эти экземпляры (обычно называемые контейнерами или зонами) с точки зрения пользователя полностью идентичны отдельному экземпляру операционной системы.
Внимание: данное руководство содержит инструкцию только по настройке решения на одном сервере.
Bpium Docker состоит из независимых контейнеров Docker:
Bpium — сервер приложения и логики
Bpium S3 — сервер файлового хранилища
Bpium BPM — сервер исполнения бизнес-процессов
PostgreSQL — сервер баз данных
Redis— сервер хранилища данных для бизнес-процессов
Контейнеры могут быть размещены на одном или разных серверах, включая кластерные решения. Реализация на нескольких серверах аналогична этой и так же потребует индивидуальной настройки.
Если у вас уже есть базы данных и хотите использовать их - это потребует дополнительной настройки файла конфигурации.
Готовая конфигурация включает:
Операционная система (Ubuntu)
Docker
Контейнер Bpium
Контейнер BPM
Контейнер Bpium-S3
Контейнер Postgres
Контейнер Redis
База данных Postgres:
База данных Redis
Хранилище Bpium-S3
Сеть устроена следующим образом:
Контейнеры объединены в одну сеть, имея доступ к друг другу.
Доступ во внешнюю сеть(интернет) имеют все контейнеры.
Обслуживать запросы, приходящие на хост могут только те контейнеры, которым это разрешили правилами.
Процессор: 2 ГГц (рекомендуется Intel i5/i7, 3+ ГГц)
Память: 2 Гб (рекомендуется от 4 Gb)
Диск: 20 Гб свободного места
Локальная сеть: 100 Мб/c
Доступ в интернет: периодически, для активации лицензий
Для работы модуля телефонии: внешний IP-адрес, домен, сертификат HTTPS
Bpium Docker — решение для операционных систем семейства Linux. Рекомендованный дистрибутив - Ubuntu Linux.
Проект доступен для скачивания по ссылке:
Bpium может работать на защищенном канале связи (HTTPS). Для этого сервер приложения должен быть доступен из интернета, иметь доменное имя и SSL-сертификат Class 1 или более высокий. Для работы мультидоменной версии Bpium требуется wildcard-сертификат Class 2 или более высокий.
Способы размещения сертификата:
По-умолчанию:
Положите сертификат(.crt) и ключ сертификата в одну директорию с docker-compose.yml и назовите их cert
и cert-key
соответственно.
Свой:
Нужно поменять пути для сертификата и ключа в файле docker-compose.yml:
secrets:
cert:
file: ./cert
cert-key:
file: ./cert-key
Настройки Бипиума хранятся отдельно для каждого контейнера и указаны в секции environments, в формате:
HTTPS: 'true'
SERIAL_NUMBER:'0000-0000-0000-0000'
COOKIE_SECRET:'somestring'
SCRIPTS_TOKEN_SECRET: 'anotherstring'
Учтите: если ваша конфигурация состоит из нескольких серверов - вам потребуются дополнительные настройки.
Список с описанием всех переменных вы можете найти по этим ссылкам: Bpium BPM S3
Одна из особенностей контейнерных технологий - отсутствие следов. Если контейнер выйдет из строя или будет перезапущен, то все внутри данные контейнера будут утеряны. Это является проблемой, если в контейнере содержится база данных. Для этого случая в Docker есть возможность связывать элементы файловой системы контейнера с файловой системой хоста. Это и позволяет сохранить данные баз данных. В проекте это реализовано следующим образом:
База данных Redis хранится по пути: /home/bpium_data/redis/appendonly.aof
База данных и настройки Postgres хранится по пути: /home/bpium_data/postgres/
Процедура запуска контейнеров состоит всего из одного этапа - что является преимуществом контейнерного решения.
Введите команды, если необходимо - с правами суперпользователя:docker-compose up -d
Это запустит процесс разворачивания необходимых контейнеров согласно настройках в файле docker-compose.yml
Вуаля! Если все сделано верно - то Бипиум готов к работе.
Убедимся что контейнеры запущены и работают исправно:docker ps
Если все хорошо - вы должны увидеть следующее:
Теперь ваш Бипиум должен быть доступен по доменному имени/адресу хоста. Сам вход в приложение описан здесь.
Данный раздел находится в разработке.
Для обновления приложения Бипиума до последней версии нужно выполнить команду:
docker pull bpium:latest && docker pull bpm:latest && docker pull bpium-s3:latest
Это запустит процесс синхронизации с хранилищем образов и загрузит самые новые.
Вы так же можете указать конкретную версию, к примеру: bpium:1.6.6
Вам нужно перезапустить контейнеры, чтобы Docker использовал новые образы: docker-compose up -d
Ваш Бипиум обновлен!
Для диагностики и изучения возможных проблем с Бипиумом вы можете использовать логирование Docker.
Сначала, нужно узнать имя интересующего вас контейнера.
Для этого введите команду:docker ps -a
Вам будут показаны все контейнеры, включая неработающие.
Для доступа к логам контейнера достаточно ввести следующую команду:
docker logs имя_контейнера
Приложение Bpium самостоятельно не занимается резервированием данных. При необходимости, требуется индивидуальная настройка этих процессов.
Бэкап:
docker exec -i postgres_container_name pg_dump --username pg_username --password pg_password database_name > /path/bpium_dump
docker exec -i postgres_container_name
- исполняет команду внутри контейнера в интерактивном режиме
pg_dump
- утилита для создания бекап-файла данных
--username pg_username
- имя пользователя базы данных (по-умолчанию postgres
)
--password pg_password
- пароль пользователя базы данных (см. docker-compose.yml)
database_name
- имя базы данных (по-умолчанию bpium_database
)
/path/bpium_dump
- указывает, куда будет сохранен дамп в системе хоста
docker exec -i postgres_container_name pg_restore --username pg_username --password pg_password database_name < /path/bpium_dump
docker exec -i postgres_container_name
- исполняет команду внутри контейнера в интерактивном режиме
pg_restore
- утилита для восстановления данных из бекап-файла
--username pg_username
- имя пользователя базы данных (по-умолчанию postgres
)
--password pg_password
- пароль пользователя базы данных (см. docker-compose.yml)
database_name
- имя базы данных (по-умолчанию bpium_database
)
/path/bpium_dump
- указывает, из какого дампа будет восстановлена база
Достаточно переместить директорию с базой и запустить контейнер с базой.
К примеру, нам нужно переместить на другой диск:
mv /home/bpium_data/postgres /mnt/sdb1/