Надежность в Cлужба автоматизации Azure

Cлужба автоматизации Azure — это служба, которая выполняет задачи управления от вашего имени. Вы определяете сценарии, называемые runbook, которые хотите запускать, а Cлужба автоматизации Azure предоставляет инфраструктуру для выполнения этих сценариев. В этой статье рассматривается автоматизация процессов, которая является основной возможностью службы. Гибридные рабочие процессы Runbook, которые выполняются в инфраструктуре, управляемой клиентом, не рассматриваются в этой статье.

При использовании Azure надежность — это общая ответственность. Корпорация Майкрософт предоставляет ряд возможностей для поддержки устойчивости и восстановления. Вы несете ответственность за понимание того, как работают эти возможности во всех используемых вами службах, а также за выбор возможностей, необходимых для достижения бизнес-целей и целей бесперебойной работы.

В этой статье описывается, как обеспечить устойчивость Cлужба автоматизации Azure к различным потенциальным сбоям и проблемам, в том числе временным сбоям, сбоям зоны доступности, сбоям регионов и обслуживанию служб. В нем также описываются параметры резервного копирования и восстановления, а также ключевые сведения о соглашении об уровне обслуживания (SLA) Cлужба автоматизации Azure.

Рекомендации по развертыванию в рабочей среде для обеспечения надежности

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

  • Обработка временных сбоев, возникающих при взаимодействии модулей Runbook с службами и API-интерфейсами Azure путем добавления соответствующей логики повторных попыток в скрипты.

  • Создайте модули Runbook, чтобы обеспечить устойчивость к прерываниям. Используйте контрольные точки для поддержания хода выполнения между перезапусками заданий и, если необходимо сохранить состояние, использовать внешнее хранилище.

Обзор архитектуры надежности

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

Логическая архитектура

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

  • Книги операций, которые представляют собой работу, которую необходимо выполнить. Текстовые модули Runbook — это скрипты, написанные в PowerShell или Python. Графические модули Runbook создаются с помощью графического редактора.
  • Ресурсы, совместно используемые модулями Runbook, включая модули, подключения, учетные данные, сертификаты и переменные.
  • Ресурсы, запускающие выполнение сценария автоматизации, включая расписания и средства наблюдения.

Дополнительные сведения об этих ресурсах см. в разделе "Выполнение Runbook" в Cлужба автоматизации Azure.

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

Физическая архитектура

Модули Runbook выполняются в вычислительной инфраструктуре. Для автоматизации процессов существуют две модели развертывания:

  • Облачные задания (под управлением Microsoft): По умолчанию модули runbook выполняются в облачной инфраструктуре, предоставляемой Microsoft. Microsoft отвечает за высокий уровень доступности и управление этой инфраструктурой. При отправке задания Runbook Cлужба автоматизации Azure выделяет облачное задание из своего пула доступных вычислительных ресурсов, выполняет модуль Runbook, а затем возвращает ресурс в пул.

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

  • Гибридные рабочие роли Runbook: При необходимости можно настроить собственную инфраструктуру вычислений (виртуальные машины в Azure, других облаках или локальной среде) для выполнения модулей Runbook. При использовании гибридных обработчиков Runbook вы несете ответственность за их настройку в соответствии с вашими требованиями к надежности. Гибридные рабочие процессы Runbook не рассматриваются в этой статье.

Устойчивость к временным сбоям

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

Все облачные приложения должны следовать рекомендациям по обработке временных ошибок Azure при обмене данными с любыми размещенными в облаке API, базами данных и другими компонентами. Дополнительные сведения см. в Рекомендациях по обработке временных сбоев.

Вы отвечаете за написание ранбуков для обработки временных ошибок в службах и API, с которыми они взаимодействуют. Для текстовых runbook'ов реализуйте логику повторных попыток с помощью циклов и обработки ошибок. Рекомендации и примеры см. в разделе Обработка временных ошибок в сценарии, зависящем от времени. Для графических модулей Runbook настройте поведение повторных попыток для действий в рабочем процессе. Дополнительные сведения о конфигурации см. в разделе "Повторная попытка" в графических модулях Runbook.

