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


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

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

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

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

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

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

Целевые задачи для автоматизации

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

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

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

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

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

Области для реализации автоматизации

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

  • Определение, выполнение и управление конвейером. Используйте средства непрерывной интеграции и непрерывной поставки (CI/CD), такие как Azure DevOps и другие средства DevOps, чтобы автоматически определить конвейер и способ его выполнения. Эти средства помогают автоматизировать задачи CI/CD или другие задачи, например создание отчетов.

  • Развертывания. Используйте такие средства, как шаблоны Azure Resource Manager, Bicep, Terraform и Ansible, для автоматизации процессов разработки и выпуска рабочей нагрузки. Разверните и обновите инфраструктуру с помощью той же платформы автоматизации, используя подход "инфраструктура как код" (IaC).

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

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

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

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

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

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

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

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

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

Выбор подходящего средства автоматизации

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

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

Интеграция автоматизации в рабочую нагрузку

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

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

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

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

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

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

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

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

Средства IaC. Для развертываний IaC можно использовать Terraform, Bicep и Azure Resource Manager. В зависимости от ваших требований и знакомства вашей команды с инструментами вы можете использовать одно или несколько из этих средств для развертывания ресурсов и управления ими.

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

GitHub Actions для Azure. Вы можете использовать GitHub Actions для Azure для автоматизации процессов CI/CD. GitHub Actions интегрируется с Azure для упрощения развертываний. Вы можете создавать рабочие процессы, которые создают и тестируют каждый запрос на вытягивание в репозитории, или развертывают объединенные запросы на вытягивание в рабочей среде.

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

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

Служба автоматизации предоставляет размещенную в Azure платформу для размещения и выполнения кода PowerShell и Python в облачных и локальных средах, как в Azure, так и в сторонних средах. Код PowerShell и Python хранится в runbook службы автоматизации. Используйте службу автоматизации для выполнения:

  • Активируйте модули Runbook по запросу, по расписанию или через веб-перехватчик.

  • Журнал выполнения и ведение журнала.

  • Интеграция хранилища секретов.

  • Интеграция системы управления версиями.

Диспетчер обновлений Azure. Update Manager — это единая служба для управления обновлениями виртуальных машин и управления ими. Вы можете отслеживать соответствие обновлений Windows и Linux для всей рабочей нагрузки. Вы также можете использовать Диспетчер обновлений для выполнения обновлений в режиме реального времени или планирования их в течение определенного периода обслуживания. Используйте диспетчер обновлений, чтобы:

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

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

Администраторы инфраструктуры разработки определяют среды развертывания как элементы каталога. Элементы каталога размещаются в репозитории GitHub или Azure DevOps, который называется каталогом. Элемент каталога состоит из шаблона IaC и файла manifest.yaml.

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

Azure Logic Apps и Microsoft Power Automate. При создании пользовательской автоматизации цифровых процессов (DPA) для обработки задач рабочей нагрузки, таких как потоки утверждения или создание интеграции ChatOps, рассмотрите возможность использования Logic Apps или Power Automate. Рабочие процессы можно создавать на основе встроенных соединителей и шаблонов. Logic Apps и Power Automate основаны на одной и той же базовой технологии и хорошо подходят для выполнения задач на основе триггеров или времени.

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

Группы действий Azure Monitor. Чтобы автоматически выполнять операции самовосстановления при активации оповещения, используйте группы действий Azure Monitor. Эти операции можно определить с помощью модуля Runbook, функции Azure или веб-перехватчика.

Пример

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

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

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