О платформе
Платформа «Агредатор» построена с использованием открытых технологий и решений. Все компоненты системы являются 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 уведомления об ответах;
- пакетная обработка запросов.