Компромиссы по эффективности производительности
Рабочая нагрузка, которая соответствует целевым показателям производительности без чрезмерной подготовки, эффективна. Цель эффективности производительности заключается в том, чтобы обеспечить достаточное количество поставок для обработки спроса в любое время. Ключевые стратегии повышения эффективности включают надлежащее использование оптимизаций кода, шаблонов проектирования, планирования емкости и масштабирования. Очистка целевых показателей производительности и тестирование, лежащие в основе этого компонента.
Во время согласования целевых показателей производительности рабочей нагрузки и разработки рабочей нагрузки для повышения производительности важно знать, как принципы проектирования производительности и рекомендации в контрольном списке для повышения эффективности разработки могут повлиять на цели оптимизации других основных компонентов. Некоторые решения по эффективности производительности могут воспользоваться некоторыми основными аспектами, но являются компромиссами для других. В этой статье перечислены примеры компромиссов, с которыми может столкнуться команда рабочей нагрузки при проектировании архитектуры рабочей нагрузки и операций для повышения производительности.
Компромиссы эффективности производительности с надежностью
Компромисс: снижение репликации и увеличение плотности. Краеугольным камнем надежности является обеспечение устойчивости с помощью репликации и ограничение радиуса взрыва сбоев.
Рабочая нагрузка, которая достигает эффективности путем задержки масштабирования до последнего ответственного момента тесно соответствует требованию, но уязвима к непредвиденным сбоям узлов и задержкам масштабирования.
Консолидация ресурсов рабочей нагрузки может использовать чрезмерную емкость и повысить эффективность. Однако он увеличивает радиус взрыва неисправности в совместно расположенном компоненте или платформе приложений.
Масштабирование или уменьшение масштаба, чтобы свести к минимуму избыточность емкости, может оставить рабочую нагрузку недостаточной во время пиков использования, что приводит к сбоям в обслуживании из-за нехватки поставок.
Компромисс: повышенная сложность. Надежность определяет простоту.
Использование автомасштабирования для балансировки поставок рабочей нагрузки по требованию приводит к изменчивости в топологии рабочей нагрузки и добавляет компонент, который должен работать правильно, чтобы система была надежной. Автомасштабирование приводит к активации дополнительных событий жизненного цикла приложения, таких как запуск и остановка.
Секционирование и сегментирование данных помогают избежать проблем с производительностью в больших или часто доступных наборах данных. Однако реализация этих шаблонов увеличивает сложность, так как (в конечном итоге) согласованность должна поддерживаться в дополнительных ресурсах.
Денормализация данных для оптимизированных шаблонов доступа может повысить производительность, но она представляет сложность, так как необходимо синхронизировать несколько представлений данных.
Шаблоны облачной разработки, ориентированные на производительность, иногда требуют внедрения дополнительных компонентов. Использование этих компонентов увеличивает область поверхности рабочей нагрузки. Затем компоненты должны быть надежными, чтобы обеспечить надежность всей рабочей нагрузки. Вот некоторые примеры.
- Шина сообщений для выравнивания нагрузки, которая представляет критически важный компонент с отслеживанием состояния.
- Подсистема балансировки нагрузки для автомасштабируемых реплик, для которой требуется надежная операция и перечисление реплик.
- Разгрузка данных в кэши, для которой требуются подходы к недопустимости надежного кэша.
Компромисс: тестирование и наблюдение за активными средами. Избегая ненужного использования производственных систем, это подход к самосохранянию и избеганию рисков для надежности.
Тестирование производительности в активных средах, например использование синтетических транзакций, несет риск возникновения сбоев из-за действий или конфигураций теста.
Рабочие нагрузки должны быть инструментированы с помощью системы мониторинга производительности приложений (APM), которая позволяет командам учиться в активных средах. Средства APM устанавливаются и настраиваются в коде приложения или в среде размещения. Неправильное использование, превышение ограничений или неправильное настройку средства может скомпрометирует его функциональные возможности и обслуживание, что может привести к нарушению надежности.
Компромиссы производительности с безопасностью
Компромисс: сокращение элементов управления безопасностью. Средства управления безопасностью устанавливаются на нескольких уровнях, иногда избыточно, чтобы обеспечить защиту в глубине.
Одна из стратегий оптимизации производительности заключается в удалении или обходе компонентов или процессов, которые способствуют задержкам в потоке, особенно если их время обработки не оправдано. Однако эта стратегия может компрометировать безопасность и сопровождаться тщательным анализом рисков. Рассмотрим следующие примеры:
Удаление шифрования при передаче или хранении для повышения скорости передачи предоставляет данные потенциальной целостности или нарушения конфиденциальности.
Удаление или снижение безопасности сканирования или проверки средств для снижения времени обработки может скомпрометировать конфиденциальность, целостность или доступность, которую эти средства защищают.
Уменьшение частоты исправлений безопасности, чтобы ограничить влияние на производительность, может оставить рабочую нагрузку более уязвимой для возникающих угроз.
Удаление правил брандмауэра из сетевых потоков для повышения задержки в сети может позволить нежелательному обмену данными.
Минимизация проверки данных или проверки безопасности содержимого для более быстрой обработки данных может нарушить целостность данных, особенно если входные данные являются вредоносными.
Использование менее энтропии в алгоритмах шифрования или хэширования, например в векторе инициализации (IV), более эффективно, но упрощает шифрование.
Компромисс. Увеличение области рабочей нагрузки. Безопасность определяет сокращенную и ограниченную область поверхности, чтобы свести к минимуму векторы атак и уменьшить управление элементами управления безопасностью.
Шаблоны облачной разработки, ориентированные на производительность, иногда требуют внедрения дополнительных компонентов. Эти компоненты увеличивают область поверхности рабочей нагрузки. Новые компоненты должны быть защищены, возможно, способами, которые еще не используются в системе, и они часто увеличивают область соответствия требованиям. Рассмотрим эти часто добавленные компоненты:
Шина сообщений для выравнивания нагрузки
Подсистема балансировки нагрузки для автомасштабированных реплик
Разгрузка данных в кэши, сети доставки приложений или сети доставки содержимого
Разгрузка обработки в фоновые задания или даже клиентские вычисления
Компромисс: удаление сегментации. Компонент безопасности определяет высокий уровень сегментации, чтобы обеспечить точное управление безопасностью и уменьшить радиус взрыва.
Совместное использование ресурсов с помощью повышенной плотности — это подход к повышению эффективности. Примеры включают сценарии мультитенантности или объединение разрозненных приложений в архитектуре на общей платформе приложений. Повышенная плотность может привести к следующим проблемам безопасности:
Повышенный риск несанкционированного бокового перемещения от одного клиента к другому.
Удостоверение общей рабочей нагрузки, которое нарушает принцип наименьших привилегий и скрывает отдельные следы аудита в журналах доступа.
Элементы управления безопасностью периметра, например правила сети, которые сокращаются, чтобы охватывать все совместно расположенные компоненты, предоставляя отдельным компонентам больше доступа, чем это необходимо.
Компрометация узла платформы приложения или отдельного компонента из-за большего радиуса взрыва. Это увеличение вызвано более простым доступом к совместно расположенным компонентам.
Совместное размещение разрозненных компонентов, что приводит к дополнительным компонентам в области соответствия требованиям из-за общего узла.
Компромиссы производительности с оптимизацией затрат
Компромисс: Слишком много предложения для спроса. Как оптимизация затрат, так и эффективность производительности имеют достаточное количество поставок для обслуживания спроса.
Чрезмерная подготовка — это риск, когда команды пытаются устранить проблемы с производительностью в рабочей нагрузке. Ниже приведены некоторые распространенные причины чрезмерной подготовки:
- Первоначальное планирование емкости было неправильно вызвано тем, что команда сосредоточена только на оценках пиковой нагрузки, игнорируя стратегии пикового сглаживания в проектировании рабочей нагрузки.
- Масштабирование ресурса вверх или вне во время шага устранения неполадок реагирования на инциденты.
Автомасштабирование может быть неправильно настроено. Ниже приведены некоторые примеры неправильно настроенного автомасштабирования:
- Масштабирование с минимальными изменениями спроса или расширенный период охлаждения может нести большую стоимость, чем требуется.
- Использование автомасштабирования без заданного верхнего предела может привести к неконтролируемму росту из-за сбоев системы или злоупотреблений и превышения ожидаемых требований к рабочей нагрузке.
Расширение в нескольких регионах может повысить производительность путем приближения рабочих нагрузок к пользователю и может избежать временных ограничений емкости ресурсов. Однако эта топология также добавляет сложность и дублирование ресурсов.
Компромисс: дополнительные компоненты. Одним из способов оптимизации затрат является консолидация с меньшим количеством ресурсов путем увеличения плотности, удаления дублирования и совместного размещения функций.
Шаблоны облачной разработки, ориентированные на производительность, иногда требуют внедрения дополнительных компонентов. Эти дополнительные компоненты обычно приводят к общему увеличению затрат для рабочей нагрузки. Например, можно включить шину сообщений для выравнивания нагрузки или разгрузки задач в приложение или сеть доставки содержимого для улучшения времени отклика.
Сегментация ресурсов позволяет различным частям рабочей нагрузки иметь различные характеристики производительности, обеспечивая независимую настройку для каждого сегмента. Однако это может увеличить общую стоимость владения, так как для нее требуется несколько оптимизированных сегментов, а не один обобщенный компонент.
Компромисс: увеличение инвестиций в предметы, которые не соответствуют функциональным требованиям. Одним из подходов к оптимизации затрат является оценка значения, предоставленного любым решением, развернутое.
Службы уровня "Премиум" и номера SKU могут помочь рабочей нагрузке достичь целевых показателей производительности. Обычно эти службы стоят больше и могут предоставлять дополнительные функции. Они могут быть недоиспользуются, если многие из функций premium не используются специально для целевых показателей производительности.
Для выполнения рабочей нагрузки требуются данные телеметрии для наблюдаемости, которые должны быть переданы и сохранены. Увеличение собираемой телеметрии производительности может увеличить затраты на передачу и хранение данных телеметрии.
Действия по тестированию производительности добавляют затраты, которые не связаны со значением рабочей системы. Ниже приведены примеры затрат на тестирование производительности:
- Создание экземпляров сред, предназначенных для тестов, ориентированных на производительность.
- Использование специализированных средств производительности.
- Время выполнения тестов.
Участники группы обучения для специализированных задач оптимизации производительности или оплаты служб настройки производительности добавляются в стоимость рабочей нагрузки.
Компромиссы по эффективности производительности с операционным превосходством
Компромисс: снижение наблюдаемости. Наблюдаемость необходима, чтобы обеспечить рабочая нагрузка с значимым оповещением и помочь обеспечить успешный ответ на инциденты.
Сокращение объема журналов и метрик для уменьшения времени обработки, затраченного на сбор данных телеметрии, а не других задач, снижает общую наблюдаемость системы. Ниже приведены некоторые примеры результирующего уменьшения наблюдаемости:
- Он ограничивает точки данных, используемые для создания значимых оповещений.
- Это приводит к пробелам в охвате деятельности по реагированию на инциденты.
- Она ограничивает наблюдаемость в взаимодействиях и границах с учетом безопасности или соответствия требованиям.
При реализации шаблонов проектирования производительности часто увеличивается сложность рабочей нагрузки. Компоненты добавляются в критически важные потоки. Стратегия мониторинга рабочей нагрузки и мониторинг производительности должны включать эти компоненты. Когда поток охватывает несколько компонентов или границ приложений, сложность мониторинга производительности этого потока увеличивается. Производительность потока должна быть сопоставлена во всех взаимосвязанных компонентах.
Компромисс: повышенная сложность операций. Сложная среда имеет более сложные взаимодействия и более высокую вероятность негативного влияния от обычных, нерегламентированных и чрезвычайных операций.
Повышение эффективности производительности путем увеличения плотности повышает риск в операционных задачах. Ошибка в одном процессе может иметь большой радиус взрыва.
По мере реализации шаблонов проектирования производительности они влияют на операционные процедуры, такие как резервные копии, смены ключей и стратегии восстановления. Например, секционирование данных и сегментирование могут усложнять повседневные задачи, когда команды пытаются убедиться, что эти задачи не влияют на согласованность данных.
Компромисс: стресс культуры. Операционное превосходство коренится в культуре безвинности, уважения и непрерывного улучшения.
Проведение анализа первопричин проблем с производительностью определяет недостатки процессов или реализаций, требующих исправления. Команда должна рассмотреть возможность обучения. Если члены команды обвиняются в проблемах, мораль может быть затронута.
Обычные и нерегламентированные процессы могут повлиять на производительность рабочей нагрузки. Это часто считается предпочтительнее выполнять эти действия в нерабочие часы. Однако нерабочие часы могут быть неудобны или вне обычных часов для членов команды, которые отвечают или квалифицированы в этих задачах.
Дополнительные ссылки
Изучите компромиссы для других столпов: