Поделиться через


Рекомендации по включению автоматизации

Применяется к этой рекомендации по контрольным спискам эффективности операций Azure Well-Architected Framework:

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

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

Ключевые стратегии проектирования

Проектирование рабочей нагрузки

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

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

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

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

  • Автоматическое масштабирование. Используйте автоматическое масштабирование в инфраструктуре, чтобы помочь вам достичь требований к надежности и производительности. Вы должны заранее выделить пространство IP-адресов и подсети в рабочей нагрузке, чтобы учесть операции масштабирования, а также планировать избыточность и естественный рост.

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

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

Улучшения непрерывной рабочей нагрузки

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

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

Начальная загрузка

Начальная загрузка — это обновления конфигурации ресурса, которые необходимо выполнить после его подготовки, но до того, как он станет доступен в составе пула рабочей нагрузки. Начальная загрузка часто связана с виртуальными машинами, но в процессе развертывания необходимо настроить многие другие ресурсы, включая технологии PaaS (платформа как услуга) и технологии размещения контейнеров, такие как Служба Azure Kubernetes (AKS).

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

Аутентификация и авторизация

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

Изменение структуры рабочей нагрузки

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

Создание уровня управления

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

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

Мониторинг и ведение журнала

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

Жизненный цикл пользователя

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

Оркестрация и использование политик

В рамках непрерывного управления рабочими нагрузками вы можете автоматизировать Desired State Configuration (DSC) в ресурсах, чтобы обеспечить соответствие требованиям и бизнес-требованиям. Автоматизация DSC помогает обеспечить быстрое перехват и исправление смещения конфигурации. Вы можете автоматизировать DSC с помощью средств оркестрации или средств управления политиками. Средства оркестрации, такие как Службы Azure DevOps или Jenkins, можно рассматривать как механизмы на основе push-уведомлений. Средства оркестрации позволяют отправлять обновления конфигурации через событие рабочего процесса, например ручное или автоматическое развертывание. Эти обновления выполняются в рамках последовательности задач, определенной в сценарии развертывания. Средства управления политиками используют механизмы на основе извлечения. Это означает, что система выполняется на базовом уровне рабочей нагрузки, которая периодически опрашивает рабочую нагрузку, чтобы проверка ее состояние по определенному DSC. Если опрос выявляет несоответствие или смещение конфигурации, средство выполняет корректирующие действия. При выборе между средствами оркестрации и управления политиками учитывайте следующие факторы.

  • Средства оркестрации не имеют встроенных возможностей для упреждающего опроса рабочей нагрузки на наличие смещения конфигурации. Средства оркестрации должны быть интегрированы в конвейер непрерывной интеграции и непрерывной поставки (CI/CD), чтобы поддерживать стандарт развертывания инфраструктуры как кода (IaC) и управления ими. Преимущество использования средств оркестрации заключается в том, что при развертывании ресурсы всегда полностью настраиваются.

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

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

Упрощение поддержки Azure

Управление политикой

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

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

Автоматизация начальной загрузки

Расширения azure Виртуальные машины. Виртуальные машины расширения — это небольшие пакеты, которые выполняют настройку и автоматизацию после развертывания на виртуальных машинах. Доступно несколько расширений для различных задач конфигурации, таких как выполнение скриптов, настройка решений для защиты от вредоносных программ и настройка решений для ведения журнала. Установите и запустите эти расширения на виртуальных машинах с помощью шаблона azure Resource Manager, Azure CLI, модуля Azure PowerShell или портал Azure. На каждой виртуальной машине установлен агент виртуальной машины, который управляет жизненным циклом расширения.

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

Cloud-init: Cloud-init — это отраслевое средство для настройки виртуальных машин Linux при первой загрузке. Подобно расширениям пользовательских скриптов Azure, cloud-init позволяет устанавливать пакеты и выполнять команды на виртуальных машинах Linux. Cloud-init можно использовать для установки программного обеспечения, настройки системы и промежуточного хранения содержимого. Azure включает множество образов виртуальных машин с поддержкой облачного инициализации в известных дистрибутивах Linux. Полный список см. в статье Поддержка cloud-init для виртуальных машин в Azure.

Ресурс скрипта развертывания Azure: При развертывании с помощью Azure может потребоваться выполнить произвольный код для начальной загрузки управления учетными записями пользователей, модулями pod Kubernetes или запроса данных из системы, отличной от Azure. Поскольку ни одна из этих операций не доступна через уровень управления Azure, требуется отдельный механизм. Дополнительные сведения см. в статье Microsoft.Resources deploymentScripts. Как и любой другой ресурс Azure, ресурс скрипта развертывания:

  • Можно использовать в шаблоне azure Resource Manager.

  • Содержит зависимости шаблона Azure Resource Manager в других ресурсах.

  • Использует входные данные и создает выходные данные.

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

При развертывании скрипт развертывания запускает команды и скрипты PowerShell или Azure CLI. Запуски скриптов и ведение журнала можно наблюдать в портал Azure или с помощью Azure CLI и модуля PowerShell. Вы можете настроить переменные для среды выполнения, параметров времени ожидания и управления ресурсами после сбоя скрипта.

Начальная загрузка кластеров AKS с помощью GitOps. Вы можете выполнить начальную загрузку нового подготовленного кластера AKS с помощью GitOps и расширения кластера Flux версии 2, объявив параметры конфигурации в репозиториях GitHub. Так как файлы кластера AKS хранятся в репозитории GitHub, они имеют версию, а изменения между версиями легко отслеживать. Контроллеры Kubernetes выполняются в кластерах и постоянно согласовывают состояние кластера с нужным состоянием, объявленным в репозитории Git, извлекая файлы из репозитория. Дополнительные сведения см. в статье Базовая эталонная архитектура AKS.

Управление конфигурацией

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

Конфигурация приложений Azure — это служба, которую можно использовать для централизованного управления параметрами приложения и флагами функций. Он работает с azure Key Vault, что позволяет безопасно управлять различными конфигурациями приложений в вашей среде.

Отслеживание изменений и инвентаризация

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

  • Установленное программное обеспечение Windows и Linux
  • Ключевые файлы Windows и Linux
  • разделы реестра Windows;
  • Службы Windows и управляющие программы Linux

Контрольный список эффективности операций

Ознакомьтесь с полным набором рекомендаций.