Кейсы

1 статей

Кейс: Миграция монолита в Kubernetes и настройка GitLab CI/CD

DevOps Кейсы

Миграция старого монолита в микросервисы

В этом кейсе я хочу рассказать, как мы взяли тяжелое legacy-приложение и перенесли его в современную облачную инфраструктуру.

🎯 Задача

Клиент обратился с проблемой: деплой новых фич занимал несколько часов, сервера регулярно падали от нагрузки, а разработчики боялись вносить изменения в код.

🛠 Что было сделано:

  1. Контейнеризация: Написал многоступенчатые Dockerfile для упаковки приложения.
  2. Оркестрация: Развернул кластер Kubernetes (K8s) и написал Helm-чарты.
  3. CI/CD: Настроил пайплайн в GitLab. Теперь при пуше в ветку main автоматически запускаются тесты, собирается образ и раскатывается в production без даунтайма (Zero-Downtime Deployment).
  4. Мониторинг: Прикрутил Prometheus и Grafana для отслеживания метрик.

📈 Результат

  • Время деплоя сократилось с 4 часов до 10 минут.
  • Инфраструктура автоматически масштабируется при наплыве трафика.
  • Аптайм приложения вырос до 99.99%.
# Пример куска нашего пайплайна:
deploy_production:
  stage: deploy
  image: dtzar/helm-kubectl
  script:
    - helm upgrade --install my-app ./helm-chart -f values.prod.yaml
  only:
    - main