Базовые концепции непрерывной интеграции и доставки, ключевые термины, преимущества и лучшие практики.
Автоматизация — ключ к быстрой и надёжной доставке кода. Изучите фундаментальные принципы CI/CD, которые лежат в основе современной разработки.
CI/CD — это аббревиатура от Continuous Integration (непрерывная интеграция) и Continuous Delivery/Deployment (непрерывная доставка/развёртывание). Это набор практик и инструментов, которые позволяют автоматически собирать, тестировать и развёртывать код.
Continuous Integration — практика разработки, при которой изменения кода автоматически интегрируются в основную ветку через автоматизированные сборку и тестирование.
Разработчик → Commit → Push → CI Pipeline → Тесты → Сборка
Ключевые принципы CI:
Эти термины часто путают, но между ними есть важное различие:
| Continuous Delivery | Continuous Deployment |
|---|---|
| Код готов к деплою в продакшен | Код автоматически деплоится в продакшен |
| Требует ручного подтверждения | Полностью автоматический процесс |
| Контроль времени релиза | Релиз при каждом успешном пайплайне |
CI → Delivery → [Ручной аппрув] → Production
CI → Deployment → Production (автоматически)
Pipeline — настроенный процесс CI/CD, состоящий из последовательных или параллельных этапов.
Pipeline:
├── Lint (проверка стиля кода)
├── Test (запуск тестов)
│ ├── Unit tests
│ └── Integration tests
├── Build (сборка артефакта)
└── Deploy (развёртывание)
├── Staging
└── Production (после аппрува)
Автоматические тесты находят проблемы сразу после коммита:
❌ Без CI:
Разработчик → Неделя разработки → Ручное тестирование →
Обнаружение конфликтов → Дорогие исправления
✅ С CI:
Разработчик → Коммит → Автотесты (5 мин) →
Ошибка обнаружена → Быстрое исправление
CI/CD берёт на себя повторяющиеся задачи:
Без CI/CD: Релиз раз в месяц → 2 недели тестирования
С CI/CD: Релиз несколько раз в день → Автоматические тесты
Пайплайн выполняется одинаково каждый раз:
Это исключает проблему «работает на моей машине».
Shift Left — практика переноса тестирования и проверки качества на более ранние этапы разработки.
Традиционный подход:
Разработка → Тестирование → Релиз
↑
Позднее обнаружение
Shift Left:
Разработка + Тестирование → Релиз
↑
Раннее обнаружение
Что «сдвигается влево»:
| Термин | Определение |
|---|---|
| Pipeline | Процесс CI/CD из последовательных этапов |
| Job | Единица выполнения с набором шагов |
| Step | Отдельная команда или действие в job |
| Runner/Agent | Сервер, на котором выполняется job |
| Artifact | Файл, созданный в пайплайне (бинарник, образ) |
| Trigger | Событие, запускающее пайплайн |
| Environment | Окружение (dev, staging, production) |
CI/CD — фундамент современной DevOps-культуры:
В следующих темах вы изучите, как реализовать эти практики в GitHub Actions и GitLab CI.
Вопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.