Обслуживание инфраструктуры или другие события платформы могут прерывать задания Runbook. Создайте модули Runbook для обработки этих прерываний:

  • Реализуйте контрольные точки. Для модулей Runbook рабочих процессов PowerShell используйте контрольные точки для сохранения хода выполнения в ключевых точках рабочего процесса в рабочем процессе. Если задание прерывается и перезапускается, оно может возобновиться с последней контрольной точки вместо того, чтобы начинаться заново. Дополнительные сведения см. в разделе "Использование контрольных точек в рабочем процессе".

  • Ознакомьтесь с ограничениями заданий. Облачные задания имеют ограничения на продолжительность выполнения. Дополнительные сведения о ограничениях выполнения заданий и их применении см. в разделе Runbook Execution.

  • Храните постоянное состояние во внешнем хранилище. Задания не поддерживают состояние между запусками. Если задание прерывается и перезапускается в другом экземпляре, все, записанное во временное хранилище при первом запуске, может быть потеряно. Если необходимо сохранить данные между выполнением задания, сохраните его во внешнем хранилище, например Хранилище BLOB-объектов Azure или базе данных.

Устойчивость к сбоям зоны доступности

Зоны доступности — это физически отдельные группы центров обработки данных в регионе Azure. При сбое одной зоны службы могут переключиться на одну из оставшихся зон.

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

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

Requirements

Поддерживаемые регионы: При развертывании учетной записи автоматизации в одном из следующих регионов она автоматически становится зонально-избыточной:

Americas Europe Ближний Восток Africa Asia Pacific
Brazil South France Central Israel Central Север Южной Африки Australia East
Canada Central Западно-Центральная Германия Qatar Central Central India
Central US Italy North Северный Китай 3
East US North Europe East Asia
Восток США 2 Norway East Japan East
Южно-Центральный регион США Poland Central Korea Central
Правительство США Вирджиния Sweden Central Southeast Asia
Западная часть США 2 UK South
Западная часть США 3 West Europe

Текущий список поддерживаемых регионов см. в разделе "Поддержка зон доступности" для Cлужба автоматизации Azure.

Cost

Плата за избыточность зон не взимается. Для автоматизации процессов выставление счетов зависит от времени выполнения заданий и наблюдателей. Дополнительные сведения см. в статье Цены на Cлужба автоматизации Azure.

Настройка поддержки зоны доступности

При создании учетной записи автоматизации в поддерживаемом регионе для нее автоматически обеспечивается избыточность между зонами. Невозможно отключить зональную избыточность. Дополнительные сведения см. в разделе о поддержке зон доступности для Cлужба автоматизации Azure.

Поведение, когда все зоны работоспособны

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

  • Операция между зонами: Операции управления учетными записями службы автоматизации и облачные задания автоматически распределяют между зонами доступности в регионе. Запрос или задание может обрабатываться любым экземпляром в любой зоне доступности.

  • Репликация данных между зонами: Конфигурация учетной записи службы автоматизации, скрипты Runbook и другие ресурсы, развернутые в учетной записи службы автоматизации, синхронно реплицируются в нескольких зонах доступности.

Поведение во время сбоя зоны

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

  • Обнаружение и ответ: Платформа Cлужба автоматизации Azure отвечает за обнаружение сбоя в зоне доступности. Вам не нужно ничего делать, чтобы инициировать переключение зоны.
  • Уведомление: Microsoft не уведомляет вас автоматически, когда зона отключена. Однако вы можете использовать Работоспособность служб Azure для понимания общего состояния службы, включая любые сбои зоны, и настроить оповещения Service Health для уведомления о проблемах.
  • Активные запросы: Любое выполняющееся задание в нездоровой зоне может быть прервано. Cлужба автоматизации Azure автоматически запускает новое задание с помощью инфраструктуры в здоровых зонах. Проектируйте свои runbook'и так, чтобы они были устойчивы к временным сбоям и прерываниям, чтобы их можно было безопасно перезапускать.

  • Ожидаемая потеря данных: Выполнение заданий не сохраняет состояние, поэтому не ожидается, что сбой зоны приведет к потере данных для выполняемых заданий. Если задание должно хранить данные, которые он может использовать для восстановления после прерывания, например контрольных точек, сохраните эти сведения в постоянной облачной службе хранилища, например служба хранилища Azure или базе данных.

    Конфигурация учетной записи службы автоматизации и данные runbook реплицируются между зонами и остаются доступными даже в том случае, если зона недоступна.

  • Ожидаемое время простоя: Во время сбоя в зоне ваша учетная запись Automation может испытывать кратковременное прерывание в работе, пока служба обнаружит сбой и перераспределит нагрузку между исправными зонами.

  • Перераспределение: Служба автоматически перераспределяет мощности между оставшимися исправными зонами. Новые запуски заданий, наблюдатели и расписания продолжают работать в инфраструктуре в здоровых зонах. Восстановление не зависит от возвращения отказавшей зоны в строй.

