0Pricing
DevOps Bootcamp · Урок

Дымовые тесты, откат и уведомления

Проверяйте, восстанавливайте и документируйте развёртывание

«Дымовые тесты, откат и уведомления» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Развёртывание не заканчивается перезагрузкой

Завершённый сценарий ещё не означает, что приложение работает. Вам по-прежнему нужны дымовые тесты, путь для отката и уведомление. Замкните цикл. 🔁

Проверьте конечную точку дымовым тестом

Обратитесь к реальному маршруту с помощью модуля uri и проверьте, что получен код 200. Если приложение отвечает неправильно, развёртывание должно завершиться с явной ошибкой.

- name: Smoke test
  ansible.builtin.uri:
    url: https://app.example.com/health
    status_code: 200
    return_content: true

Проверьте правильную версию

Пойдите дальше: прочитайте ответ и используйте assert, чтобы подтвердить, что текущая версия совпадает с той, которую Вы только что выпустили.

- ansible.builtin.assert:
    that:
      - "app_version in smoke.content"
    fail_msg: "Wrong version live"

Объедините развёртывание в блок

Объедините развёртывание и тесты внутри block, чтобы одна ошибка могла запустить единый общий путь восстановления.

- block:
    - import_role:
        name: deploy
    - import_tasks: smoke.yml

Откатывайте в rescue

Поместите логику отмены в rescue: повторно разверните предыдущую версию, чтобы неудачный выпуск никогда не оставлял пользователей с неисправным кодом.

  rescue:
    - name: Roll back
      ansible.builtin.git:
        repo: "{{ app_repo }}"
        version: "{{ previous_version }}"
        dest: /srv/app

Всегда снова включайте трафик

Используйте always, чтобы вернуть узел за балансировщик нагрузки независимо от того, прошло развёртывание успешно или было выполнено восстановление. Никогда не оставляйте хост отрезанным от трафика.

  always:
    - community.general.haproxy:
        state: enabled
        host: "{{ inventory_hostname }}"
      delegate_to: lb1

Завершайтесь быстро и понятно

Если что-то не так, остановитесь с полезным сообщением с помощью модуля fail, чтобы в журнале было точно указано, что сломалось.

- ansible.builtin.fail:
    msg: "Health check failed on {{ inventory_hostname }}"

Уведомите команду

Сообщите результат. Задача community.general.slack отправляет сообщение об успехе или ошибке, чтобы команда знала, что развёртывание завершено.

- community.general.slack:
    token: "{{ slack_token }}"
    msg: "Deployed {{ app_version }} ✅"

Электронная почта или чат — решать Вам

Предпочитаете электронную почту? Модуль mail отправит сводку. Подойдёт любой канал; главное — понятный автоматический сигнал о завершении развёртывания.

- community.general.mail:
    to: ops@example.com
    subject: "Deploy {{ app_version }} complete"

Сохраните последнюю рабочую версию

Откат работает только при наличии истории. Запишите previous_version перед развёртыванием, чтобы rescue знал, что нужно восстановить.

vars:
  previous_version: "2.4.0"
  app_version: "2.4.1"

Развёртывание, которому можно доверять

Тестируйте, выполняйте откат при ошибке, всегда восстанавливайте трафик и сообщайте команде. Это полноценное production-grade развёртывание от начала до конца. 🎉

Быстрая проверка

Один раздел гарантирует восстановление трафика.

Итоги

Вы замкнули цикл: дымовые тесты, откат в rescue, повторное включение в always и уведомления команды. Финальный проект завершён! 🏆

Часто задаваемые вопросы

Урок «Дымовые тесты, откат и уведомления» бесплатный?

Да — полный текст урока «Дымовые тесты, откат и уведомления» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Дымовые тесты, откат и уведомления»?

Проверяйте, восстанавливайте и документируйте развёртывание Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Дымовые тесты, откат и уведомления»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Проектирование проекта: роли и инвентарь
  2. Подготовка, усиление защиты и начальная настройка узлов
  3. Поэтапное развёртывание за балансировщиком
  4. Дымовые тесты, откат и уведомления
← Назад к DevOps Bootcamp