Управление соответствием виртуальных машин требованиям

Политика Azure

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

Архитектура

Решение состоит из двух процессов:

  • Процесс публикации золотого образа
  • Процесс отслеживания соответствия виртуальной машины

Схема архитектуры, показывающая, как решение управляет Azure Marketplace образами. Иллюстрированные шаги включают настройку, отслеживание, тестирование и публикацию.

Скачайте файл Visio этой архитектуры.

Поток данных

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

  1. Процесс захватывает базовый образ из Azure Marketplace.
  2. Конструктор образов виртуальных машин Azure настраивает образ.
  3. В процессе получения образа отслеживается информация о версии образа, сведения об источнике и дате публикации.
  4. Автоматизированные тесты проверяют образ.
  5. Если образ не проходит какие-либо тесты, он возвращается на этап настройки для исправления.
  6. Процесс публикует окончательный образ.
  7. Коллекция вычислений Azure делает образ доступным для команд DevOps.

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

Скачайте файл Visio этой архитектуры.

Процесс отслеживания соответствия ВМ требования содержит следующие шаги:

  1. Политика Azure назначает определения политики виртуальным машинам и оценивает их на соответствие требованиям.
  2. Политика Azure публикует данные о соответствии требованиям для виртуальных машин и других ресурсов Azure на панели мониторинга Политики Azure.

Компоненты

  • Конструктор образов виртуальных машин Azure — это управляемая служба для настройки образов системы. Эта служба создает и распространяет образы, которые используют команды DevOps.

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

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

  • Функция автоматического управления машиной Azure Политика Azure предоставляет способ динамического аудита или назначения конфигураций компьютерам с помощью кода. Конфигурации обычно подразумевают настройки среды или операционной системы.

Альтернативные варианты

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

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

Сведения о сценарии

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

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

Используя Политику Azure и назначения управления доступом на основе ролей, предприятия могут обеспечивать соблюдение стандартов на ресурсах Azure. Но в случае виртуальных машин эти механизмы влияют только на плоскость управления, или маршрут к виртуальной машине. Образы системы, выполняемые на виртуальной машине, по-прежнему представляют угрозу безопасности. Некоторые компании не разрешают разработчикам получать доступ к виртуальным машинам. Такой подход негативно сказывается на гибкости, затрудняя соблюдение методики DevOps.

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

Потенциальные варианты использования

Это решение применимо к организациям с целевыми зонами Azure, которые выполняют эти задачи:

  • Предоставление золотых образов командам DevOps. Золотой образ — это опубликованная версия образа Marketplace.
  • Тестирование и проверка образов перед предоставлением их командам DevOps.
  • Отслеживание того, какой образ использует каждая команда DevOps.
  • Внедрение стандартов компании без снижения уровня производительности.
  • Обеспечение того, чтобы команды DevOps использовали последние версии образов.
  • Управление соответствием требованиям серверов для домашних животных, которые требуют интенсивного обслуживания, и серверов для крупного рогатого скота, которые легко заменяются.

Метод

В следующих разделах приводится подробное описание подхода решения.

Определение домашних животных и крупного рогатого скота

Команды DevOps используют аналогию под названием "домашние животные и крупный рогатый скот" для определения моделей обслуживания. Чтобы отследить соответствие виртуальной машины требованиям, сначала определите, какой это сервер — домашних животных или крупного рогатого скота:

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

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

    • Используйте автоматизированную процедуру для создания серверов с нуля.
    • После завершения выполнения тестов выведите серверы из эксплуатации.

Среда может содержать только серверы домашних животных или только серверы крупного рогатого скота. И напротив, группа виртуальных машин в среде может быть серверами домашних животных. Другие виртуальные машины в той же среде могут быть серверами крупного рогатого скота.

Управление соответствием требованиям:

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

Ограничение образов

Не разрешайте командам DevOps использовать образы виртуальных машин Azure Marketplace. Разрешите публикацию образов виртуальных машин только в Коллекции вычислений Azure. Это ограничение имеет решающее значение для обеспечения соответствия виртуальной машины требованиям. Вы можете использовать пользовательскую политику в Политике Azure для обеспечения соблюдения этого ограничения. Пример см. в разделе образов.

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

