Перейти к содержанию

Начало урока

CI/CD и развёртывание

Превратить зелёный набор тестов в работающий продакшен-сервис -- автоматически, безопасно и не теряя запросов.

Главная идея: непрерывная интеграция (CI) доказывает, что каждый коммит по-прежнему проходит линтер, тесты и сборку. Непрерывная поставка / развёртывание (CD) берёт этот проверенный артефакт и доставляет его в реальные окружения. Вместе они заменяют ненадёжный ритуал "зайти по SSH и выполнить git pull" на повторяемый конвейер, который машина выполняет одинаково каждый раз.
К концу вы сможете:
  • описать классические стадии конвейера -- линтер -> тесты -> сборка -> развёртывание -- и понять, почему важен порядок;
  • разделять окружения (dev, staging, production) и продвигать один артефакт по ним;
  • работать с секретами в CI, ни разу не закоммитив их в репозиторий;
  • объяснить развёртывание без простоя и сравнить стратегии rolling, blue-green и canary;
  • читать настоящий workflow GitHub Actions и понимать, что даёт каждый шаг.

1. CI и CD -- три термина, которые путают

За тремя буквами скрываются три разные идеи. Если чётко их различать, любой инструмент и любое руководство становятся понятнее.

  • Непрерывная интеграция (CI) -- при каждом push и каждом pull request автоматическое задание выгружает код, ставит зависимости, запускает линтер, прогоняет тесты и делает сборку. Обещание узкое, но мощное: "main всегда компилируется и проходит тесты."
  • Непрерывная поставка (Continuous Delivery, CD) -- каждая зелёная сборка автоматически упаковывается в разворачиваемый артефакт (образ Docker, tar-архив, версионированный бандл) и доставляется вплоть до staging. Кнопку "выкатить в продакшен" всё ещё нажимает человек.
  • Непрерывное развёртывание (Continuous Deployment, тоже CD) -- то же самое, но и последний шаг автоматический: зелёная сборка на main доходит до продакшена без участия человека.

Большинство команд запускают CI плюс поставку, а затем переходят к полному развёртыванию, когда их тесты, мониторинг и откат становятся достаточно надёжными, чтобы отказаться от ручного нажатия. Конвейер один и тот же; различается лишь финальное подтверждение.

Зачем вообще автоматизировать? Ручной деплой -- это чек-лист, который в пятницу в шесть вечера выполняет уставший человек. Конвейер -- тот же чек-лист, который машина выполняет одинаково каждый раз и с логом, который можно проверить. Он убирает целый класс инцидентов вида "у меня же работало" и "я забыл выполнить миграцию".

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя