О платформе
Платформа «Агредатор» построена с использованием открытых технологий и решений. Все компоненты системы являются docker-контейнерами, что позволяет гибко использовать разные системы легкой виртуализации (контейнеризации) и управлять размещением частей системы.
Программное обеспечение Агредатора
Ключевыми компонентами и технологиями системы являются:
- контейнеры
docker; - брокер сообщений
RabbitMQ; - SQL база данных
PostgreSQL; - NoSQL база данных
Redis; - система для поддержания и обнаружения сервисов и распределенное хранилища ключ-значение
Consul; - мониторинг и логирование
ELK; - система мониторинга
Prometheus;
Основными языками реализации являются Ruby и Go для функциональных сервисов и Ruby on Rails для частей системы, имеющих пользовательский веб-интерфейс (Административные панели, АРМ операторов и др.)
Платформа спроектирована для работы в различных конфигурациях: на одной машине, на нескольких или с использованием систем оркестрации контейнеров (nomad) и обладает следующими свойствами:
- событийно-ориентированная архитектура (англ. event-driven architecture);
- AMQP-протокол;
- асинхронность;
- согласованность в конечном счёте (англ. eventual consistency);
- гарантия ответа (запрашивающей стороне будет возвращен ответ в случае успеха либо ошибка);
- терпимость к временным отказам частей и сервисов;
- надежная доставка (англ. reliable delivery);
- модульность;
- другие особенности реализуются дополнительными модулями:
- HTTP-транспорт;
- HTTP-push уведомления об ответах;
- пакетная обработка запросов.