Восстановление зоны

Когда вышедшая из строя зона снова вводится в эксплуатацию, Cлужба автоматизации Azure автоматически повторно включает её в ротацию зон. От вас не требуется никаких действий. Служба отслеживает состояние зоны и по мере возобновления штатной работы повторно распределяет рабочую нагрузку между всеми зонами.

Тестирование на сбои в зоне

Cлужба автоматизации Azure управляет маршрутизацией трафика, автоматическим переключением при отказе и восстановлением зоны для ресурсов с избыточностью между зонами. Вам не нужно ничего инициировать, и вам не нужно проверять процессы сбоя зоны доступности. Проверьте модули Runbook, чтобы убедиться, что они устойчивы к прерываниям.

Устойчивость к сбоям на уровне региона

Cлужба автоматизации Azure — это служба с одним регионом. Если регион становится недоступным, учетная запись службы автоматизации также недоступна.

Индивидуальные решения для нескольких регионов для повышения устойчивости

Вы можете развертывать отдельные учетные записи службы автоматизации в нескольких регионах и переключаться между ними при необходимости. Вы отвечаете за развертывание учетных записей по регионам, их надлежащую настройку, распределение запросов между учетными записями и обработку аварийного переключения, если регион недоступен. Подробные сведения о подходах, которые можно рассмотреть, см. в разделе "Аварийное восстановление" для Cлужба автоматизации Azure.

Резервное копирование и восстановление

Для большинства решений не следует полагаться исключительно на резервные копии. Вместо этого используйте другие возможности, описанные в этом руководстве, для поддержки требований к устойчивости. Однако резервные копии защищают от некоторых рисков, которые другие методы не обеспечивают. Дополнительные сведения см. в статье "Что такое избыточность, репликация и резервное копирование?".

Cлужба автоматизации Azure не предоставляет встроенных средств резервного копирования для конфигурации учетной записи Automation или содержимого runbook. Сохраните собственные копии вне сервиса, чтобы при необходимости можно было развернуть их повторно.

  • Используйте инфраструктуру как код (IaC) для конфигурирования учетной записи службы автоматизации. Определите учетные записи автоматизации и связанные ресурсы в Bicep-файлах, шаблонах ARM или Terraform. Сохраните шаблоны в системе управления версиями и используйте конвейер развертывания для повторного создания среды в том же или другом регионе. Включите сертификаты, переменные, расписания и ссылки на учетные данные в артефактах и процессах развертывания. Храните секреты в таких службах, как Azure Key Vault вместо внедрения значений непосредственно в код Runbook.

  • Храните скрипты runbook в системе контроля версий. Храните исходный код runbook'ов PowerShell и Python в системе контроля версий, такой как Git. Используйте версионирование, ветвление и проверку pull request, чтобы обеспечить качество скриптов и возможность отката к заведомо рабочим версиям.

  • Создайте резервную копию состояния из соответствующего хранилища данных. Задания не сохраняют состояние. Если вам нужно хранить подробные журналы заданий или любые другие данные, создаваемые модулями Runbook, сохраните их в другом хранилище или службе базы данных Azure и создайте резервную копию.

Устойчивость к случайному удалению

При случайном удалении учетной записи службы автоматизации вы можете восстановить ее в течение ограниченного периода времени. Дополнительные сведения см. в статье "Восстановление удаленной учетной записи службы автоматизации".

Устойчивость к обслуживанию служб

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

Соглашение об уровне обслуживания

Соглашение об уровне обслуживания (SLA) для служб Azure описывает ожидаемую доступность каждой службы и условия, которые должно соответствовать вашему решению для достижения этого ожидания доступности. Дополнительные сведения см. в разделе SLA для онлайн-услуг.