Skip to content
igads3d edited this page Jun 10, 2021 · 10 revisions

Понятия высокой доступности и высоконагруженного приложения.

Высокая доступность:

Высокая доступность (англ. high availability) — характеристика технической системы, разработанной для избежания невыполненного обслуживания путём уменьшения или управления сбоями и минимизацией времени плановых простоев. Высокая доступность ожидается от систем жизнеобеспечения, здравоохранения и систем, от которых зависит благополучие общества в целом и экономическое благополучие отдельных организаций. Если говорить простым языком, то высокую доступность можно определить как свойство системы быть защищённой и легко восстанавливаемой от небольших простоев в короткое время и автоматизированными средствами. При таком определении рассматриваются три фактора: категоризация возможных проблем (сбоев), категоризация требований к системе в отношении продолжительности перерывов в работе, технологические решения для автоматической защиты и восстановления после сбоев.

Откуда берется высокая доступность?

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

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

  • Непрерывный режим работы (continuous operations) — система доступна 24 часа в сутки 7 дней в неделю без запланированных простоев.

  • Постоянная доступность (continuous availability) — сочетание высокой доступности с непрерывным режимом работы. Система доступна 24 часа в сутки 7 дней в неделю без запланированных или незапланированных простоев. Наиболее дорогой уровень доступности, требуемый от систем связи, банкоматов, сайтов электронной коммерции, а также от других важных систем, таких, как системы электроснабжения.

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

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

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

Действительное время безотказной работы/ожидаемое время безотказной работы X 100 %

Итоговое значение часто выражается в отрасли в количестве цифр «9», которое обеспечивается решением; это необходимо для выражения объема безотказной работы в минутах в год или, наоборот, для выражения объема простоя в минутах в год.

Высоконагруженное приложение:

Высоконагруженное приложение (англ. highload) — это приложение с высокой нагрузкой, которая возникает ввиду:

  • большого количества одновременных пользователей;
  • большого объема обрабатываемых данных;
  • наличия многочисленных сложных расчетов и вычислений.

Особенности высоконагруженных приложений:

  1. Жесткость. Высоконагруженное бизнес-приложение – это жесткая система, в которой предусмотрены варианты изменения лишь некоторых частей.
  2. Быстрое время отклика. Это важное качество highload-приложений. Общение пользователя с системой происходит через запрос, и ответ на него должен приходить если не мгновенно, то через приемлемое время. Вряд ли вам понравится работать с программой, которая сутки будет производить необходимое вычисление.
  3. Масштабируемость. Как много: людей могут одновременно пользоваться ресурсом; данных способна вместить база до того, как перестанет справляться с нагрузкой? Высоконагруженный проект обязательно должен быть масштабируемым.
  4. Модульность. Применяя горизонтальный подход к масштабированию, все стараются разделить приложение на отдельные модули, которые можно разнести по разным серверам. И сделать так, чтобы самый высоконагруженный участок был мультиплицирован.
  5. Высокая нагрузка на интеграционный слой. Это еще одна особенность высоконагруженных приложений. Чем больше мы его разбиваем на модули и чем больше возрастает нагрузка на них, тем сильнее становится нагрузка и на интеграционный слой.
  6. Эксклюзивность. Из вышесказанного вытекает еще одна особенность высоконагруженного приложения – оно нетривиально и ограничено нагрузкой на интеграционный слой. Проектируя такие приложения, нужно понимать, что нет стандартных решений, которые бы подошли для любой highload-системы, в каждом случае решение эксклюзивно и ориентировано на бизнес-требования.
  7. Дублирование критических узлов. Все особо важные части highload-системы, от которых зависит ее жизнедеятельность, нужно дублировать и в программном плане, и в плане «железа». И при этом они не обязательно должны работать параллельно. Всегда нужно иметь failover-сервер или кластер серверов, которыми можно воспользоваться, если рабочие машины перестанут справляться с нагрузкой.

Выполнил: Кадосин А.А.

Проверили: Журкин П.А., Сичинава М.В.

Clone this wiki locally