Надежность в Azure VM Image Builder

Azure VM Image Builder — это управляемая служба, которая создает и настраивает образы виртуальных машин, а затем распространяет полученные образы в целевые расположения, такие как Azure Compute Gallery или виртуальные жесткие диски (VHD) в Хранилище BLOB-объектов Azure. Вам не нужно поддерживать долговременную инфраструктуру сборки.

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

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

Рекомендации по развертыванию в производственной среде

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

  • Определите шаблоны образов с помощью подхода "инфраструктура как код", например Bicep или Terraform, и сохраните определения в системе управления версиями.

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

  • Храните скрипты настройки, пакеты и другие зависимости сборки в хранилище с характеристиками избыточности, необходимыми для вашей рабочей нагрузки.

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

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

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

При использовании VM Image Builder вы развертываете шаблон образа в одном регионе Azure, который становится домашним регионом шаблона.

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

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

VM Image Builder распределяет готовый образ в один или несколько целевых объектов, которые вы укажете. К распространенным целям относятся:

  • Azure Compute Gallery (ранее известная как Общая коллекция образов): Azure Compute Gallery обеспечивает многорегионную репликацию образов виртуальных машин. Например, можно создать образ в одном регионе и распространить результирующую версию образа Azure Compute Gallery в несколько целевых регионов.

  • Хранилище BLOB-объектов Azure: Служба может хранить виртуальный жесткий диск в учетной записи хранения, которую использует VM Image Builder, или в указанной вами учетной записи хранения и контейнере BLOB-объектов.

    Если в качестве назначения распространения VHD используется управляемая службой учетная запись хранения, служба сохраняет VHD в промежуточной группе ресурсов. При удалении шаблона образа служба также удаляет VHD. Чтобы сохранить виртуальный жесткий диск независимо от шаблона образа, скопируйте его в настраиваемую учетную запись хранения или в другое расположение перед удалением шаблона.

Azure Compute Gallery и Хранилище BLOB-объектов являются отдельными службами от построителя образов виртуальных машин. Образы можно распределять по нескольким целевым расположениям, включая целевые расположения в разных регионах Azure. Эта модель распространения помогает отделять регион, в котором собирается образ, от регионов, где используется этот образ.

Note

VM Image Builder также поддерживает управляемые образы, которые являются устаревшими целевыми объектами распространения. В этой статье не рассматриваются управляемые образы дисков. Для сценариев рабочей среды используйте Azure Compute Gallery.

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

VM Image Builder использует изолированные сборки образов для запуска процесса настройки и проверки основного образа. Служба развертывает выделенный ресурс Экземпляры контейнеров Azure и виртуальную машину сборки в промежуточной группе ресурсов в вашей подписке Azure. Ресурс Экземпляры контейнеров запускает HashiCorp Packer для настройки и проверки образа, а VM Image Builder координирует сборку.

Чтобы запустить сборки образов, зарегистрируйте поставщика ресурсов Microsoft.ContainerInstance и убедитесь, что у вашей подписки достаточная квота на Экземпляры контейнеров. Дополнительные сведения об архитектуре службы, поддерживаемых регионах и процессе сборки см. в обзоре Azure VM Image Builder.

Отдельные службы Azure, такие как Azure Compute Gallery и Хранилище BLOB-объектов, хранят готовые образы. Настройте каждый целевой объект распространения в соответствии с требованиями к устойчивости.

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

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

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

Обычно вы взаимодействуете с построителем образов виртуальных машин Azure с помощью портала Azure, Azure CLI, Azure PowerShell или инфраструктуры в виде кода, например Bicep. Конвейер сборки отвечает за обработку временных сбоев. Если Azure Resource Manager возвращает временный ответ об ошибке, повторите запрос с соответствующей задержкой.

Если сборка завершается ошибкой, проверьте её lastRunStatus, журналы настройки и проверки, а также выходные данные запуска дистрибутива перед повторным запуском. Эти сведения помогают определить, что стало причиной сбоя: временный сбой, шаг настройки или операция распределения образов. Дополнительные сведения см. в статье Устранение неполадок при сбоях сборки VM Image Builder.

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

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

