Компромиссы в надежности для Power Platform рабочих нагрузок
Надежная рабочая нагрузка постоянно соответствует установленным целям надежности. Она должна достичь установленных целей устойчивости, в идеале — путем обхода событий, влияющих на надежность. Однако в действительности рабочая нагрузка должна выдерживать такие события, контролировать их влияние и поддерживать операции на заранее определенном уровне во время активных сбоев. Даже во время катастрофы надежная рабочая нагрузка должна восстановиться до определенного состояния в течение заданного периода времени, оба из которых согласованы между заинтересованными сторонами. План реагирования на инциденты, который позволит вам добиться быстрого обнаружения и восстановления, имеет жизненно важное значение.
На этапе проектирования рабочей нагрузки необходимо учитывать, как решения, принимаемые на основе принципов проектирования надежности и рекомендаций в контрольном списке проверки дизайна для обеспечения надежности, могут повлиять на цели и оптимизацию других основополагающих компонентов. Определенные решения могут принести пользу некоторым компонентам, но при этом быть компромиссом для других. В этой статье описаны примеры компромиссов, с которыми может столкнуться группа рабочих нагрузок при проектировании архитектуры и операций рабочей нагрузки для надежности.
Компромиссы надежности и безопасности
Компромисс: Увеличение площади рабочей поверхности. В компоненте «Безопасность» приоритет отдается сокращению и ограничению площади поверхности, чтобы минимизировать векторы атак и сократить необходимость управления средствами безопасности.
Надежность часто достигается за счет репликации. Репликация может происходить на уровне компонентов, на уровне данных или даже на географическом уровне. Реплики по своей конструкции увеличивают площадь поверхности рабочей нагрузки. С точки зрения безопасности сокращенная и ограниченная площадь поверхности предпочтительна, чтобы минимизировать потенциальные векторы атак и упростить управления средствами безопасности.
Аналогичным образом, решения для аварийного восстановления, такие как резервное копирование, увеличивают площадь поверхности рабочей нагрузки. Однако они часто изолированы от среды выполнения рабочей нагрузки. Это требует реализации дополнительных мер безопасности, которые могут быть специфичными для решения аварийного восстановления.
В целях обеспечения надежности в архитектуре могут потребоваться дополнительные компоненты, которые увеличивают площадь поверхности. Эта повышенная сложность увеличивает площадь поверхности рабочей нагрузки за счет добавления новых компонентов, которые необходимо защитить, возможно, способами, которые еще не используются в системе. Обычно эти компоненты сопровождаются дополнительным кодом для поддержки их использования или общих шаблонов надежности, что также увеличивает площадь поверхности приложения.
Компромисс: Обход контроля безопасности. Компонент «Безопасность» рекомендует, чтобы все средства управления оставались активными как в нормальных, так и в стрессовых системах.
Когда в рабочей нагрузке возникает событие, связанное с надежностью, которое устраняется в рамках активного реагирования на инциденты, срочность может создать необходимость для групп рабочей нагрузки обойти меры безопасности, оптимизированные для повседневного доступа.
Действия по устранению неполадок могут привести к тому, что рабочая группа временно отключит протоколы безопасности, в результате чего и без того нагруженная система будет потенциально подвержена дополнительным рискам безопасности. Также существует риск того, что протоколы безопасности не будут восстановлены в кратчайшие сроки.
Детализированная реализация средств управления безопасностью, таких как назначения управления доступом на основе ролей или правила брандмауэра, усложняет конфигурацию и конфиденциальность, увеличивая вероятность неправильной настройки. Смягчение этого потенциального воздействия на надежность с помощью широких правил разрушает все три принципа архитектуры нулевого доверия.
Компромисс: старые версии программного обеспечения. Компонент «Безопасность» поощряет подход «будь в курсе, оставайся в курсе» к исправлениям безопасности поставщиков.
Применение обновлений волны выпуска или обновлений библиотек поставщиков, таких как сторонние компоненты или решения, потенциально может нарушить работу целевого компонента, что приведет к его недоступности во время изменения. Отсрочка или отказ от установки исправлений может помочь избежать потенциальных рисков надежности, но оставляет систему незащищенной от развивающихся угроз.
Предыдущее соображение также применимо к коду рабочей нагрузки. Например, это относится к коду приложения, использующему старые библиотеки и компоненты. Если обновление и развертывание кода приложения рассматривается как явный риск для надежности, приложение со временем подвергается дополнительным рискам безопасности.
Компромиссы надежности с операционным совершенством
Компромисс: повышенная сложность эксплуатации. Операционное совершенство, как и сама надежность, отдает приоритет простоте.
Наличие комплексной стратегии мониторинга рабочей нагрузки является ключевым элементом операционной эффективности. Введение дополнительных компонентов в архитектуру для реализации шаблонов проектирования надежности приводит к увеличению количества источников данных, которыми нужно управлять, что увеличивает сложность реализации распределенной трассировки и наблюдения.
Использование нескольких регионов для преодоления ограничений емкости ресурсов одного региона и/или реализации архитектуры «активный/активный» увеличивает сложность оперативного управления рабочей нагрузкой. Эта сложность связана с необходимостью управлять несколькими регионами и необходимостью управлять репликацией данных между ними.
Компромисс: дополнительные усилия по формированию знаний и осведомленности команды. Компонент «Эксплуатационная эффективность» рекомендует хранить и поддерживать репозиторий документации по процедурам и топологиям.
Поскольку рабочая нагрузка становится более устойчивой за счет добавления компонентов и шаблонов обеспечения надежности, требуется больше времени для поддержки операционных процедур и документации артефактов.
Обучение становится более сложным по мере увеличения количества компонентов рабочей нагрузки. Эта сложность влияет на время, необходимое для адаптации, и увеличивает знания, необходимые для отслеживания планов развития продукта и рекомендаций по уровню обслуживания.
Компромиссы надежности и оптимизации взаимодействия
Компромисс: снижение маневренности. Компонент «Оптимизация взаимодействия» отдает приоритет эффективности пользователей.
Акцент на тщательном тестировании может задержать выпуск функциональных возможностей, необходимых для внедрения.
Оптимизация надежности может повышать приоритет минимизации сложности, что снижает приоритет функций, обеспечивающих более привлекательный пользовательский опыт, таких как пользовательские компоненты и интеграция.
Компромисс между надежностью и эффективностью работы
Компромисс: увеличение задержки. Эффективность работы требует, чтобы система достигала целевых показателей производительности для потоков пользователей и данных.
Модели надежности часто включают репликацию данных, чтобы обеспечить устойчивость к сбоям в работе реплики. Репликация вносит дополнительную задержку для надежных операций записи данных, что потребляет часть бюджета производительности для конкретного пользователя или потока данных.
Для обеспечения надежности иногда используются различные формы балансировки ресурсов с целью распределения или перераспределения нагрузки на работоспособные реплики. Выделенный компонент, используемый для балансировки, обычно влияет на производительность балансируемого запроса или процесса.
Распределение компонентов по географическим границам или зонам доступности для преодоления масштабного воздействия приводит к сетевой задержке при обмене данными между компонентами, выходящими за эти границы доступности.
Для наблюдения за состоянием рабочей нагрузки используются обширные процессы. Хотя мониторинг имеет решающее значение для надежности, контрольно-измерительные приборы могут влиять на производительность системы. По мере увеличения наблюдаемости производительность может снижаться.
Компромисс: увеличение избыточного резервирования. Принцип эффективности производительности не поощряет избыточное выделение ресурсов, а рекомендует использовать ровно столько ресурсов, сколько необходимо для удовлетворения спроса.
Автоматические операции масштабирования не выполняются мгновенно и поэтому не могут надежно справиться с внезапным и резким всплеском спроса, который невозможно сформировать или сгладить. Таким образом, избыточное выделение ресурсов посредством более крупных экземпляров или большего количества экземпляров является критически важной тактикой обеспечения надежности, позволяющей компенсировать задержку между сигналом спроса и созданием предложения. Неиспользованная мощность противоречит целям эффективности работы.
Иногда компонент невозможно масштабировать в ответ на спрос, а этот спрос не полностью предсказуем. Использование больших экземпляров для покрытия наихудшего случая приводит к избыточному выделению ресурсов в ситуациях, выходящих за рамки этого варианта использования.