Карта навыков DevOps-инженера
Roadmap DevOps-инженера с нуля: от Linux и сетей до доставки приложения, инфраструктуры и мониторинга. Закрепляй каждый этап на учебном стенде, а в конце собери проект.
6 этапов 34 темы 34 обязательные темы
Интерактивная карта навыков
Нажимай на кружок темы: раз — «изучаю», два — «готово», три — снять отметку.
Освой Linux, сети и Git
Разбери путь приложения от кода до работающего процесса. Для упражнений используй отдельную виртуальную машину или учебный стенд.
-
Поставка и эксплуатация
Нарисуй путь изменения: код, проверки, сборка, релиз и наблюдение. Объясни, кто отвечает за каждый шаг и что можно автоматизировать.
-
Файлы и командная строка
Создай рабочий каталог, найди конфигурацию и проверь свободное место. Используй абсолютные и относительные пути, man и пакетный менеджер.
-
Пользователи и права
Выдели сервису пользователя, настрой владельца и права файлов. Объясни sudo и umask; исправь отказ в доступе без chmod 777.
-
Процессы и сигналы
Найди PID и потребление ресурсов. Останови процесс через SIGTERM, проверь завершение и объясни, когда нужен SIGKILL.
-
DNS, TCP, HTTP и TLS
Проследи запрос от DNS до ответа HTTP. Проверь адрес, маршрут и порт через dig, ip, ss и curl; отличай таймаут от отказа соединения.
-
SSH и доступ к серверу
Подключись по ключу, проверь ключ хоста и права приватного ключа. Открой только нужные порты и проверь вход до закрытия текущей сессии.
-
Git, ветки и ревью
Сделай изменение в ветке, разреши конфликт и отмени свой коммит через revert. Исключи секреты и временные файлы из репозитория.
Автоматизируй повторяемое
Преврати ручные команды в небольшие сценарии. Проверяй входные данные, коды возврата и поведение при повторном запуске.
-
Потоки и конвейеры
Собери отчёт из текстового лога через grep, sort и uniq. Раздели stdout и stderr и объясни, как перенаправление может затереть файл.
-
Скрипты Bash
Напиши скрипт с аргументами, условиями и циклами. Кавычками защити пути с пробелами; обработай ошибки команд и временные файлы.
-
Python и JSON
Напиши скрипт, который читает JSON, проверяет обязательные поля и выдаёт отчёт. Используй функции и коллекции; обработай неверный формат.
-
Конфигурация и секреты
Отдели код от настроек в YAML, JSON и переменных окружения. Проверь обязательные значения; храни секреты вне Git и не выводи их в лог.
-
Сервисы и таймеры systemd
Запусти скрипт через systemd-сервис и таймер. Проверь журнал, код возврата, права пользователя и поведение при повторном запуске.
Упакуй приложение в Docker
Собери образ и запусти сервис с базой. Проверь сеть, хранение данных и остановку контейнера до автоматизации развёртывания.
-
Образ и контейнер
Собери образ, запусти из него контейнер и прочитай логи. Объясни разницу между образом, процессом и изменяемым слоем контейнера.
-
Dockerfile и кеш сборки
Напиши Dockerfile с явной командой запуска и .dockerignore. Измени код и зависимость отдельно, чтобы проверить повторное использование слоёв.
-
Приложение в Docker Compose
Опиши сервис и базу в compose.yaml. Добавь проверку готовности и убедись, что приложение выдерживает временную недоступность базы.
-
Сети и volumes
Соедини сервисы по именам внутри сети Compose. Проверь опубликованные порты и сохранность данных в volume после пересоздания контейнера.
-
Права и ресурсы контейнера
Запусти приложение без root и лишних привилегий. Ограничь память и CPU, исключи секреты из образа и проверь штатную остановку.
Настрой проверяемый релиз
Выбери GitHub Actions или GitLab CI. Раздели проверки, сборку и развёртывание; каждый релиз должен иметь известную версию и путь отката.
-
Проверки в CI
Запускай проверки и сборку при изменении кода. Задай зависимости jobs и убедись, что неуспешная проверка блокирует выпуск.
-
Артефакт и registry
Опубликуй образ с версией коммита и сохрани digest. Разворачивай один проверенный артефакт на разных стендах без повторной сборки.
-
Права CI и секреты
Выдай job только нужные права. Закрой доступ к секретам для недоверенных изменений, защити окружение выпуска и проверь вывод логов.
-
Развёртывание и откат
Обнови сервис на учебном стенде и верни предыдущую версию. Проверь совместимость конфигурации и миграций: откат образа не отменяет изменения данных.
-
Проверка после релиза
Проверь доступность, ключевой запрос и ошибки после обновления. Останови выпуск при сбое и сохрани версию, результат проверки и причину отката.
Опиши инфраструктуру кодом
На небольшом стенде освой сервер, сеть и управление конфигурацией. Затем разверни сервис в локальном Kubernetes и проверь его поведение.
-
Виртуальные машины и облако
Спланируй VM, подсеть, firewall и права доступа. Для облачного стенда задай бюджет, проверь стоимость и удаление временных ресурсов.
-
Terraform: plan и state
Опиши учебный ресурс, изучи plan и примени изменение. Защити state и доступ к нему; проверь блокировку и различие кода с реальной инфраструктурой.
-
Ansible и повторный запуск
Опиши настройку сервиса через inventory и playbook. Запусти дважды: второй запуск не должен менять уже настроенное без причины.
-
Pod, Deployment и Service
Разверни приложение в локальном кластере. Проверь выбор подов через labels, доступ через Service и обновление через Deployment.
-
Пробы и ресурсы Kubernetes
Настрой readiness, liveness, requests и limits. По очереди вызови отказ каждой пробы при работающем процессе: проверь исключение из трафика и перезапуск.
Наблюдай и восстанавливай
Сервис должен объяснять свои сбои и переживать восстановление. Заверши маршрут проектом с мониторингом, резервной копией и инструкцией по эксплуатации.
-
Метрики и дашборды
Собери метрики в Prometheus и покажи в Grafana трафик, ошибки, задержку и ресурсы. Проверь, что отсутствие данных не выглядит как нулевая нагрузка.
-
Логи и диагностика
Найди ошибку по времени и идентификатору запроса. Сопоставь логи приложения и системы; настрой ротацию и исключи секреты из сообщений.
-
SLI, SLO и алерты
Определи измеримую цель доступности и порог реакции. Вызови учебный сбой, получи уведомление и проверь, понятно ли из него следующее действие.
-
Копия и восстановление
Сделай резервную копию данных и восстанови её на отдельном стенде. Проверь целостность, время восстановления и допустимую потерю свежих данных.
-
Инцидент и инструкция
Разбери учебный отказ: влияние, гипотеза, проверка, восстановление. Сохрани команды в runbook и составь разбор с причиной и профилактикой.
-
Рубеж: сервис в эксплуатации контрольная точка
Собери независимый проект: образ, CI/CD, инфраструктура кодом и мониторинг. Покажи откат и восстановление из копии; приложи README и схему.
-
Собеседование DevOps контрольная точка
Объясни устройство проекта и разбери отказ вслух. Проверь Linux, сети, Docker и CI/CD; отделяй факты от гипотез и фиксируй темы для повторения.
объясни свои решения на собеседовании
Разбери вопросы по Linux, сетям, контейнерам и CI/CD. Начни с уровня junior, проговаривай порядок диагностики и возвращайся к темам, где пока трудно объяснить причину сбоя.