Рекомендации по тестированию устойчивых рабочих нагрузок в Azure

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

Важно!

Эта статья входит в серию устойчивых рабочих нагрузок Azure Well-Architected . Если вы не знакомы с этой серией, рекомендуем начать с того, что такое устойчивая рабочая нагрузка?

Эффективность тестирования

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

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

Выравнивание по основам зеленого программного обеспечения: углеродная осведомленность

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

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

Автоматизация CI/CD для масштабирования рабочих агентов по мере необходимости

Выполнение недостаточно используемых или неактивных агентов CI/CD приводит к большему объему выбросов.

Выравнивание green Software Foundation: эффективность оборудования

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

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

Рассмотрите возможность кэширования при использовании агентов CI/CD

Использование механизмов кэширования во время CI/CD может сократить время вычислений и, следовательно, выбросы углерода.

Выравнивание green Software Foundation: Энергоэффективность

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

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

Разделение больших репозиториев кода

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

Выравнивание green Software Foundation: Энергоэффективность

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

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

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

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

Профилирование и измерение

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

Оценка возможности параллелизации

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

Согласование green Software Foundation: измерение устойчивости

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

  • Протестируйте приложения, чтобы понять, как выполнять параллельные запросы, одновременную обработку и многое другое.
  • Если вы используете Машинное обучение (ML) для тестирования, рассмотрите возможность использования компьютеров с GPU для повышения эффективности.
  • Определите, является ли рабочая нагрузка ресурсоемкой и работаете над оптимизацией.
  • Рассмотрим этот компромисс: Запуск компьютеров на основе GPU для тестов машинного обучения может увеличить затраты.

Оценка с помощью проектирования хаоса

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

Согласование green Software Foundation: измерение устойчивости

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

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

Установка пороговых значений ЦП и памяти при тестировании

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

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

Выравнивание green Software Foundation: энергоэффективность

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

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

Следующий шаг

Ознакомьтесь с рекомендациями по проектированию рабочих процедур.