Hero Image
CI/CD и инфраструктура для Dating-сервиса

Инфраструктура и CI/CD для продакшен запуска Dating-сервиса Клиент Dating-сервис Puzzle Master Задача Стартап разработал бэкенд на Nest.js + фронтенд на Angular и был готов к запуску, но не имел никакой инфраструктуры: деплой был ручным, не было CI/CD, мониторинга, бэкапов и разделения dev/prod окружений. Требовалось выстроить полный DevOps-стек с нуля под продакшен. Решение 1. Контейнеризация приложения Multi-stage Dockerfile для backend (Nest.js + Prisma, non-root пользователь) Multi-stage Dockerfile для frontend (Angular 12, legacy OpenSSL, Nginx для статики) Docker Compose с полным стеком: PostgreSQL 15, Redis 7, imgproxy, Nginx Healthchecks и depends_on для правильного порядка запуска Раздельные окружения dev и prod в /opt/dev и /opt/prod 2. GitLab CI/CD Миграция репозиториев с Bitbucket на GitLab Пайплайны для backend и frontend: build → push → deploy GitLab Container Registry для хранения Docker образов Автоматический деплой в dev, ручной trigger для prod SSH деплой на VPS через SSH_PRIVATE_KEY 3. Nginx Reverse Proxy Универсальный конфиг через envsubst для dev/prod SSL/TLS (TLSv1.2, TLSv1.3) с сертификатами Cloudflare Проксирование /api/* → backend:4000, /* → frontend:80 Редирект www → основной домен (301) Отдельный стек imgproxy с SSL терминацией 4. Безопасность (Ansible) Настройка сервера через Ansible: SSH только по ключам, отключён root UFW Firewall: открыты только порты 80, 443, кастомный SSH Доступ к БД только через SSH Tunnel (Beekeeper Studio) Секреты в переменных GitLab CI/CD 5. Мониторинг Prometheus + Grafana с автоматическим провижинингом дашбордов Exporters: Node, cAdvisor, Postgres, Redis, Nginx, Blackbox 5 Grafana дашбордов: сервер, Docker контейнеры, PostgreSQL, Redis, Nginx Alertmanager с интеграцией в Telegram, алерты на CPU/RAM/Disk/API/SSL 6. Бэкапы БД Автоматический pg_dump каждый час Сжатие gzip и загрузка в Cloudflare R2 (S3-compatible) Prometheus метрики бэкапов: успех, размер, timestamp Алерты: DatabaseBackupMissing, DatabaseBackupFailed, DatabaseBackupSize`Anomaly Технологии GitLab CI Docker Ansible Prometheus Nginx PostgreSQL Результаты ✅ Деплой: git push в main → автоматическая сборка и деплой на сервер ✅ Окружения: полное разделение dev и prod на одном VPS ✅ Мониторинг: 5 дашбордов, алерты в Telegram по 6 категориям ✅ Бэкапы: автоматический pg_dump каждый час в Cloudflare R2 ✅ Безопасность: UFW, SSH по ключам, БД закрыта извне ✅ Масштабируемость: архитектура готова к выносу БД на отдельный сервер

Hero Image
Мониторинг Prometheus + Grafana

Observability стек для микросервисной архитектуры Клиент Начинающий стартап Задача Компания перешла на микросервисную архитектуру (15+ сервисов), но не имела централизованного мониторинга. Проблемы обнаруживались только по жалобам пользователей через 30+ минут. Требовалось внедрить полноценный observability стек для быстрого выявления и диагностики проблем. Решение 1. Архитектура мониторинга Prometheus для сбора метрик Grafana для визуализации Loki для централизованных логов Jaeger для distributed tracing Alertmanager для уведомлений 2. Сбор метрик Автоматическое обнаружение сервисов в Kubernetes Метрики приложений (custom metrics) Системные метрики (node-exporter) Метрики БД (postgres-exporter, redis-exporter) 3. Визуализация в Grafana Дашборды для каждого микросервиса Общий дашборд инфраструктуры SLA/SLO метрики Business метрики (RPS, конверсия) 4. Централизованные логи (Loki) Агрегация логов всех сервисов Поиск по логам через Grafana Корреляция логов с метриками 5. Distributed Tracing (Jaeger) Трейсинг HTTP запросов между сервисами Визуализация цепочек вызовов Поиск узких мест (bottlenecks) Анализ latency по сервисам 6. Алертинг Алерты в Telegram Эскалация критичных проблем On-call ротация Автоматическое создание инцидентов Технологии Prometheus Grafana Kubernetes Docker Helm Linux Результаты ✅ MTTD: обнаружение проблем с 30 минут до 1 минуты ✅ MTTR: время восстановления сократилось на 60% ✅ Алерты: автоматические уведомления в Telegram ✅ Visibility: полная прозрачность работы всех сервисов ✅ Capacity planning: данные для планирования ресурсов