Настройка образов

Золотой образ — это версия образа Marketplace, которая публикуется в Коллекции вычислений Azure. Золотые образы доступны для использования командами DevOps. Перед публикацией образа выполняется его настройка. Действия по настройке уникальны для каждого предприятия. К общим действиям относятся:

  • Усиление защиты операционной системы.
  • Развертывание настраиваемых агентов для стороннего программного обеспечения.
  • Установка корневых сертификатов центра сертификации предприятия (ЦС).

С помощью Конструктора образов виртуальных машин Azure можно настроить образы, изменив параметры операционной системы и запустив пользовательские сценарии и команды. Конструктор образов виртуальных машин Azure поддерживает образы Windows и Linux. Дополнительные сведения о настройке образов см. в статье Элементы управления соответствием Политики Azure для Виртуальных машин Azure.

Отслеживание образов

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

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

Объем и тип отслеживаемой информации зависит от уровня соответствия требованиям вашей организации.

Для отслеживания образов на виртуальных машинах Windows настройте пользовательский реестр. Добавьте любую необходимую информацию в этот путь реестра в виде пар ключ-значение. На виртуальных машинах Linux введите данные образа в переменные среды или в файл. Сохраните файл в папке /etc/, где он не будет конфликтовать с работой разработчика или приложениями. Если вы хотите отслеживать данные образа с помощью Политики Azure или создать отчеты, сохраните все данные как уникальную пару ключ-значение. Информацию об определении версии образа Marketplace см. в разделе Определение версии образа Marketplace.

Проверка золотых образов с помощью автоматических тестов

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

Общие сценарии тестирования включают:

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

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

Публикация золотых образов

Публикация конечных образов в Коллекции вычислений Azure в виде управляемого образа или виртуального жесткого диска (VHD), который может использовать команда DevOps. Пометьте все более ранние образы как устаревшие. Если вы не установили дату окончания срока действия для версии образа в Коллекции вычислений Azure, вы можете прекратить работу с самым старым образом. Это решение зависит от политик компании.

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

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

Дополнительные сведения о Коллекции вычислений см. в статье Хранение и совместное использование образов в Коллекции вычислений Azure.

Обновление золотых образов

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

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

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

При обновлении серверов домашних животных учитывайте эти рекомендации:

Улучшение видимости

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

  • Отслеживания соответствия виртуальной машины требованиям.
  • Установки агентов Azure.
  • Записи журналов диагностики.
  • Повышения видимости соответствия виртуальной машины требованиям.

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

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

Каждая команда DevOps может отслеживать уровни соответствия своих приложений на панели мониторинга Политики Azure и принимать меры по исправлению ситуации. При назначении этих политик группе управления или подписке присвойте описанию назначения URL-адрес, который ведет на общекорпоративную вики-страницу. Можно также использовать короткий URL-адрес, например aka.ms/policy-21. На вики-сайте перечислите шаги, которые должны предпринять команды DevOps, чтобы обеспечить соответствие виртуальных машин.

Менеджеры по ИТ-рискам и сотрудники службы безопасности также могут использовать панель мониторинга Политики Azure для управления корпоративными рисками в соответствии со склонностью организации к риску.

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

Рекомендации

Эти рекомендации реализуют основные принципы Azure Well-Architected Framework, которая представляет собой набор руководящих принципов, которые можно использовать для повышения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Масштабируемость

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

Устойчивость

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

Оптимизация затрат

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

Если вы не используете сторонние службы, такие как Ansible или Terraform, этот подход практически бесплатен. Может взиматься плата за хранение и исходящий трафик. К другим потенциальным расходам относятся:

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

  • В течение периода общедоступной предварительной версии Конструктор образов виртуальных машин Azure использует один тип вычислительных экземпляров с 1 виртуальным ЦП и 3,5 ГБ оперативной памяти. Плата может взиматься за хранение и перенос данных.

  • В Коллекции вычислений не взимается плата за исключением:

    • Стоимость хранения реплик.
    • Плата за сетевой исходящий трафик для репликации образов.

Соавторы

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

Основной автор:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Дальнейшие действия