0Pricing
DevOps Bootcamp · Урок

Откаты и аварийное восстановление

Спроектируйте и реализуйте эффективные процедуры отката и планы аварийного восстановления в конвейерах CI/CD.

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

Непредвиденные проблемы случаются!

Разработка программного обеспечения не всегда проходит гладко. Иногда новые развертывания вносят ошибки или нарушают работу существующих функций. В таких случаях нужны откаты и аварийное восстановление.

Они необходимы для поддержания стабильности системы и доверия пользователей.

Что такое откаты

Откат — это процесс возврата системы или приложения в предыдущее стабильное состояние после проблемного развертывания. Это похоже на кнопку «отменить» для недавно внесенных изменений.

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

Распространенные способы отката

В зависимости от стратегии развертывания откат можно выполнить несколькими способами:

  • Возврат кода: Развертывание предыдущей заведомо рабочей версии кода приложения.
  • Переключение трафика: Перенаправление пользовательского трафика с неисправной новой версии обратно на старую.
  • Откат базы данных: Возврат изменений схемы или данных базы данных; часто это самая сложная часть.

Автоматизация откатов с помощью Actions

GitHub Actions может автоматизировать процедуры отката. Можно создавать рабочие процессы, запускаемые определенными событиями, например ручным запуском, чтобы повторно развернуть предыдущий стабильный выпуск или отменить изменения инфраструктуры.

Это обеспечивает быстрый, единообразный процесс отката с меньшим количеством ошибок и снижает вероятность человеческой ошибки в стрессовых ситуациях.

Рабочий процесс для ручного отката

Ниже показано, как можно настроить ручной запуск для развертывания определенной предыдущей версии, например по метке или хешу фиксации. Этот рабочий процесс получает от пользователя значение version.

name: Manual Rollback Deployment

on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Tag or commit hash to deploy'
        required: true
        default: 'main'

jobs:
  rollback:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          ref: ${{ github.event.inputs.version }}

      - name: Deploy previous version
        run: |
          echo "Deploying version: ${{ github.event.inputs.version }}"
          # Add your specific deployment commands here
          # e.g., helm upgrade, kubectl apply, etc.

Помимо откатов: аварийное восстановление

Аварийное восстановление (DR) — это более широкая стратегия восстановления систем и данных после катастрофического события. Это может быть отказ центра обработки данных, стихийное бедствие или крупная кибератака.

В отличие от отката, который исправляет неудачное развертывание, аварийное восстановление направлено на полное восстановление сервиса после отказа всей системы или потери основной среды.

Планирование DR в CI/CD

При планировании DR в рабочих процессах CI/CD учитывайте следующее:

  • Резервные копии: Регулярное резервное копирование данных, конфигураций и артефактов.
  • Избыточность: Развертывание в нескольких регионах или зонах доступности.
  • Рабочие процессы восстановления: Специализированные рабочие процессы для восстановления сервисов из резервных копий или развертывания в новой инфраструктуре.
  • Тестирование: Периодическая проверка плана DR, чтобы убедиться в его работоспособности при необходимости.

Хранение артефактов сборки для восстановления

GitHub Actions может хранить артефакты сборки, которые имеют решающее значение для DR. К ним могут относиться скомпилированные двоичные файлы, образы Docker или манифесты развертывания. Их можно загружать после успешной сборки.

Затем эти артефакты можно скачать и развернуть в новой среде как часть рабочего процесса DR.

name: Build and Archive Artifacts

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Build application
        run: |
          echo "Building app..."
          mkdir -p build_output
          echo "App version 1.0.0" > build_output/app.txt

      - name: Upload build artifact
        uses: actions/upload-artifact@v4
        with:
          name: application-build
          path: build_output/

Проверка: откат или DR

Развертывание новой функции вызвало критическую ошибку, из-за которой приложение стало недоступно. Какая стратегия в первую очередь используется, чтобы быстро исправить именно эту проблему и восстановить сервис?

Откаты и DR: основные выводы

В этом уроке мы рассмотрели важные понятия отката и аварийного восстановления. Мы узнали, что откаты быстро отменяют неудачные развертывания, а аварийное восстановление предназначено для восстановления систем после серьезных сбоев.

GitHub Actions может значительно упростить автоматизацию обоих процессов, обеспечивая устойчивость приложений и минимальные перебои в работе для пользователей.

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

Урок «Откаты и аварийное восстановление» бесплатный?

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

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

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

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

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

Сколько времени занимает урок «Откаты и аварийное восстановление»?

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

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

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

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

  1. Сине-зелёные развёртывания
  2. Канареечные выпуски с Actions
  3. Откаты и аварийное восстановление
  4. Флаги функций и постепенные развёртывания
← Назад к DevOps Bootcamp