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


Принципы проектирования производительности и эффективности

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

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

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

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

Согласование реалистичных целей

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

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

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

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

Соблюдайте рекомендации по определению целевых объектов на уровне макросов, даже если они приблизительные или в пределах диапазона.

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

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

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

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

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

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

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

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

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

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

Проектирование для удовлетворения требований к емкости

Значок цели Предоставьте достаточное количество поставок для решения ожидаемого спроса.

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

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

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

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

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

Достижение и поддержание производительности

Значок цели Защитите от снижения производительности во время использования системы и ее развития.

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

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

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

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

Подход Преимущества
Определите стратегию тестирования производительности.

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

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

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

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

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

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

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

Оптимизация для долгосрочного улучшения

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

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

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

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

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

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

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

Дальнейшие шаги