DevOps, CI-CD — итоги
Кратко — что стоит унести из раздела "DevOps, CI-CD". Если пункт кажется туманным — откройте указанную главу или оглавление.
FAQ — Часто задаваемые вопросы
Типичные сбои и ситуации, с которыми сталкиваются новички после раздела. Здесь — что делать и где копать в главах; определения для зачёта — в чек-листе.
Вопрос. "На моей машине работает" — залили на prod, всё упало.
Ответ. Prod и dev должны отличаться конфигом, не "магией". Staging, одинаковые версии зависимостей, CI-сборка артефакта — не zip с ноутбука. Подробнее здесь — основы, жизненный цикл.
Вопрос. Пайплайн зелёный, пользователи жалуются — тесты бесполезны?
Ответ. CI проверяет то, что вы написали в job. Нет e2e, smoke на staging, мониторинга после деплоя — зелёный badge не гарантия. Подробнее здесь — CI/CD. Принципы непрерывной интеграции и доставки, Логирование, мониторинг и наблюдаемость систем.
Вопрос. CI и CD — одно и то же?
Ответ. CI — сборка и тесты на каждый push; CD — доставка на стенд или prod (авто или с approval). Путаница в названии job — частая ошибка новичка. Подробнее здесь — CI/CD. Принципы непрерывной интеграции и доставки, Жизненный цикл пайплайна CI/CD.
Вопрос. Деплой пятница вечером — "быстрый фикс".
Ответ. Риск без дежурного и отката. Change window, feature flags и canary/blue-green снижают blast radius. Подробнее здесь — Стратегии развертывания, основы.
Вопрос. GitHub Actions не запускается — "No workflow runs".
Ответ. Проверьте путь .github/workflows/, ветку в on:, синтаксис YAML, права Actions в repo. Опечатка в branches: — классика. Подробнее здесь — Справочник по Terraform.
Вопрос. Секрет в логе job CI — "мы же удалили из yaml".
Ответ. Логи CI хранятся; маскируйте secrets в UI, не echo пароли. Ротация после утечки обязательна. Подробнее здесь — 8.03 / секреты, Справочник по Terraform.
Вопрос. terraform apply создал 50 ресурсов в prod вместо dev.
Ответ. Неверный workspace / backend / var-file. Отдельные state, явные теги Environment, plan перед apply. Подробнее здесь — Terraform, Инфраструктура как код (Infrastructure as Code).
Вопрос. Drift: в консоли облака кликнули, Terraform хочет всё уничтожить.
Ответ. Ручные правки ломают IaC. Либо import в state, либо запрет ручных изменений, только через PR. Подробнее здесь — Инфраструктура как код (Infrastructure as Code), Terraform — практический путь.
Вопрос. Docker образ :latest на prod — после деплоя непонятно, что крутится.
Ответ. Пиньте immutable tag или digest (sha256:…). Latest — для локальных экспериментов, не для воспроизводимости. Подробнее здесь — 8.06.
Вопрос. Kubernetes pod CrashLoopBackOff после выката.
Ответ. kubectl logs, events, probes — часто неверный env, образ, liveness слишком агрессивный. Откат deployment на предыдущую revision. Подробнее здесь — 8.06, Стратегии развертывания.
Вопрос. Rolling update "завис" — половина pod старые, половина новые.
Ответ. Проверьте readiness, ресурсы node, maxUnavailable. При несовместимости схемы БД — pause rollout и rollback. Подробнее здесь — Стратегии развертывания.
Вопрос. Миграция БД в пайплайне упала — prod наполовину обновлён.
Ответ. Нужны backward-compatible миграции, expand-contract, откат скрипт. Одна транзакция на весь деплой монолита — антипаттерн для zero-downtime. Подробнее здесь — Жизненный цикл пайплайна CI/CD, 8.11 PostgreSQL.
Вопрос. Jenkins "работал год", обновили плагин — всё красное.
Ответ. Pin версий плагинов, тестовый controller, backup job config. Pet-сервер CI без IaC — bus factor. Подробнее здесь — Особенности настройки и эксплуатации CI/CD-конвейеров, CI/CD. Принципы непрерывной интеграции и доставки.
Вопрос. Ansible playbook прошёл, сервис не стартовал.
Ответ. Idempotent "changed" не значит "healthy". Добавьте handlers, verify step, health check после конфигурации. Подробнее здесь — Инфраструктура как код (Infrastructure as Code).
Вопрос. Prometheus алертов нет, сайт лежит.
Ответ. Алерты на симптомы (error rate, latency), не только CPU. Blackbox probe снаружи ловит "pod жив, пользователь нет". Подробнее здесь — Логирование, мониторинг и наблюдаемость систем, Prometheus-практикум, PromQL — галерея.
Вопрос. Логи есть, найти причину 500 среди гигабайт текста невозможно.
Ответ. Структурированные логи, correlation id / trace id, централизация (Loki, ELK). Подробнее здесь — Логирование, мониторинг и наблюдаемость систем, микросервисы / observability.
Вопрос. GitOps: человек зашёл по SSH и поправил prod вручную.
Ответ. Argo CD/Flux вернут drift или конфликт. Prod меняют через merge в git, SSH — только break-glass с аудитом. Подробнее здесь — Использование Git и GitFlow в DevOps-процессах.
Вопрос. Feature branch без CI — merge сломал main.
Ответ. Branch protection: required checks, review, main всегда deployable. Подробнее здесь — Использование Git и GitFlow в DevOps-процессах, 8.03.
Вопрос. SAST/DAST в пайплайне — "слишком долго, отключили".
Ответ. Без сканирования shipping уязвимостей быстрее, инциденты — тоже. Запускайте на PR или nightly, блокируйте critical. Подробнее здесь — 8.07.
Вопрос. DevOps = один человек "и CI, и ночные дежурства"?
Ответ. DevOps — культура и практики, не должность "единственный герой". Runbooks, on-call rotation, документация снимают bus factor. Подробнее здесь — Основы DevOps, Особенности настройки и эксплуатации CI/CD-конвейеров.
Вопрос. Stage "как prod", но на stage всё из mock — prod всё равно падает.
Ответ. Parity по версиям, конфигу, объёму данных порядка величины. Полный parity дорог, но критичные интеграции — на stage с реальными контрактами. Подробнее здесь — Основы DevOps.
Вопрос. Autoscaling добавил pod, БД не выдержала соединений.
Ответ. Горизонтальный scale app требует pool соединений, лимиты, cache. HPA без capacity planning — типичный инцидент. Подробнее здесь — 8.05, 1014 нагрузка.
Вопрос. Откат деплоя — просто git revert?
Ответ. Revert кода + откат образа/миграции, если схема изменилась. Runbook rollback заранее, не импровизация в 3 ночи. Подробнее здесь — Стратегии развертывания.
Вопрос. AgentOps / AI в пайплайне сгенерировал terraform — apply без review.
Ответ. LLM ошибается в IAM и CIDR. Plan human review, policy-as-code (OPA, Sentinel). Подробнее здесь — AgentOps — операции с ИИ-агентами, 6.08 AgentOps.
Вопрос. Как начать, если никогда не видел staging?
Ответ. Пройдите основы DevOps, поднимите простой CI (lint + test) — CI/CD рецепты или lab GitHub Pages. Один зелёный pipeline понятнее теории. Подробнее здесь — intro, GitHub Actions.
Вопрос. DORA-метрики — зачем команде из пяти человек?
Ответ. Deployment frequency, lead time, MTTR, change fail rate — зеркало процесса, не KPI ради KPI. Видно, помог ли CI/CD или только добавили красные job. Подробнее здесь — Жизненный цикл пайплайна CI/CD, CI/CD. Принципы непрерывной интеграции и доставки.
Вопрос. DevOps — что это простыми словами?
Ответ. Практики и культура быстрой и безопасной доставки ПО: dev и ops вместе, автоматизация, мониторинг. Не только "должность DevOps". Подробнее здесь — основы.
Вопрос. CI/CD — что это и зачем нужно?
Ответ. CI — сборка и тесты на каждый push; CD — доставка на стенд/prod. Меньше "ручного FTP на сервер". Подробнее здесь — CI/CD. Принципы непрерывной интеграции и доставки, Жизненный цикл пайплайна CI/CD.
Вопрос. Continuous Delivery и Continuous Deployment — разница?
Ответ. Delivery — готовность к релизу с ручным approval; Deployment — автоматический выкат в prod после green CI. Подробнее здесь — CI/CD. Принципы непрерывной интеграции и доставки.
Вопрос. GitHub Actions — как настроить pipeline?
Ответ. Файл в .github/workflows/*.yml, триггеры on:, jobs steps (checkout, test, deploy). Подробнее здесь — GitHub Actions, галерея рецептов, lab GitHub Pages.
Вопрос. Terraform — что это такое?
Ответ. IaC-инструмент: описываете облако в HCL, plan и apply меняют инфраструктуру декларативно. Подробнее здесь — Terraform, Инфраструктура как код (Infrastructure as Code).
Вопрос. Ansible vs Terraform — когда что?
Ответ. Terraform — создание ресурсов (cloud); Ansible — конфигурация ОС и пакетов на уже существующих машинах. Часто вместе. Подробнее здесь — Инфраструктура как код (Infrastructure as Code).
Вопрос. Kubernetes для начинающих — с чего начать?
Ответ. Сначала Docker и один pod локально, затем Deployment, Service, ingress — раздел 8.06. K8s после понимания контейнера. Подробнее здесь — 8.06 intro.
Вопрос. Staging и production — в чём разница?
Ответ. Staging — копия prod для проверки перед выкатом; prod — живые пользователи. Путать env — классический инцидент. Подробнее здесь — Основы DevOps.
Вопрос. Blue-green deployment — что это?
Ответ. Два идентичных окружения; трафик переключают на "зелёное" после проверки — быстрый откат. Подробнее здесь — Стратегии развертывания.
Вопрос. Canary release — как работает?
Ответ. Новая версия получает малый % трафика, метрики OK — наращивают. Снижает риск big bang. Подробнее здесь — Стратегии развертывания.
Вопрос. Dockerfile — как написать образ приложения?
Ответ. FROM базового образа, COPY кода, RUN сборки, CMD/ENTRYPOINT; multi-stage для prod. Подробнее здесь — 8.06.
Вопрос. Docker Compose — зачем нужен?
Ответ. Локально поднять несколько контейнеров (app + db + redis) одной командой; не замена K8s в prod. Подробнее здесь — Compose, готовые файлы с разбором — Docker Compose — готовые стеки.
Вопрос. Infrastructure as Code (IaC) — определение?
Ответ. Инфраструктура в версионируемых файлах, как код приложения; review и автоматизация. Подробнее здесь — Инфраструктура как код (Infrastructure as Code).
Вопрос. GitOps — что это?
Ответ. Желаемое состояние кластера в Git; Argo CD / Flux синхронизируют. Prod меняют merge, не SSH. Подробнее здесь — Использование Git и GitFlow в DevOps-процессах.
Вопрос. Jenkins vs GitHub Actions — что выбрать?
Ответ. Actions — нативно для GitHub; Jenkins — self-hosted гибкость и legacy. Зависит от стека и compliance. Подробнее здесь — Особенности настройки и эксплуатации CI/CD-конвейеров, Справочник по Terraform.
Вопрос. Prometheus и Grafana — для чего?
Ответ. Prometheus собирает метрики, Grafana рисует дашборды и алерты. Observability после деплоя. Подробнее здесь — Логирование, мониторинг и наблюдаемость систем, практикум, PromQL — галерея.
Вопрос. Rolling update в Kubernetes — что происходит?
Ответ. Постепенная замена pod новой версией образа с контролем maxUnavailable. Подробнее здесь — Стратегии развертывания, 8.06.
Вопрос. Как откатить деплой после ошибки в prod?
Ответ. Rollback deployment/образа, revert миграции по runbook; репетируют до инцидента. Подробнее здесь — Стратегии развертывания.
Вопрос. DevOps инженер — кто это и что делает?
Ответ. Строит CI/CD, инфра, мониторинг, помогает команде ship safely; не "единственный, кто знает пароль от сервера". Подробнее здесь — Основы DevOps, карьера.
Вопрос. ELK Stack / Loki — зачем логи централизовать?
Ответ. Искать причину 500 по всем pod/серверам в одном месте, не SSH по очереди. Подробнее здесь — Логирование, мониторинг и наблюдаемость систем.
Вопрос. SAST и DAST в pipeline — что это?
Ответ. SAST — статический анализ кода; DAST — сканирование running app. Дополнение к code review. Подробнее здесь — 8.07.
Вопрос. Immutable infrastructure — смысл?
Ответ. Серверы не патчат руками — выкатывают новый образ/ВМ. Предсказуемость и откат. Подробнее здесь — Инфраструктура как код (Infrastructure as Code).
Вопрос. DevOps с нуля — с чего учиться?
Ответ. Linux/терминал → Git → Docker → CI (Actions) → облако/IaC → мониторинг. Подробнее здесь — intro, Основы DevOps.
Что запомнить
Главная идея
DevOps — путь проверенного кода от commit до prod — среды, CI/CD, IaC, мониторинг и культура совместной ответственности dev и ops.
Цепочка доставки
| Этап | Суть |
|---|---|
| CI | Сборка, тесты, артефакт на каждый push |
| CD | Доставка на stage/prod с approval или автоматически |
| Observability | Метрики, логи, алерты после релиза |
Карта этапов — Жизненный цикл пайплайна CI/CD.
Инфраструктура
- IaC (Terraform, Ansible) — состояние в Git, plan перед apply.
- Контейнеры и K8s — воспроизводимый runtime; см. 8.06.
- Стратегии выката — rolling, blue-green, canary; см. Стратегии развертывания.
Три правила на каждый день
- Main deployable — зелёный CI обязателен до merge.
- Секреты и prod — только через pipeline и vault, не SSH-правки "на живую".
- Откат — репетируется до инцидента, не во время.
Куда идти дальше
| Тема | Раздел |
|---|---|
| "Забота о коде и данных — о разделе" | "Забота о коде и данных — о разделе" |
| "Микросервисы и интеграция — о разделе" | "Микросервисы и интеграция — о разделе" |
| "Проверка надежности под нагрузкой" | "Проверка надежности под нагрузкой" |
| "Контейнеризация и оркестрация — о разделе" | "Контейнеризация и оркестрация — о разделе" |
Проверьте себя: Чек-лист самопроверки.