Компоненты инфраструктуры
Для интеграционного решения предполагается использовать инфраструктуру из виртуальных машин, так как она обеспечивает большую гибкость на начальном этапе. Однако при необходимости эта же схема может быть развёрнута на физических машинах.
В качестве единой точки доступа будет использован web-сервер nginx. Его задачи:
- предоставление единой точки доступа ко всем web- сервисам интеграционного решения
- поддержка протокола https, работа с SSL- сертификатами
- фильтрация входящего трафика по ip для предотвращения DDOS атак
- проксирование входящих запросов на соответствующие web- сервисы Домино
- балансировка нагрузки в том случае, когда web- сервис Домино реализован в виде пула из нескольких серверов
Web-сервис (хук) для обработки входящих уведомлений от СМ. Принимает и обрабатывает уведомления о создании, изменении состояния и отмене заказа со стороны СМ. Реализуется в виде Домино web-сервера. Для обеспечения достаточной производительности развёртывается пул из 4 однородных web-серверов с балансировкой нагрузки через nginx.
Web-сервис для сборки заказов СМ. Обрабатывает запросы от приложений сборки заказов СМ, изменяет состояние и состав заказов и отправляет уведомления (нотификации) в СМ. Реализуется в виде Домино web-сервера. Для обеспечения достаточной производительности развёртывается пул из 4 однородных web-серверов с балансировкой нагрузки через nginx.
Сервис мониторинга заказов СМ. Контролирует качество процесса обработки заказов СМ на основании метрик, и направляет через телеграмм-бот уведомления обо всех обнаруженных проблемах. Реализуется в виде процедуры планировщика, которая запускается с небольшим интервалом (один раз в минуту).
Сервис формирования реализации по заказам СМ. Формирует документы реализации по отработанным (доставленным) заказам СМ. Реализуется в виде процедуры планировщика, которая запускается каждый час.
Сервис отправки телеграмм-уведомлений. В автоматическом режиме выбирает сообщения из очереди на отправку, отправляет их в соответствующие чаты телеграмм и переносит сообщения в архив. Реализуется в виде процедуры планировщика, которая запускается с небольшим интервалом (один раз в 10 секунд).
Нет комментариев