Перейти к содержимому

1. Что такое DevOps и CI/CD

Иллюстрация к уроку

DevOps — это не должность и не инструмент. Это культура, которая ломает стену между разработкой и операциями, чтобы код доезжал до пользователей быстро и надёжно.

Классический сценарий до DevOps эры:

Developer: "Я написал фичу, она работает!"
Ops: "Передай мне файлы"
Developer: "Вот ZIP архив"
Ops: "На сервере всё сломалось"
Developer: "У меня работает!"
Ops: "У тебя другая версия Node!"
Developer: "Не моя проблема..."

Результат: недели на деплой, ночи поддержки, хаос.

DevOps объединяет:

  • Культуру — сотрудничество вместо стен между командами
  • Практики — автоматизация всего рутинного
  • Инструменты — CI/CD, контейнеры, мониторинг
  1. Автоматизация — всё что можно автоматизировать — автоматизируй
  2. Быстрая обратная связь — узнать о баге через 5 минут, не через неделю
  3. Маленькие изменения — много маленьких деплоев лучше одного большого
  4. Измеримость — метрики, логи, мониторинг
  5. Восстановление — система должна уметь восстанавливаться сама

Непрерывная интеграция — практика частого слияния кода в общую ветку с автоматической проверкой:

Developer pushes code
Run linting
Run unit tests
Run integration tests
Build application
Report result (✅ или ❌)

Цель CI: поймать баги сразу, пока контекст ещё свеж.

Непрерывная доставка — код всегда готов к деплою:

CI passed
Build Docker image
Push to registry
Deploy to staging
Run smoke tests
Ready for production

Полная автоматизация — код идёт в production автоматически при прохождении всех тестов:

Every commit to main
CI passes
Auto-deploy to production
Monitor metrics
ИнструментОсобенности
GitHub ActionsВстроен в GitHub, бесплатный tier
GitLab CIВстроен в GitLab, мощный
CircleCIБыстрый, хорошие параллельные jobs
JenkinsSelf-hosted, очень гибкий
Docker — контейнеры
Docker Compose — мульти-контейнер локально
Kubernetes — оркестрация в production
AWS — полный контроль, максимальная гибкость
Vercel — идеален для Next.js/фронтенда
Railway — простота + мощь для бекенда
Render — хороший бесплатный tier
┌─────────────────────────────────────────────┐
│ PLAN → CODE → BUILD → TEST → RELEASE → │
│ DEPLOY → OPERATE → MONITOR → PLAN ... │
└─────────────────────────────────────────────┘
Окно терминала
# 1. Разработчик пишет код
git checkout -b feature/user-auth
# ... пишет код ...
git commit -m "feat: add JWT authentication"
git push origin feature/user-auth
# 2. GitHub Actions запускается автоматически
# Lint → Tests → Build → OK ✅
# 3. Создаётся Pull Request
# Code review от команды
# 4. Merge в main
# Автоматический деплой на staging
# 5. QA тестирует
# Апрув → деплой в production
# 6. Мониторинг
# Sentry следит за ошибками
# Метрики в норме ✅

DORA (DevOps Research and Assessment) выделяет 4 ключевые метрики:

1. Deployment Frequency
Как часто деплоите?
Elite: Multiple times per day
High: Weekly - Monthly
2. Lead Time for Changes
Сколько от коммита до production?
Elite: < 1 hour
High: 1 day - 1 week
3. Change Failure Rate
% деплоев вызывающих проблемы?
Elite: 0-15%
High: 16-30%
4. Time to Restore
Сколько восстанавливаетесь после инцидента?
Elite: < 1 hour
High: < 1 day
  • DevOps — это культура и практики, а не инструменты
  • CI — автоматическая проверка кода при каждом пуше
  • CD — автоматическая доставка кода в production
  • Маленькие частые деплои лучше редких больших
  • Мониторинг и логирование — обязательны
  • DORA метрики помогают измерить зрелость DevOps практик

Визуализация DevOps-цикла — непрерывный поток от кода к продакшену: