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

Tooling и Delivery

Для чего модуль

Собрать процесс поставки от коммита до production так, чтобы релизы были частыми, предсказуемыми и безопасными.

Результат после прохождения

  1. Вы проектируете CI/CD pipeline под контекст команды и продукта.
  2. Вы вводите quality gates, которые реально уменьшают риск дефектов.
  3. Вы умеете планировать rollout/rollback без импровизации.
  4. Вы строите post-release наблюдаемость и цикл непрерывного улучшения.

Термины и аббревиатуры

ТерминКоротко
CI/CDНепрерывная интеграция и доставка
CanaryПостепенный релиз
RollbackОткат на стабильную версию
Lead timeВремя до продакшена
CFRДоля неуспешных релизов

Фокус по грейдам

  1. Junior: понимать базовые механики и объяснять их простыми примерами.
  2. Middle: применять тему в продуктовых сценариях с учетом рисков и ограничений.
  3. Senior: управлять архитектурными trade-offs, метриками и эволюцией решения.

Как работать с модулем

  1. На каждом уроке выберите один этап delivery pipeline и формализуйте его.
  2. Любой новый gate сопровождайте обоснованием стоимости/пользы.
  3. После урока обновляйте release runbook и ownership.

Программа модуля

Урок 1. CI pipeline

Цель: обеспечить быстрый и надежный сигнал качества на каждом изменении.

Структура CI

  1. Fast checks (lint, typecheck, unit).
  2. Integration/smoke checks.
  3. Build artifact и проверка воспроизводимости.

Принципы эффективного CI

  1. Быстрый feedback (до 10-15 минут для критичных проверок).
  2. Параллелизация и кэширование.
  3. Детеминированная среда запуска.

Где ломается в проде

  1. CI слишком медленный, разработчики обходят проверки.
  2. Нестабильные тесты дают шумный сигнал.
  3. Нет разделения обязательных и опциональных шагов.

Мини-задача (обязательная)

Нарисуйте текущий CI pipeline и выделите 3 узких места. Для каждого предложите улучшение с оценкой эффекта.

Что спросит интервьюер: как сделать CI быстрее, не жертвуя качеством.

Критерий готовности по уроку: вы можете объяснить CI как систему сигналов качества, а не как «набор job'ов».

Урок 2. CD и релизная стратегия

Цель: доставлять изменения в production управляемо и с контролем риска.

Релизные паттерны

  1. Feature flags.
  2. Canary / phased rollout.
  3. Blue-green (где применимо).

Release readiness

  1. Чеклист готовности релиза.
  2. Явные блокеры и ответственность за принятие решения.
  3. Коммуникация и окно релиза.

Где ломается в проде

  1. Релизы «большими пачками» раз в долгое время.
  2. Нет плана отката до начала релиза.
  3. Flag-логика накапливается и становится новым источником риска.

Мини-задача (обязательная)

Подготовьте rollout strategy для одной рискованной фичи: этапы, метрики мониторинга, trigger для rollback.

Что спросит интервьюер: как вы снижаете риск релиза без потери скорости поставки.

Критерий готовности по уроку: вы можете провести релиз по процессу, который выдерживает ошибки и частичные отказы.

Урок 3. Observability и эксплуатация

Цель: видеть состояние системы после релиза и быстро локализовать проблемы.

Что должно быть в проде

  1. Метрики (latency, error rate, saturation, business KPIs).
  2. Structured logs с корреляцией (traceId/requestId).
  3. Алерты с разумным уровнем шума.

Post-release контроль

  1. Проверка ключевых user journeys.
  2. Сравнение baseline и after по критичным метрикам.
  3. Фиксация аномалий и решений в runbook.

Где ломается в проде

  1. Много логов, но нет корреляции и actionable сигналов.
  2. Алерты слишком шумные и игнорируются.
  3. Нет явного owner post-release мониторинга.

Мини-задача (обязательная)

Соберите observability checklist для релиза: какие метрики/логи/алерты проверяются в первые 30 минут.

Что спросит интервьюер: какие сигналы показывают, что релиз нужно откатывать.

Критерий готовности по уроку: вы можете доказать стабильность релиза данными, а не субъективным ощущением.

Урок 4. Инциденты и улучшение процессов

Цель: превращать инциденты в источник улучшений системы поставки.

Incident flow

  1. Детектирование и triage.
  2. Mitigation и коммуникация.
  3. Root cause analysis.
  4. Corrective/Preventive actions.

Postmortem без обвинений

  1. Таймлайн событий.
  2. Что сработало/не сработало.
  3. Какие изменения процесса предотвращают повтор.

Где ломается в проде

  1. Инциденты тушат, но не закрывают системную причину.
  2. Нет владельцев corrective actions.
  3. Одни и те же сбои повторяются через 1-2 релиза.

Мини-задача (обязательная)

Подготовьте postmortem template и заполните его на учебном кейсе релизного инцидента.

Что спросит интервьюер: как вы делаете так, чтобы инциденты реально улучшали процесс команды.

Критерий готовности по уроку: вы можете показать цикл «инцидент -> изменения процесса -> измеримое снижение повторов».

Практика

1. CI critical path map

Нарисуйте pipeline от commit до preview/staging и найдите 3 bottleneck.

Ответьте:

  1. Bundlers q-15: как ускорять CI без потери доверия.
  2. Senior q-16: какие gates должны блокировать PR.
  3. Testing lesson 4: метрики и ownership тестовой операционки.

Артефакт: CI critical path map с колонками job, duration, dependency, cache key, artifact reuse, blocking?, risk if skipped.

Готово, если ускорение не сводится к отключению проверок, а сохраняет доверительный quality signal.

2. Release gate matrix

Соберите gate matrix для PR, merge to main, preview, production, postdeploy 30 min.

Ответьте:

  1. Bundlers q-17: release pipeline с quality gates.
  2. Senior q-12: release strategy, rollout и rollback.
  3. Playbook q-7: risk management в интервью-ответе.

Артефакт: release gate matrix с gate, check, threshold, owner, exception rule, rollback trigger.

Готово, если каждый gate имеет stop condition и понятно, какие проверки blocking, а какие дают warning с follow-up.

3. Rollout/rollback и post-release observability

Для одной рискованной frontend-фичи опишите rollout от 5% до 100% и мониторинг первых 30 минут.

Ответьте:

  1. Senior q-10: frontend observability.
  2. Senior q-13: error budget и release decisions.
  3. Bundlers q-16: asset cache и rollback edge-cases.

Артефакт: rollout/rollback runbook с cohort, feature flag, signals, stop condition, rollback action, owner, comms, asset/cache check.

Готово, если rollback можно выполнить без импровизации и без ожидания нового deploy.

4. Учебный postmortem

Разберите кейс: после релиза выросли frontend exceptions и ChunkLoadError на старых сессиях.

Ответьте:

  1. Senior q-19: postmortem после frontend-инцидента.
  2. Bundlers q-16: почему нельзя удалять previous release files мгновенно.
  3. Bundlers q-17: связь release id, sourcemaps, monitoring и rollback.

Артефакт: postmortem template с timeline, impact, detection gap, root cause, mitigation, corrective actions, owner и due date.

Готово, если postmortem заканчивается не текстом "усилить контроль", а изменением gate, runbook, alert или ownership.

Связь с треками и вопросами

  1. Основные вопросы: Bundlers q-15, q-16, q-17, Senior q-10, q-12, q-13, q-16, q-19.
  2. Мост практики: Tooling and bundle quality и Interview pattern taxonomy: quality-gate -> CI critical path map, release gate matrix, postmortem action tracker.
  3. Повтор через 24 часа: без подсказок объясните commit -> PR gate -> release gate -> rollout -> monitoring -> rollback -> postmortem action.

Критерий готовности

Ready: вы объясняете delivery process как систему сигналов качества, показываете CI critical path, release gate matrix, rollout/rollback runbook и postmortem action tracker.

Partial: вы знаете CI/CD шаги, но не можете назвать owner, stop condition, exception rule или postdeploy signal.

Not ready: вы считаете зеленый build достаточным для релиза, не различаете deploy/release/rollout и не можете описать rollback trigger.

Артефакты после модуля

  1. CI critical path map.
  2. Release gate matrix.
  3. Rollout/rollback runbook.
  4. Post-release observability checklist.
  5. Postmortem template и corrective-action tracker.

Куда дальше

  1. Package Managers и Bundlers
  2. Git для командной разработки
  3. Tooling и Delivery