Этап 9 из 15 · ≈ 4 ч

CI/CD и выкатка без простоя

Основа с Junior

Пайплайн, неизменяемый артефакт, стратегии выкатки и миграции схемы.

Что важно знать

  • Пайплайн: сборка → тесты → образ с тегом коммита → стейдж → прод.
  • Один артефакт для всех окружений, различается только конфигурация.
  • Совместимость версий: при rolling update старая и новая версии работают одновременно.
  • Миграции: расширить схему → выкатить код → убрать старое.
  • Canary и blue-green — снижают риск, требуют метрик и быстрого отката.

Критерии освоения

Junior ≈ 4 ч

  • Настраивает CI со сборкой, тестами и линтером для своего сервиса

Практика. Настроить GitHub Actions или GitLab CI для сервиса со сборкой образа.

Middle ≈ 8 ч

  • Собирает образ один раз и продвигает его по окружениям
  • Выкатывает изменения без простоя, совместимые со старой версией
  • Проводит миграцию схемы по схеме expand–contract

Практика. Выкатить переименование колонки в работающем сервисе тремя релизами без простоя.

Senior ≈ 4 ч

  • Выбирает стратегию выкатки (rolling, blue-green, canary) с автоматическим откатом по метрикам

Практика. Внедрить canary-выкатку с автоматическим откатом по доле ошибок.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Из каких этапов состоит CI/CD-пайплайн и чем continuous delivery отличается от continuous deployment?Junior

CI — каждое изменение автоматически собирается и проверяется: сборка, линтеры, юнит-тесты, сканирование, сборка артефакта (образа). CD: continuous delivery — артефакт всегда готов к выкатке, на прод — по кнопке; continuous deployment — каждое прошедшее…

Полный разбор
Какие стратегии выкатки вы знаете и как выбрать подходящую?Middle

Recreate — остановить старое, запустить новое: простой, зато просто. Rolling — постепенная замена экземпляров, без простоя, откат медленный. Blue-green — полная копия окружения, переключение трафика целиком и мгновенный откат, но двойные ресурсы. Canary …

Полный разбор
Чем trunk-based development отличается от GitFlow?Middle

GitFlow — долгоживущие ветки develop и main, ветки фич, релизов и хотфиксов; подходит для продуктов с редкими версионированными релизами (коробка, мобильные приложения), но порождает большие слияния и конфликты. Trunk-based — короткие ветки (часы, день-два)…

Полный разбор
Что такое rolling update при выкатке новой версии?Junior

Экземпляры заменяются постепенно: поднимается новый, проходит readiness, старый снимается. Сервис отвечает всё время.

Полный разбор
Во время rolling update в проде одновременно работают старая и новая версии сервиса. Какое требование из этого следует?Middle

Во время выкатки работают обе версии, поэтому совместимость нужна в обе стороны: старая переживает данные и запросы новой, новая — старой.

Полный разбор
Нужно переименовать колонку name в full_name без простоя при rolling-выкатке. Какая последовательность верна?Middle

Expand–contract в пять шагов: добавить full_name → писать в обе колонки → перелить старые данные порциями → читать из новой → удалить name отдельным поздним релизом.

Полный разбор
Как оформить pull request, который быстро проверят?Junior

Маленький PR (до нескольких сотен строк) с одной задачей. В описании: что сделано и зачем (ссылка на задачу), как проверить (шаги, тесты), на что обратить внимание, скриншоты для интерфейса. Перед отправкой — самопроверка диффа и зелёный CI. На замечания…

Полный разбор
Как устроены слои Docker-образа и почему образ — неизменяемый артефакт?Junior

Образ — стопка слоёв только для чтения, каждый — изменения файловой системы от одной инструкции. Контейнер добавляет сверху тонкий слой для записи. Слои общие между образами и кэшируются. Удаление файла в следующем слое лишь скрывает его — в образе он…

Полный разбор

Разборы темы

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования