DevOps Roadmap
Applied • compact • dark

В один файл • без сборки • для nginx

Классический DevOps путь без энциклопедии

Цель — не перечислить всё на свете, а довести тебя до рабочего продакшен‑пайплайна: Linux → сети → Git → CI/CD → Docker → Kubernetes, а дальше — «обвязка» для продакшена: Vault, база, Redis, мониторинг/логи, ingress, бэкапы, релизы.

Прогресс 0%
Отметки сохраняются в браузере (localStorage).
Быстрый старт (60–90 минут)
  1. Подними VM (Ubuntu/Debian) + SSH + базовый hardening.
  2. Задеплой «hello» сервис через CI → Docker image → (опц.) k3s.
  3. Добавь метрики/логи и один полезный алёрт.

Roadmap

Нажимай на карточки — раскрываются «что сделать» + мини‑лаба. Галочка — этап закрыт.

Core путь Обвязка
Фокус
  • процессы/сигналы, файлы/FS, права, users/groups
  • systemd (unit-файлы), журналы (journald)
  • сеть на хосте: ip/ss, маршруты, DNS резолв
Мини‑лаба (выходной артефакт)
  • systemd‑сервис для простого HTTP‑процесса
  • логирование в journald + logrotate (если нужно)
  • healthcheck и простой скрипт деплоя
Команды‑must
ssipjournalctlsystemctl curltarrsyncgrep/sed/awk
Хост‑hardening
SSH ключи, sudo, firewall, обновления, fail2ban (по желанию).
Диск и бэкапы
Где лежит что, как бэкапить и проверять восстановление.
Фокус
  • TCP/UDP, порты, соединения, MTU/фрагментация (на уровне «понимаю симптомы»)
  • DNS: A/AAAA/CNAME, кеш, TTL, распространённые фейлы
  • HTTP: статусы, headers, reverse proxy, TLS рукопожатие
Мини‑лаба
  • поймать и объяснить 3 проблемы: DNS, TLS, маршрутизация
  • tcpdump: увидеть запрос/ответ, сопоставить с логами nginx
Инструменты
digcurl -vopenssl s_clienttcpdump traceroutemtr
Reverse proxy (nginx)
TLS termination, headers, timeouts, upstream healthchecks.
Firewall/NAT
минимальный набор правил + понимание что блокируется.
Фокус
  • ветки, MR/PR, code review, конфликт‑резолв
  • rebase vs merge, теги/релизы, semver
  • git hygiene: маленькие коммиты, сообщения, changelog
Мини‑лаба
  • сделай репо с сервисом + инфраструктурой (docker compose)
  • настрой правила MR: проверки, approvals, protected branches
Must
rebasecherry-picktags conventional commits
Git platform
GitLab/GitHub/Gitea: permissions, protected branches, CODEOWNERS.
Artifacts/Registry
Храни Docker images и билд‑артефакты, версии и retention.
Фокус
  • pipeline: lint → test → build → scan → push → deploy
  • артефакты, кеши, переменные, environments
  • стратегии релиза: blue/green, canary, rollback
Мини‑лаба
  • собирай multi‑stage Docker image
  • публикуй в registry и деплой в dev окружение
  • одна проверка безопасности (secret scan или image scan)
Практично
pipeline templates manual approval rollback job env-per-branch
IaC (минимум)
Terraform для инфраструктуры + Ansible для конфигов (по мере надобности).
Secrets в CI
Не хранить в репо: masked vars, vault, короткие токены.
Фокус
  • Dockerfile: layers, multi-stage, non-root, healthcheck
  • docker compose: сети, тома, env/secrets
  • логирование/наблюдаемость в контейнере
Мини‑лаба
  • compose: сервис + postgres + redis
  • миграции БД при старте (без ломания продакшена)
  • просмотр логов и метрик (хотя бы /metrics)
