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

План действий на первый год

Этот план превращает roadmap в последовательность действий. Он итеративный: каждый этап заканчивается работающим артефактом, а не «прочитанной главой». Сроки — ориентир: если месяц занял два — это нормально, если этап сжался до двух недель — проверь, не пропустил ли ты практику.

Сквозной pet-проект на весь год: сервис-обработчик событий — небольшое HTTP API и worker, которые принимают события, сохраняют их в PostgreSQL и публикуют метрики. Важны не экран и фреймворк, а воспроизводимая сборка, миграции, резервные копии, деплой, алерты и восстановление.

Задача — уверенность в Linux, Git, Bash и сетях. Без неё любая cloud-платформа превращается в магию, а диагностика — в угадывание.

  • Установи Debian/Ubuntu LTS в VM или контейнерной лаборатории; Arch/Omarchy оставь опциональным рабочим местом.
  • Освой процессы, права, systemd, SSH, journalctl, ss, ip, dig, curl, tcpdump.
  • Освой Git, Bash с безопасной обработкой ошибок и базовые принципы POSIX shell.
  • Разбери TCP/IP, DNS, HTTP, TLS и reverse proxy на работающих примерах.
  • Изучи Python: виртуальные окружения, argparse, subprocess, HTTP-клиент, JSON/YAML, логирование и pytest.
  • Напиши CLI для health-check серверов, сертификатов, HTTP-endpoint’ов и свободного места.
  • Освой SQL и PostgreSQL: схема, индексы, транзакции, блокировки, миграции и EXPLAIN ANALYZE.
  • Реализуй HTTP API и worker без обязательной привязки к фреймворку; затем сравни один лёгкий Python-фреймворк с чистым WSGI/ASGI-контрактом.
  • Изучи OCI-образы, namespaces, cgroups, filesystem layers и rootless-контейнеры.
  • Собери воспроизводимый образ приложения через Docker или Podman; не используй latest.
  • Запусти API, worker и PostgreSQL в Compose-совместимой среде.
  • Настрой CI: format → lint → test → build → scan → publish; версии actions и базовых образов закрепи.
  • Добавь миграции, health/readiness checks и проверку restore из резервной копии.

Если цель — именно DevOps, этот блок не нужно откладывать до десятого месяца. Уже в первый месяц добавь Linux, Git, Bash и базовую диагностику сети; во второй — Docker и простой CI. Такой ранний инфраструктурный контур не заменяет основной путь Fullstack, но позволяет сразу проверять приложение как эксплуатируемую систему.

  • Переведи ежедневную работу в терминальный стек: tmux глубоко и Neovim глубоко, сценарии использования — в Рабочее место как у профи. К этому моменту ты уже знаешь язык и бэкенд — редактор и мультиплексор заходят на готовую почву.
  • Упакуй приложение в Docker: многоступенчатые Dockerfile, docker-compose.yml (App + PostgreSQL + Redis + Nginx).
  • Настрой CI/CD в GitHub Actions: lint → test → build → deploy.
  • Арендуй VPS (Hetzner или DigitalOcean), настрой Ubuntu Server.
  • Настрой Nginx reverse proxy + SSL через Let’s Encrypt.
  • Добавь мониторинг: Prometheus + Grafana (Node Exporter, cAdvisor), алерты в Telegram.
  • Настрой бэкапы PostgreSQL и проделай restore drill: восстанови базу из копии на чистую машину по инструкции, а не «проверь, что бэкап создаётся».
  • Добавь SBOM и подпись образов в CI: Syft для SBOM, Cosign для keyless-подписи по дайджесту.
  • Проведи учебный инцидент и напиши postmortem: смоделируй падение сервиса, пройди severity/роли/таймлайн, выпиши corrective actions.
  • Проделай «боевое крещение»: убей контейнер на сервере и восстанови по пайплайну.
  • Освой Terraform/OpenTofu: HCL, state, remote backend, locking, modules, IAM и drift.
  • Подними лабораторный Kubernetes через kind или k3d; изучи API, controllers, Service, probes, requests/limits и RBAC.
  • Добавь NetworkPolicy, PodDisruptionBudget, secrets management и rollout/rollback.
  • Опиши архитектуру отказов, SLO и план восстановления; не масштабируй «на миллион» без измерений.
  • Контрибьють в open source — начни с документации и маленьких багфиксов в инструментах, которыми пользуешься.
  • Изучи Go после Python: CLI, HTTP, concurrency, тестирование и маленький Kubernetes-aware инструмент.
  • Делись знаниями: блог, выступления, менторство. Обучая других, учишься сам.

Отмечай чекбоксы в своей копии плана (или веди его как issue в репозитории pet-проекта). Раз в месяц — ретроспектива: что сделал, где застрял, что убираешь или добавляешь. План — инструмент, а не начальник.