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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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