5.5 KiB
8. Требования к инфраструктуре и эксплуатации
8.1 Инфраструктурная схема
Текущая инфраструктурная схема проекта включает прикладные сервисы, сервис секретов, мессенджерные сервисы и вспомогательный worker-контур.
8.2 Сервисы и окружение
Сервисы проекта и способ их развёртывания:
| Сервис | Путь в репозитории | Роль | Deploy mode | Сервер |
|---|---|---|---|---|
| web-frontend | web-frontend |
клиентский и менеджерский веб-интерфейс | dokploy_webhook |
main |
| apollo-backend | apollo-backend |
GraphQL API и бизнес-логика | dokploy_webhook |
main |
| hatchet-worker | hatchet-worker |
фоновый worker-контур | dokploy_webhook |
main |
| tg-bot | tg-bot |
Telegram-контур | dokploy_webhook |
main |
| max-bot | max-bot |
MAX-контур | dokploy_webhook |
main |
| bonus-bot | bonus-bot |
бонусный сервис | dokploy_webhook |
main |
| vault | vault |
сервис секретов | dokploy_webhook |
main |
8.3 Требования к деплою и запуску
Для основных сервисов проекта используется режим dokploy_webhook.
Цепочка развёртывания должна быть следующей:
- изменения фиксируются в Git-репозитории
- изменения публикуются в
main - Dokploy получает webhook-событие
- Dokploy выполняет сборку соответствующего сервиса
- сервис перезапускается с загрузкой секретов из Vault
- после старта выполняются bootstrap-действия, предусмотренные образом и entrypoint-командой
Текущие особенности прикладных сервисов:
web-frontendстартует через загрузку Vault env и запуск.output/server/index.mjsapollo-backendстартует через загрузку Vault env,prisma migrate deployи запускsrc/server.js- bot-сервисы стартуют через общий паттерн загрузки Vault env и запуск
node src/server.js
8.4 Требования к секретам и конфигурации
Сервисы программного продукта должны получать прикладные секреты из Vault.
В конфигурации сервисов допускается хранение только bootstrap-параметров для подключения к Vault. Бизнес-секреты, ключи интеграций и иные чувствительные данные должны загружаться из Vault при старте приложения.
Сервис vault развернут как отдельное приложение на базе образа hashicorp/vault:1.21.3.
Прикладные сервисы используют общий shell-bootstrap load-vault-env.sh, который:
- ожидает доступность Vault по health endpoint
- загружает shared secrets
- загружает project secrets
- экспортирует секреты в runtime environment процесса
8.5 Требования к эксплуатации и надежности
Система должна обеспечивать:
- корректную работу в десктопных и мобильных браузерах
- приемлемое время открытия основных экранов и выполнения действий
- сохранность пользовательских данных
- сохранность истории изменений по заявкам, заказам и бонусным операциям
- фиксацию ошибок интеграционного обмена
- журналирование значимых системных и пользовательских событий
- возможность сопровождения и развития клиентского и менеджерского контуров
8.6 Требования к передаче результата и эксплуатации
По результатам выполнения работ заказчику должны быть переданы:
- исходный код программного продукта
- техническое задание в согласованной редакции
- сведения об используемых компонентах и их версиях
- описание реализованных интеграций и используемых внешних интерфейсов
- схемы взаимодействия модулей и движения данных
- описание пользовательских ролей и прав доступа
- материалы, необходимые для сопровождения и эксплуатации продукта