Ответ вслух Middle CI/CD спрашивают часто обновлено

Как бы ты построил CI/CD для проекта

Вопрос

Как бы ты построил CI/CD для веб-приложения с нуля?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Начну с проверок на каждый pull request: npm ci, линтер и проверка типов, unit-тесты, сборка. Быстрые шаги идут первыми, независимые джобы параллельно, зависимости кешируются по хешу lock-файла.

Что должно прозвучать в ответе

  • На каждый PR: npm ci, линтер, типы, unit-тесты, сборка

  • Быстрые проверки первыми, независимые джобы параллельно, кеш зависимостей

  • Защита ветки main: мерж только с зелёным CI и ревью

  • Сборка один раз, артефакт (образ) с версией продвигается по стендам

  • Деплой на стенд автоматически, на прод с подтверждением или автоматически при хорошем покрытии

  • План отката и миграции, совместимые с предыдущей версией

Что могут спросить следом

  • Как ускорить пайплайн, который идёт 25 минут?
  • Где хранить секреты и кто к ним имеет доступ?
  • Как откатишься, если после релиза выросли ошибки?

Разбор

Начну с проверок на каждый pull request: npm ci, линтер и проверка типов, unit-тесты, сборка. Быстрые шаги идут первыми, независимые джобы параллельно, зависимости кешируются по хешу lock-файла. Ветка main защищена: влить можно только с зелёным CI и одобренным ревью.

После мержа в main собираю артефакт один раз, например Docker-образ с тегом по SHA коммита. Этот же образ едет на стенд, там прогоняются e2e, и потом он же уходит на прод. Пересобирать для прода нельзя, иначе проверяли одно, а выкатили другое.

Деплой на прод делаю через environment с подтверждением, а когда тестам можно доверять, полностью автоматически. Стратегия rolling или blue-green, миграции обратно совместимые. Секреты в хранилище окружения, а не в коде. И всегда есть откат: предыдущий образ можно вернуть одной командой, а после выкатки смотрю на ошибки и метрики.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме