Компромиссы по эффективности производительности

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

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

Компромиссы по эффективности производительности и надежности

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

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

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

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

Компромисс: повышенная сложность. Надежность является приоритетом простоты.

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

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

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

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

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

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

  • Тестирование производительности в активных средах, например при использовании искусственных транзакций, сопряжено с риском возникновения неисправностей из-за действий или конфигураций тестирования.

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

Компромиссы по эффективности производительности с безопасностью

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

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

  • Удаление шифрования при передаче или хранении для повышения скорости передачи подвергает данные потенциальным нарушениям целостности или конфиденциальности.

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

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

  • Удаление правил брандмауэра из сетевых потоков для повышения задержки в сети может разрешить нежелательный обмен данными.

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

  • Использование меньшей энтропии в алгоритмах шифрования или хэширования, например в векторе инициализации (IV), является более эффективным, но упрощает шифрование.

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

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

  • Шина сообщений для выравнивания нагрузки

  • Подсистема балансировки нагрузки для реплик с автомасштабированием

  • Разгрузка данных в кэши, сети доставки приложений или сети доставки содержимого

  • Разгрузка обработки в фоновые задания или даже клиентские вычисления

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

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

  • Повышенный риск несанкционированного бокового смещения от одного клиента к другому.

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

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

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

  • Совместное размещение разрозненных компонентов приводит к побольше компонентов в область для соответствия из-за их общего узла.

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

Компромисс: Слишком много предложения для спроса. Оптимизация затрат и эффективность производительности имеют приоритет только при наличии достаточного предложения для удовлетворения спроса.

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

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

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

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

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

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

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

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

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

  • Действия по тестированию производительности добавляют затраты, которые не связаны со значением рабочей системы. Ниже приведены примеры затрат на тестирование производительности.

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

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

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

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

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

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

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

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

Компромисс: Культурный стресс. Эффективность работы коренится в культуре невиновности, уважения и непрерывного совершенствования.

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

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

Изучите компромиссы для других основных принципов: