Принцип надежности

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

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

Надежность часто измеряется через понятие договора о сервисном обслуживании (SLA). Договор о сервисном обслуживании означает обязательство перед бизнес-пользователями и клиентами системы постоянно поддерживать уровень сервиса. Договор о сервисном обслуживании обычно определяется с помощью конкретных целей производительности, таких как «все запросы должны быть адресованы менее чем за три секунды» или через уровень бесперебойной работы и доступности. Договор о сервисном обслуживании в части доступности определяет:

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

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

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

  1. Отказоустойчивость — практика наличия избыточных программных компонентов, часто географически избыточных, которые предоставляют те же сервисы в случае сбоя
  2. Резервное копирование — практика регулярного резервного копирования состояния системы, важных деталей, данных или сервисов для восстановления в будущем
  3. Аварийное восстановление — процесс планирования для необычных, но разрушительных сценариев и определения методов быстрого восстановления сайта или системы в случае возникновения такого сценария
  4. Мониторинг — использование эффективного мониторинга для раннего выявления потенциальных проблем, измерения количества простоев системы и составления отчетов о результатах после события. Это тесно связано с основным принципом наблюдаемости

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

В этом разделе
Top