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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изучите компромиссы по другим основным аспектам: