
Cloud & DevOps: от локального приложения до надёжного сервиса Урок 18 из 24
Развёртывание, smoke test и проверенный rollback
Выпускаем по версии, проверяем сервис снаружи и возвращаем предыдущий digest по заранее написанной процедуре.
Текст переведён с помощью ИИ.
Этот урок начинается с нуля. Незнакомое слово здесь не считается вашим пробелом: мы сначала создадим образ, затем дадим точное значение и только потом применим его.
Где мы находимся
Полётное повторение. В прошлом уроке была опора config можно показать | secret нужно ограничить | оба вводятся извне image. Не подглядывая, назовите её четыре звена и только затем сравните с записью.
Результат урока
Выпускаем по версии, проверяем сервис снаружи и возвращаем предыдущий digest по заранее написанной процедуре. Не переходите дальше, пока не можете объяснить, что проверяет каждая команда и какой отказ она обнаруживает.
Сначала знакомый образ
После ремонта водопровода мастер не уходит, увидев, что кран установлен. Он открывает воду, проверяет течь и знает, как вернуть прежнюю деталь. Deploy устанавливает версию, smoke test проверяет главный путь, наблюдение ищет последствия, rollback возвращает заранее известный вариант.
Аналогия помогает начать рассуждение, но не заменяет устройство технологии. Ниже мы уточним каждое слово.
Опорный сигнал урока
deploy version X → smoke test → observe → keep X OR rollback Y → verify
Прочитайте цепочку слева направо. Она отвечает не на вопрос «какую команду запомнить», а на вопрос «почему следующий шаг следует из предыдущего».
Новые слова простыми словами
- Deploy — Установка конкретной версии в конкретную среду.
- Smoke test — Короткая проверка критического пользовательского пути после изменения.
- Rollback — Возврат к заранее известной версии или состоянию.
- Migration — Управляемое изменение структуры или смысла данных.
Разбираем без спешки
Rollback должен существовать до инцидента. Он возвращает код, но не всегда возвращает совместимые данные: миграции требуют отдельного плана. После переключения проверяйте пользовательский путь и наблюдайте метрики, а не считайте успешный exit code доказательством.
Сейчас не нужно запоминать формулировку дословно. Найдите в ней причинную связь и привяжите её к опорному сигналу выше.
Сначала предскажите результат
До запуска ответьте на бумаге: что должно измениться, что должно остаться прежним и какой вывод команды подтвердит ваш прогноз? Даже неверный прогноз полезен, если после опыта вы можете объяснить расхождение.
Опыт маленькими шагами
Выполните команды из корня course/cloud-devops-lab. Команды рассчитаны на учебную среду. Перед командой, меняющей сервер или данные, прочитайте её целиком и проверьте текущий каталог. Запускайте блок по одной смысловой группе. После каждой остановитесь и сопоставьте результат со своим прогнозом.
export CLOUDLAB_IMAGE=ghcr.io/OWNER/cloudlab:REPLACE_WITH_SHA
export CLOUDLAB_DOMAIN=cloudlab.example.com
docker compose -f compose.prod.yaml config >/tmp/cloudlab-prod.yml
grep -n 'image:[|]CLOUDLAB_ENV' /tmp/cloudlab-prod.yml
printf 'record previous digest before docker compose up -d\n'
Что именно делает этот опыт
Сценарий фиксирует старый и новый digest, переключает версию, выполняет smoke test и наблюдает сигнал. Rollback считается готовым только после отдельной репетиции. Помните: возврат кода не всегда совместим с уже изменёнными данными.
Что должно получиться
- Конфигурация не использует latest.
- Команда завершается предсказуемым кодом.
- Результат можно повторить на чистой среде.
Соберите целое по опорной схеме
Проведите пальцем или карандашом по четырём блокам и расскажите весь урок одним связным объяснением.
Воспроизведите без подсказки
- Закройте схему и нарисуйте четыре блока по памяти.
- Объясните каждый переход словами «потому что».
- Дайте определение одному новому термину, не повторяя текст дословно.
- Назовите один сигнал, который доказывает результат.
Найдите и исправьте ошибку
Ошибка: «Успешный exit code deploy означает успешный выпуск». Исправление: нужно проверить пользовательский путь и наблюдать систему после изменения.
Задание
Теперь соберите тот же смысл самостоятельно. Можно смотреть на опорную схему; цель — не экзамен на память, а воспроизводимый результат.
Обязательное. Напишите POSIX sh-функцию deploy: сохранить текущий digest в файл, применить новый образ, выполнить smoke test и при его ошибке вернуть сохранённый образ. Отправьте только команды или скрипт POSIX sh без реальных ключей и токенов.
Критерии готовности
- Вы понимаете каждую запускаемую строку.
- Повторный запуск даёт ожидаемый результат или безопасно объяснённое отличие.
- В выводе нет настоящих ключей, токенов и паролей.
- Вы можете показать факт, который подтверждает успех.
Если проверка не прошла, зафиксируйте ожидаемое и фактическое, вернитесь к одному разорванному звену опоры и повторите. Ошибка не отнимает у вас право продолжать обучение.
По желанию. Запишите один возможный отказ и сигнал, по которому вы его заметите.
Открытая перспектива
Следующий урок добавит новую опору: Облако: IaaS, стоимость, IAM и общая ответственность.
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.