Бөлісу құралы:


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

Применяется к этой контрольной рекомендации по операционному превосходству для хорошо спроектированной платформы:

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

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

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

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

Оценка задач для автоматизации

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

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

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

  • Ищите способы расширения возможностей операторов и освобождения своих smes. Возможно, у вас есть эксперты в вашей организации, которые зависят от эскалации, которые могут быть ненужными. Например, администраторы базы данных могут регулярно получать запросы на создание новых баз данных при подключении новых клиентов к мультитенантном решению. Если вы создадите портал самообслуживания для группы поддержки, вы можете включить их безопасное создание пустой базы данных. Или как промежуточный шаг, вы можете автоматизировать запросы и шаги для 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. Вы можете использовать Terraform, Bicep и Azure Resource Manager для развертываний IaC. В зависимости от ваших требований и знакомства с инструментами ваша команда может использовать один или несколько этих средств для развертывания и управления ресурсами.

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

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

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

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

Автоматизация предоставляет размещенную в Azure платформу для размещения и запуска кода PowerShell и Python в облачных и локальных средах, как Azure, так и не в 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 и Сетка событий.

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

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