Кейсы
Похожие кейсы:
PET-проект
Тренировочный PET-проект с микросервисной архитектурой на Node.js. Docker Compose, Redis, MySQL, MongoDB, RabbitMQ и NGINX для масштабируемости, изоляции сервисов и CI/CD автоматизации.
Это микросервисная архитектура для управления абстрактным проектом, взаимодействия с пользователями через Telegram-бота и веб-интерфейсы (SPA и Web Client). Проект состоит из пяти специализированных Node.js сервисов (TGBOT, DWH, PRODUCT, USER, CRON), развернутых в Docker Compose, которые взаимодействуют через API Gateway (NGINX Server в режиме reverse proxy) и брокера сообщений RabbitMQ. Используют различные базы данных (Redis, MySQL, MongoDB) для хранения данных. Система включает полный CI/CD pipeline с автоматической сборкой через GitHub Actions/Runner, деплоем на VPS и уведомлениями о статусе развертывания.
Требовалось обеспечить независимость сервисов друг от друга для возможности их раздельного развертывания и масштабирования, организовать централизованную точку входа для API-запросов, интегрировать различные типы хранилищ данных под специфические задачи каждого сервиса, а также автоматизировать процесс доставки кода от разработки до продакшена с минимальным участием человека.
Задача решена через применение микросервисной архитектуры с контейнеризацией всех компонентов в Docker Compose для упрощения развертывания и изоляции окружений. API Gateway на базе NGINX выполняет роль reverse proxy, маршрутизируя запросы от клиентов к соответствующим сервисам и обеспечивая единую точку входа. Каждый сервис подключен к специализированному хранилищу: Redis для кеширования и очередей, MySQL для структурированных данных, MongoDB для документо-ориентированных данных, RabbitMQ для асинхронной коммуникации между сервисами. CI/CD реализован через GitHub Actions с автоматическими проверками кода, сборкой образов, деплоем на VPS через SSH и уведомлениями в процессе развертывания, а CRON Service исключен из очереди сообщений для выполнения изолированных периодических задач.
Основные возможности
- Микросервисная архитектура
- Множественные клиенты
- Брокер сообщений RabbitMQ
- Docker контейнеризация
- Статический контент
- API Gateway (NGINX)
- Redis, MySQL, MongoDB
- CRON Service
- CI/CD автоматизация
- SSL/HTTPS поддержка