Компромиссы надежности

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

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

Компромиссы надежности с безопасностью

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

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

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

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

Компромисс: обход контроля безопасности. Безопасность рекомендует, чтобы все элементы контроля оставались активными как в обычных, так и в напряженных системах.

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

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

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

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

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

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

Компромиссы надежности с оптимизацией затрат

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

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

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

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

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

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

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

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

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

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

Компромиссы надежности с операционным превосходством

Компромисс: повышенная операционная сложность. Операционное превосходство, например надежность, определяет простоту.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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