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

Применяется к этой контрольной рекомендации по работе с azure Well-Architected Framework Operation Excellence:

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

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

Основные стратегии проектирования

Проектирование компонентов рабочей нагрузки для поддержки автоматизации

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

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

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

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

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

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

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

Изменение структуры автоматизации во время жизненного цикла

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

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

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

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

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

Включение автоматизации в управление доступом

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

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

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

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

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

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

Внедрение управляемого данными подхода для разработки автоматизации

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

Автоматизация событий жизненного цикла пользователя

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

Автоматизация конфигурации требуемого состояния

В рамках непрерывного управления рабочими нагрузками вы можете автоматизировать конфигурацию требуемого состояния (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. Вы можете настроить переменные для среды выполнения, параметров времени ожидания и управления ресурсами после сбоя скрипта.

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

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

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

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

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

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

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

Контрольный список операционных знаний

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