Операции сборки и готовые образы ведут себя по-разному во время сбоев в зоне.

  • Сборки: Построитель образов виртуальных машин не поддерживает зоны доступности и не предоставляет гарантию устойчивости по зонам доступности для шаблонов образов или операций сборки. Если сбой зоны влияет на ресурсы, используемые сборкой, сборка может не запуститься или может быть прервана. VM Image Builder не перемещает сборку автоматически в другую зону.

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

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

    • Azure Compute Gallery: версии образов Azure Compute Gallery могут использовать хранилище, избыточное между зонами (ZRS), в целевых регионах, поддерживающих зоны доступности. Для каждого целевого региона выберите ZRS в качестве типа репликации учетной записи хранения. По умолчанию используется локально избыточное хранилище (LRS), которое не устойчиво к сбоям зоны. Дополнительные сведения см. в разделе Высокая доступность Azure Compute Gallery.

    • Виртуальные жесткие диски в Хранилище BLOB-объектов Azure. Если вы не используете пользовательскую учетную запись хранения, построитель образов виртуальных машин создает учетную запись хранения ZRS по умолчанию в регионах, поддерживающих зоны доступности. Если вы используете настраиваемую учетную запись хранения, вы несете ответственность за настройку ее избыточности в соответствии с вашими требованиями. Используйте ZRS для хранения копий виртуального жесткого диска в нескольких зонах доступности. Дополнительные сведения о работе ZRS см. в разделе "Надежность" в Хранилище BLOB-объектов Azure.

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

Операции сборки и готовые образы ведут себя по-разному во время сбоев на уровне региона.

  • Сборки: Azure VM Image Builder — это однорегиональная служба и не обеспечивает встроенное аварийное переключение между регионами. Если регион, на котором размещен шаблон образа, становится недоступным, то шаблон образа и операции сборки в этом регионе также недоступны. Служба не автоматически переключается в другой регион при отказе.

    Если необходимо запустить сборки образов при недоступности регионов, разверните шаблоны образов и вспомогательные ресурсы в нескольких регионах Azure. Дополнительные сведения см. в разделе Настраиваемые многорегиональные решения для обеспечения отказоустойчивости.

  • Образы: Готовые образы остаются доступными, если их хранилище устойчиво к сбоям на уровне региона.

    • Azure Compute Gallery: Вы можете настроить Azure Compute Gallery для репликации версий образов в несколько регионов. Репликация асинхронна, и вы можете использовать версию образа в целевом регионе только после завершения репликации в этом регионе.

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

    • Виртуальные жесткие диски в Хранилище BLOB-объектов Azure: назначение VHD, управляемое службой по умолчанию, не обеспечивает геоизбыточность. В регионах, поддерживающих зоны доступности, используется ZRS, которая не защищает от сбоя на уровне региона.

      В регионе с парным регионом можно распространить VHD в настраиваемую учетную запись хранения, использующую геоизбыточное хранилище (GRS) или геозонально-избыточное хранилище (GZRS). GRS для чтения (RA-GRS) и GZRS для чтения (RA-GZRS) предоставляют доступ только для чтения через вторичную конечную точку, но не выполняют аварийное переключение. Чтобы восстановить обычный доступ для чтения и записи в парном регионе, инициируйте переключение при отказе, управляемое клиентом, или скопируйте VHD из вторичной конечной точки в отдельную учетную запись хранения. Георепликация асинхронна, поэтому незапланированное аварийное переключение может привести к потере данных, которые не были реплицированы. Проверьте свойство времени последней синхронизации учетной записи хранения до аварийного переключения, когда это возможно.

      Дополнительные сведения о поведении Хранилище BLOB-объектов при отработке отказа и альтернативных подходах к репликации данных между непарными регионами см. в разделе "Надежность" в Хранилище BLOB-объектов Azure.

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

Если вам нужно продолжать сборку образов во время сбоя региона, вы несете ответственность за развертывание и работу независимых сред сборки в нескольких регионах.

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

Если вам нужно опубликовать образы, пока регион службы галереи недоступен, используйте независимый ресурс Compute Gallery в каждом регионе сборки. Репликация версий образа из одной галереи не делает галерею полностью многорегиональным ресурсом.

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

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

Azure VM Image Builder не заменяет процесс резервного копирования и восстановления. В большинстве случаев артефакт, который имеет значение для восстановления, — это готовый образ, который вы публикуете в Azure Compute Gallery или в хранилище VHD.

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

  • Сохраняйте опубликованные образы в Azure Compute Gallery или других целевых расположениях распространения в соответствии с вашими требованиями к хранению.

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

  • Используйте систему контроля версий для хранения определений шаблонов образов и управления их версиями.

  • Используйте систему контроля версий или другой тип устойчивого хранилища для хранения и управления версиями скриптов и пакетов настройки.

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

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

Microsoft управляет обслуживанием для Azure VM Image Builder. VM Image Builder не обслуживает трафик приложений во время выполнения, поэтому обслуживание не влияет на виртуальные машины, которые вы уже создали из опубликованных образов. Если сборка задерживается или прерывается во время обслуживания или другого события службы, проверьте её состояние и журналы и запустите её повторно.

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

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

Azure VM Image Builder не предоставляет соглашение об уровне доступности сервиса (SLA).

Любое соглашение об уровне обслуживания, которое применяется к целевому объекту распространения или службе хранилища, применяется отдельно и не предоставляет обязательства по доступности для шаблонов VM Image Builder или операций сборки.