← На главную
Программа курса
· 22 блока, 216 уроков
Каждый урок — 30 минут теории, 30 минут управляемой практики и домашняя работа на час-два. Практика в трёх средах: локальный стенд, VPS или bare-metal, Yandex Cloud.
01. Введение в профессию и рабочее окружение
Понять, чем на самом деле занимается DevOps-инженер, как устроена доставка ПО, и собрать себе рабочее место и три учебных стенда.
- 01.01. Что такое DevOps: откуда взялся подход и какие проблемы решает
- 01.02. Роли на рынке: DevOps, SRE, платформенный инженер, системный администратор
- 01.03. Путь от коммита до продакшена: участники, этапы, артефакты
- 01.04. Метрики доставки DORA и зачем инженеру их измерять
- 01.05. Рабочее место инженера: ОС, терминал, редактор, ключи, заметки
- 01.06. Три учебных стенда: локальный, VPS, Yandex Cloud
- 01.07. Как учиться в этой профессии: документация, man, RFC, эксперимент
02. Linux: устройство системы и повседневная работа
Свободно работать в Linux из командной строки, понимать, что происходит в системе, и уметь разбираться в проблемах без подсказок.
- 02.01. Ядро, userspace и дистрибутивы: что выбирать и почему
- 02.02. Установка и первичная настройка сервера
- 02.03. Оболочка и файловая система: навигация и структура каталогов
- 02.04. Пользователи, группы, права доступа, sudo
- 02.05. Процессы, сигналы, приоритеты, /proc
- 02.06. Потоки ввода-вывода, конвейеры, перенаправления
- 02.07. Пакетные менеджеры и управление версиями софта
- 02.08. systemd: юниты, зависимости, таймеры, journald
- 02.09. Диски, разделы, LVM и файловые системы
- 02.10. Сетевые настройки на уровне ОС
- 02.11. SSH: ключи, конфигурация, агент, туннели
- 02.12. Диагностика ресурсов: CPU, память, диск, load average
- 02.13. Изоляция и лимиты: ulimit, cgroups v2, namespaces
03. Git и работа с кодом в команде
Использовать Git осознанно, а не по заученным командам, и организовать командную работу с инфраструктурным кодом.
- 03.01. Модель данных Git: объекты, коммиты, ссылки, индекс
- 03.02. Повседневный цикл работы и отмена изменений
- 03.03. Ветвление, merge, rebase, cherry-pick и конфликты
- 03.04. Удалённые репозитории, теги и версионирование
- 03.05. Модели ветвления в командах: trunk-based, GitHub Flow, GitFlow
- 03.06. Pull request и код-ревью инфраструктурных изменений
- 03.07. Хуки и pre-commit: проверки до попадания в репозиторий
- 03.08. Монорепозиторий и полирепозиторий; структура инфраструктурных репозиториев
04. Bash и автоматизация в командной строке
Писать скрипты, которые можно без страха поставить в cron на продакшене: предсказуемые, идемпотентные, с внятными ошибками.
- 04.01. Синтаксис bash: переменные, кавычки, подстановки
- 04.02. Условия, циклы, функции, коды возврата
- 04.03. Надёжные скрипты: set -euo pipefail, trap, блокировки, идемпотентность
- 04.04. Обработка текста: grep, sed, awk
- 04.05. JSON и YAML в командной строке: jq и yq
- 04.06. Интерфейс скрипта: аргументы, справка, коды выхода, логирование
- 04.07. Качество скриптов: shellcheck и тесты bats
- 04.08. Регулярные задачи: cron, systemd timers и наблюдение за ними
05. Сети: от кадра до HTTPS
Понимать, как проходит сетевой запрос, и уметь локализовать сетевую проблему, а не угадывать.
- 05.01. Модель TCP/IP и что происходит при открытии страницы
- 05.02. Канальный уровень: Ethernet, MAC, ARP, коммутация, VLAN
- 05.03. IP-адресация, маски и подсети (CIDR)
- 05.04. Маршрутизация: таблицы, шлюзы, статические маршруты
- 05.05. DHCP и автоконфигурация адресов
- 05.06. DNS: зоны, записи, кэширование, TTL
- 05.07. TCP и UDP: сокеты, состояния, MTU, повторы
- 05.08. NAT, публикация сервисов, IPv6
- 05.09. Фильтрация трафика: nftables/iptables, security groups
- 05.10. TLS и PKI: сертификаты, цепочки, ACME
- 05.11. HTTP: версии, методы, заголовки, кэширование
- 05.12. Обратный прокси и балансировка L4/L7
- 05.13. Диагностика сети: ip, ss, tcpdump, dig, curl, mtr
- 05.14. Защищённый доступ к инфраструктуре: WireGuard, bastion
06. Python для инженера эксплуатации
Писать небольшие, но нормальные инструменты: там, где bash уже не тянет, а тащить целый фреймворк не нужно.
- 06.01. Когда bash заканчивается: выбор инструмента
- 06.02. Основы языка: типы, структуры данных, функции, исключения
- 06.03. Файлы, пути и форматы данных: JSON, YAML, CSV, TOML
- 06.04. Окружения и зависимости: venv, pip, pyproject, фиксация версий
- 06.05. Работа с HTTP API: клиенты, пагинация, ретраи, таймауты
- 06.06. CLI-утилиты: argparse/click, конфигурация, логирование
- 06.07. Тесты и качество кода: pytest, ruff, mypy
- 06.08. Типовые задачи автоматизации на практике
07. Приложения и данные: что мы вообще эксплуатируем
Понимать устройство сервиса, который надо развернуть и поддерживать, включая базу данных, кэш и очереди.
- 07.01. Анатомия веб-сервиса: прокси, приложение, база, кэш, очередь
- 07.02. Twelve-Factor App с точки зрения эксплуатации
- 07.03. Конфигурация и секреты приложения
- 07.04. Сборка артефактов и зависимости в разных экосистемах
- 07.05. Жизненный цикл процесса: запуск, health checks, graceful shutdown
- 07.06. PostgreSQL для DevOps: доступы, соединения, пулы, базовые настройки
- 07.07. Миграции схемы и безопасные изменения под нагрузкой
- 07.08. Кэш и Redis: сценарии, вытеснение, персистентность
- 07.09. Очереди и брокеры: RabbitMQ и Kafka
- 07.10. Бэкапы данных: логические, физические, проверка восстановления
08. Контейнеры и Docker
Собирать и запускать контейнеры осознанно: понимать, что происходит под капотом, и делать образы, пригодные для продакшена.
- 08.01. Что такое контейнер: namespaces, cgroups и отличие от VM
- 08.02. Образы, слои, OCI и реестры
- 08.03. Dockerfile: инструкции, кэш сборки, .dockerignore
- 08.04. Multi-stage сборки, уменьшение образов, non-root
- 08.05. Запуск контейнеров: сети, порты, переменные, лимиты ресурсов
- 08.06. Данные в контейнерах: volume, bind-mount, права
- 08.07. Docker Compose: локальные среды и учебные стенды
- 08.08. Логи и отладка контейнеров
- 08.09. Реестры образов: Docker Hub, GHCR, приватный registry
- 08.10. Безопасность образов: сканирование, минимизация, секреты при сборке
- 08.11. Экосистема вокруг Docker: containerd, podman, buildah, nerdctl
09. CI/CD: непрерывная интеграция и доставка
Построить пайплайн, который сам собирает, проверяет и выкатывает приложение — и которому можно доверять.
- 09.01. Зачем CI/CD: непрерывная интеграция, доставка и развёртывание
- 09.02. GitHub Actions: модель воркфлоу, события, джобы, шаги
- 09.03. Actions на практике: матрицы, кэш, артефакты, зависимости джоб
- 09.04. Секреты и доступы в CI: OIDC вместо статических ключей
- 09.05. Self-hosted runners: когда нужны и как их содержать
- 09.06. Сборка и публикация образов в пайплайне
- 09.07. Качество в пайплайне: тесты, линтеры, покрытие, quality gates
- 09.08. Безопасность в пайплайне: SCA, SAST, сканирование образов, SBOM
- 09.09. Деплой из пайплайна: варианты доставки на серверы и в кластер
- 09.10. Стратегии выката: rolling, blue-green, canary, feature flags
- 09.11. Управление релизами: версии, changelog, теги, откаты
- 09.12. GitLab CI: сравнение с GitHub Actions и перенос пайплайна
10. Управление конфигурацией: Ansible
Приводить серверы в нужное состояние кодом, повторяемо и без ручных заходов по SSH.
- 10.01. Зачем управление конфигурацией: идемпотентность и декларативность
- 10.02. Установка, inventory, подключения, ad-hoc команды
- 10.03. Playbooks: задачи, обработчики, условия, циклы
- 10.04. Переменные, приоритеты, facts и шаблоны Jinja2
- 10.05. Роли, коллекции и структура репозитория
- 10.06. Секреты: ansible-vault и внешние хранилища
- 10.07. Тестирование и CI для Ansible: lint, check mode, molecule
- 10.08. Границы применимости: cloud-init, Packer, IaC
11. Облака: модель, сервисы, Yandex Cloud на практике
Уметь строить инфраструктуру в облаке, понимая модель ответственности, ограничения и стоимость.
- 11.01. Модель облачных услуг: IaaS/PaaS/SaaS, регионы, зоны, ответственность
- 11.02. Yandex Cloud: организация, облака, каталоги, IAM, сервисные аккаунты
- 11.03. Вычисления: инстансы, образы, диски, группы ВМ
- 11.04. Сети в облаке: VPC, подсети, security groups, публичные адреса
- 11.05. Балансировщики и DNS в облаке
- 11.06. Объектное хранилище и S3-совместимый API
- 11.07. Managed-сервисы: PostgreSQL, Redis, Kafka — что берём и что отдаём
- 11.08. Managed Kubernetes: чем отличается от самостоятельной установки
- 11.09. Стоимость, квоты и контроль бюджета
- 11.10. Карта эквивалентов: Yandex Cloud ↔ AWS ↔ VPS/bare-metal
- 11.11. Serverless: функции и контейнеры по запросу
12. Инфраструктура как код: Terraform
Описывать инфраструктуру кодом, применять её через пайплайн и держать состояние под контролем.
- 12.01. Инфраструктура как код: цели, декларативная модель, состояние
- 12.02. HCL: провайдеры, ресурсы, переменные, выводы, data-источники
- 12.03. Жизненный цикл: init, plan, apply, destroy и граф зависимостей
- 12.04. State: локальный и удалённый, блокировки, чувствительные данные
- 12.05. Модули: структура, версионирование, переиспользование
- 12.06. Организация окружений: dev/stage/prod, workspaces, terragrunt
- 12.07. Дрейф, import и безопасный рефакторинг конфигурации
- 12.08. Terraform в CI: план в PR, применение по merge, policy as code
- 12.09. Провайдеры на практике: Yandex Cloud и локальные
- 12.10. Terraform и Ansible вместе: разделение ответственности
13. Kubernetes: основы
Понимать устройство кластера и уверенно разворачивать приложение в Kubernetes, разбираясь в проблемах самостоятельно.
- 13.01. Зачем Kubernetes и когда он не нужен
- 13.02. Архитектура кластера: control plane, etcd, kubelet, CRI, CNI
- 13.03. API-модель, манифесты и kubectl
- 13.04. Pod: контейнеры, init-контейнеры, sidecar, жизненный цикл
- 13.05. ReplicaSet, Deployment, обновления и откаты
- 13.06. Service, kube-proxy и DNS внутри кластера
- 13.07. Публикация сервисов: Ingress базово и Gateway API на Istio ambient
- 13.08. ConfigMap и Secret: передача конфигурации в приложение
- 13.09. Ресурсы, requests/limits, QoS и вытеснение
- 13.10. Probes: liveness, readiness, startup
- 13.11. Хранилище: PV, PVC, StorageClass, StatefulSet
- 13.12. Job, CronJob, DaemonSet
- 13.13. Где взять кластер: kind локально, kubeadm на VPS, Managed K8s
- 13.14. Отладка в кластере: события, логи, типовые сбои
14. Kubernetes: эксплуатация, безопасность и GitOps
Содержать кластер и приложения в нём: шаблонизация, доступы, сеть и mesh, масштабирование, обновления, GitOps, восстановление.
- 14.01. Helm: чарты, values, релизы
- 14.02. Kustomize, наложения и выбор между Helm и Kustomize
- 14.03. RBAC, ServiceAccount и аудит доступа
- 14.04. Безопасность рабочих нагрузок: securityContext, Pod Security Admission
- 14.05. Сетевые политики и ограничение трафика в кластере
- 14.06. Квоты, LimitRange и разделение кластера между командами
- 14.07. Автомасштабирование: HPA, VPA, Cluster Autoscaler, KEDA
- 14.08. Планирование подов: affinity, taints/tolerations, topology spread
- 14.09. Обновление кластера и узлов: drain, PDB, устаревшие API
- 14.10. GitOps: Argo CD (и Flux) как способ доставки
- 14.11. Операторы и CRD: расширение кластера
- 14.12. Бэкап и восстановление кластера: Velero, etcd, сценарии DR
- 14.13. Istio ambient: устройство и внедрение в кластер
- 14.14. Эксплуатация ambient: политики, наблюдаемость, отладка, цена решения
15. Kubernetes в облаке
Показать то, чего нет на kind: управляемый кластер под Terraform, облачный вход, облачное хранилище, GitOps и мониторинг против настоящего API мастера, и научить считать и убирать за собой облачный кластер.
- 15.01. Managed Kubernetes в облаке: то, чего не показать на kind
- 15.02. Управляемый кластер под Terraform: узлы, группы узлов, автомасштабирование узлов
- 15.03. Облачный вход: LoadBalancer и Ingress/Gateway с настоящим адресом
- 15.04. Облачное хранилище: CSI, StorageClass, снапшоты, расширение тома
- 15.05. GitOps против облачного кластера
- 15.06. Managed-мониторинг и логи облака
- 15.07. Стоимость и эксплуатация облачного кластера
16. Наблюдаемость: метрики, логи, трассировки
Сделать так, чтобы о проблеме узнавали не от пользователей, и чтобы по данным можно было понять причину.
- 16.01. Зачем наблюдаемость: сигналы, мониторинг и observability
- 16.02. Prometheus: модель данных, сбор, service discovery, хранение
- 16.03. PromQL: выборки, агрегации, rate и типовые запросы
- 16.04. Экспортёры и инструментирование приложений
- 16.05. Grafana: дашборды, которые действительно помогают
- 16.06. Алертинг: правила, Alertmanager, маршрутизация, борьба с шумом
- 16.07. Логи: структурирование, сбор и хранение (Loki, ELK)
- 16.08. Распределённая трассировка: OpenTelemetry, Jaeger/Tempo
- 16.09. Наблюдаемость в Kubernetes
- 16.10. SLI, SLO и бюджет ошибок на практике
17. Надёжность и практики SRE
Уметь держать сервис работающим: дежурства, инциденты, постмортемы, отказоустойчивость, нагрузочные проверки.
- 17.01. SRE: что это и как соотносится с DevOps
- 17.02. SLO на практике и политика бюджета ошибок
- 17.03. Дежурства и оповещения: on-call, эскалации, качество алертов
- 17.04. Управление инцидентами: роли, коммуникация, хронология
- 17.05. Постмортемы без обвинений и работа с последствиями
- 17.06. Runbooks и документация эксплуатации
- 17.07. Отказоустойчивость и деградация: таймауты, повторы, circuit breaker
- 17.08. Нагрузочное тестирование и планирование ёмкости
- 17.09. Chaos engineering и учебные аварии
18. Безопасность инфраструктуры и DevSecOps
Встроить безопасность в повседневную работу: доступы, секреты, цепочка поставок, харденинг, реакция на уязвимости.
- 18.01. Модель угроз и базовая гигиена инфраструктуры
- 18.02. Управление доступом: наименьшие привилегии, IAM, MFA, SSO
- 18.03. Секреты: Vault, sops, облачные KMS, ротация
- 18.04. Безопасность цепочки поставок: зависимости, SBOM, подписи
- 18.05. Сканирование: SAST, DAST, SCA, секреты в коде
- 18.06. Харденинг ОС и CIS benchmarks
- 18.07. Безопасность Kubernetes: admission control и policy as code
- 18.08. Сетевая безопасность: сегментация, mTLS, WAF, защита от DDoS
- 18.09. Реагирование на уязвимости: CVE-процесс и патч-менеджмент
- 18.10. Аудит, логи безопасности и требования регуляторов
19. Платформенная инженерия и опыт разработчика
Перейти от «делаю задачи руками» к «делаю инструменты, которыми команды пользуются сами».
- 19.01. Платформа как продукт: зачем IDP и кто её пользователи
- 19.02. Golden path и шаблоны: типовой путь нового сервиса
- 19.03. Self-service окружения и preview-среды на PR
- 19.04. Каталог сервисов и владение: Backstage, service ownership
- 19.05. Документация как код и ADR
- 19.06. Метрики опыта разработчика и обратная связь
- 19.07. Переиспользуемые модули Terraform и Helm-чарты
20. Экономика, процессы и коммуникация
Работать так, чтобы решения были обоснованы деньгами и рисками, а взаимодействие с командами не тормозило поставку.
- 20.01. FinOps: тегирование, аллокация затрат, unit-economics сервиса
- 20.02. Оптимизация расходов: right-sizing, автоскейл, прерываемые ВМ, хранение
- 20.03. Управление изменениями без бюрократии
- 20.04. Работа с бизнесом: SLA, отчётность, приоритеты
- 20.05. Взаимодействие с разработкой: общая ответственность
- 20.06. Onboarding и передача знаний в команде эксплуатации
- 20.07. Планирование инфраструктурных проектов: оценка, декомпозиция, риски
21. AI в эксплуатации
Встроить LLM-ассистента в повседневную работу инженера эксплуатации так, чтобы он реально помогал на дежурстве и при расследовании инцидентов, а не создавал новых рисков.
- 21.01. AI в эксплуатации: что помогает, что нет, границы и риски
- 21.02. Настройка LLM-ассистента в работе инженера
- 21.03. Разбор логов и алертов с LLM
- 21.04. AI на дежурстве: триаж алертов, статус, подсказки runbook
- 21.05. Расследование инцидента с AI: гипотезы, корреляция, таймлайн
- 21.06. AI и постмортем: черновик разбора и извлечение действий
- 21.07. Границы и безопасность: галлюцинации, утечки, проверяемость
- 21.08. Harness: агент = модель плюс обвязка
- 21.09. Устройство обвязки: инструменты, память, контекст
- 21.10. Надёжность обвязки: ошибки, верификация, тихие отказы
- 21.11. Эксплуатация обвязки: разрешения, субагенты, стоимость, наблюдаемость
22. Итоговый проект и выход на работу
Собрать всё изученное в один работающий сервис от кода до продакшена и подготовиться к трудоустройству.
- 22.01. Постановка итогового проекта: требования и правила игры
- 22.02. Вариант A: VPS / bare-metal — Compose, Ansible, nginx, бэкапы
- 22.03. Вариант B: Yandex Cloud — Terraform, Managed K8s, GitOps
- 22.04. Вариант C: локальный стенд — kind, Helm/Kustomize, CI на Actions
- 22.05. Наблюдаемость, безопасность и документация проекта: критерии приёмки
- 22.06. Портфолио и резюме инженера
- 22.07. Подготовка к интервью и дальнейший рост