Чек‑лист образа
small image non-root read-only fs (опц.) labels SBOM (опц.)
Container registry
Harbor/Nexus/GitLab registry: retention, подписывание (опц.).
Ingress/Proxy
Traefik/NGINX: TLS, маршрутизация, rate limiting.
Фокус
  • Deployments/Services/Ingress, configmaps/secrets
  • readiness/liveness, resources (requests/limits)
  • RBAC, namespaces, basic NetworkPolicy
Мини‑лаба
  • k3s/kind: задеплой сервис + ingress + TLS
  • helm chart или kustomize
  • HPA по метрикам (хотя бы CPU)
Практично
helm kustomize kubectl debug rollout
GitOps (опц.)
Argo CD/Flux: деплой из git, promotion окружений.
Storage (PV/PVC)
Понимать CSI, бэкап PV, стратегии обновления stateful.
Зачем
  • секреты вне git и вне CI переменных
  • rotation, leases, audit
  • K8s auth + policies
Мини‑лаба
  • выдать динамический DB credential (или имитация)
  • подключить сервис через k8s auth
Реально нужно
auditpoliciesk8s authrotation
Sealed/External Secrets
Если Vault не нужен прямо сейчас: дешёвый вариант для K8s.
Least privilege
Роли/политики так, чтобы компромисс не был фатальным.
Фокус
  • миграции, pool, ограничения, индексы (на уровне эксплуатации)
  • бэкап/восстановление, проверка restore
  • мониторинг: connections, locks, slow queries
Мини‑лаба
  • план бэкапа + restore drill раз в неделю (хотя бы вручную)
  • алёрт: «заканчиваются connections» / «replication lag» (если есть)
Критично
backuprestoremigrationspool
Pooling
PgBouncer: чтобы сервис не убивал БД соединениями.
DR (RPO/RTO)
Понимать, что потеряешь и как быстро восстановишь.
Фокус
  • кеш‑инвалидация, TTL, key design
  • персистентность (RDB/AOF) — понимать риски
  • алёрты: memory, evictions, latency
Мини‑лаба
  • кеш для одного endpoint + измерение latency до/после
  • alёрт на evictions
Практично
TTLevictionsAOF/RDB
Rate limiting
Redis‑based лимиты или встроенные в proxy/ingress.
Sessions
Если sticky‑sessions не хочется — Redis как shared storage.
Фокус
  • SLI: latency, error rate, saturation
  • алёрты по симптомам + простые runbooks
  • логи: структура, correlation id, retention
Мини‑лаба
  • дашборд «сервис в 5 метриках»
  • 1 алёрт: рост 5xx или latency p95
  • runbook на 10 строк
Стек
prometheusalertmanagergrafana lokiotlp (опц.)
SLO
Понять error budget и перестать алёртить «по CPU».
Incident
runbook → инцидент → postmortem → action items.

Мини‑проект: продакшен‑вертикаль

Собери один маленький сервис «под ключ». Это лучше любых списков технологий.

Что собрать

  • Простой API (например /health и /hello) + метрики (/metrics).
  • Docker image (multi-stage, non-root).
  • CI pipeline: test → build → push → deploy.
  • Deploy: docker compose или k3s.
  • Наблюдаемость: Grafana dashboard + 1 алёрт + лог‑корреляция.

Что показать как результат

  • Репозиторий: сервис + infra (compose/helm) + pipeline.
  • Runbook на 10 строк (как чинить типовые фейлы).
  • Скрин дашборда и алёрта (или экспорт JSON дашборда).
  • Запись: «rollback за 2 минуты» (скрипт/джоба).
Совет
Если времени мало — делай всё на одной VM: compose → потом мигрируй в k3s. Важно научиться доставлять изменения безопасно, а не собирать коллекцию технологий.

Чеклист готовности

Если это закрыто — ты уже не «теоретик».

Операционка

  • умею поднять и сопровождать systemd‑сервис
  • умею найти причину 5xx / timeout / DNS fail
  • понимаю логи и сети на хосте

Доставка

  • CI: тесты+билд+образ+артефакты
  • CD: deploy + rollback
  • секреты не текут в репо

Продакшен

  • метрики/логи/алёрты
  • бэкап/restore drill
  • runbooks + postmortem шаблон