DevOps: от кода до production
Все объяснения, задачи и лабораторная в одном месте.
Можно сохранить страницу в PDF через печать браузера. Для печати разборы ответов раскрываются автоматически.
1. Value stream, Git workflow и environments
Объяснение
DevOps связывает разработку и эксплуатацию через короткую обратную связь и ответственность за результат. Pipeline превращает изменение кода в проверяемый артефакт. Ручной неописанный шаг делает релиз невоспроизводимым.
Задача для самостоятельного решения
Почему лучше продвигать один собранный артефакт между средами?
Показать разбор ответа
Повторная сборка может подтянуть другие зависимости. Проверенный digest должен совпадать с выпущенным; конфигурация среды передаётся отдельно.
2. Repeatable build и artifact registry
Объяснение
Linux-процесс имеет пользователя, окружение, дескрипторы и код завершения. Сервисный менеджер управляет запуском и рестартами. Бесконечный restart не исправляет неверную конфигурацию.
Задача для самостоятельного решения
Сервис падает сразу после запуска. С чего начать?
Показать разбор ответа
Проверить status и journal, пользователя процесса, пути, права и обязательные env. Не менять сразу несколько параметров без воспроизводимой причины.
3. CI quality gates и secrets
Объяснение
Контейнерный образ — слои файлов и метаданные запуска. Тег может измениться, digest идентифицирует содержимое. Данные приложения должны переживать пересоздание контейнера через внешнее хранилище.
Задача для самостоятельного решения
Почему latest неудобен для отката?
Показать разбор ответа
Завтра он может указывать на другой образ. Записывайте digest или неизменяемый release tag и храните предыдущую версию.
4. Deployment strategies и rollback
Объяснение
CI проверяет интеграцию, CD управляет доставкой. Секреты не должны попадать в логи и артефакты сборки. Проверка pull request с недоверенным кодом требует ограниченных прав.
Задача для самостоятельного решения
Нужно ли выдавать production credentials тестам внешнего PR?
Показать разбор ответа
Нет: код теста способен прочитать окружение. Разделяйте проверку и доверенный этап deployment с минимальными разрешениями.
5. Logs, metrics, traces и alerts
Объяснение
Метрика показывает тенденцию, лог — событие, trace — путь запроса. Alert должен отражать пользовательский ущерб или близкий риск. Мониторинг только загрузки CPU не описывает доступность сервиса.
Задача для самостоятельного решения
CPU 10%, но пользователи получают timeout. Какой сигнал важнее?
Показать разбор ответа
Доля успешных запросов и latency. Причина может быть в ожидании БД или сети, поэтому низкий CPU не доказывает здоровье.
6. Incident response и continuous improvement
Объяснение
Безопасный релиз имеет критерии успеха, наблюдение и путь отката. Миграция данных может быть необратимой для старого кода. Rollback приложения нужно проектировать вместе со схемой БД.
Задача для самостоятельного решения
Почему удаление колонки перед rolling update опасно?
Показать разбор ответа
Старые экземпляры ещё используют колонку. Применяйте расширение схемы, переход кода и последующее удаление отдельными этапами.
Лабораторная работа
Подготовка
Локальный репозиторий и скрипт проверки. Это схема pipeline, не конфигурация конкретного CI-провайдера.
Учебный пример
source revision
-> syntax and unit tests
-> integration tests
-> build immutable artifact
-> deploy to test environment
-> smoke test
-> deploy same artifact to production
-> verify health and retain rollback artifactКак работает пример и что ожидать
Проверенная сборка продвигается без повторного изменения её содержимого. Конфигурация среды задаётся отдельно. Каждый этап имеет условие остановки; зелёная сборка не отменяет проверку реального HTTP-ответа после deployment.
Итоговая работа
Реализуйте pipeline своего сервиса, добавьте migration check, digest артефакта и rollback. Проверьте отказ теста, недоступную среду и неуспешный health-check. Секреты доступны только доверенному этапу deployment.
Проверка результата
1. Опишите исходные данные и условия запуска, чтобы другой человек мог повторить работу.
2. Приложите результат обычного сценария и сравните его с ожидаемым.
3. Проверьте неверный вход, граничный случай и отказ зависимости, если она есть.
4. Объясните выбранное решение и известное ограничение.
5. Сохраните исправления после самопроверки вместе с примером, который раньше не работал.
Как оценить работу
По каждому пункту поставьте 0 (не выполнено), 1 (выполнено с пробелами) или 2 (результат воспроизводим и объяснён). Если обязательный сценарий не работает, вернитесь к нему независимо от общей суммы. Это рубрика самопроверки: сайт не исполняет присланный код и не выдаёт автоматическую оценку проекта.