exam17 1 - stankin/design-part-2 GitHub Wiki
Понятия высокой доступности и высоконагруженного приложения.
Высоконагруженные системы и системы реального времени.
Реферат к лекции 17 (33).Высокая доступность:
Высокая доступность (англ. high availability) — характеристика технической системы, разработанной для избежания невыполненного обслуживания путём уменьшения или управления сбоями и минимизацией времени плановых простоев. Высокая доступность ожидается от систем жизнеобеспечения, здравоохранения и систем, от которых зависит благополучие общества в целом и экономическое благополучие отдельных организаций. Если говорить простым языком, то высокую доступность можно определить как свойство системы быть защищённой и легко восстанавливаемой от небольших простоев в короткое время и автоматизированными средствами. При таком определении рассматриваются три фактора: категоризация возможных проблем (сбоев), категоризация требований к системе в отношении продолжительности перерывов в работе, технологические решения для автоматической защиты и восстановления после сбоев.
Откуда берется высокая доступность?
В ходе сбора требований пользователей к системе обычно выясняется, какой уровень им необходим:
-
Высокая доступность — наиболее распространённый уровень, ожидаемый пользователями, при котором система или приложение доступны в обозначенные требованиями дни и часы без незапланированных простоев, а о запланированных остановках в работе объявлено заранее.
-
Непрерывный режим работы (continuous operations) — система доступна 24 часа в сутки 7 дней в неделю без запланированных простоев.
-
Постоянная доступность (continuous availability) — сочетание высокой доступности с непрерывным режимом работы. Система доступна 24 часа в сутки 7 дней в неделю без запланированных или незапланированных простоев. Наиболее дорогой уровень доступности, требуемый от систем связи, банкоматов, сайтов электронной коммерции, а также от других важных систем, таких, как системы электроснабжения.
От желаемого уровня доступности зависит стоимость реализации и эксплуатации системы. Кроме того, так как доступность определяется с точки зрения пользователя, часто субъективной, в требованиях к системе стоит точно определить, что понимается под высокой доступностью системы.
Основная цель решения для обеспечения высокой доступности заключается в сведении к минимуму или устранении последствий простоев. В этом случае надежной стратегией является оптимальная балансировка бизнес-процессов и соглашений об уровне обслуживания (SLA) с техническими возможностями и затратами на инфраструктуру.
Платформа считается высокодоступной в соответствии с соглашением и ожиданиями пользователей и заинтересованных лиц. Доступность системы может рассчитываться следующим образом:
Действительное время безотказной работы/ожидаемое время безотказной работы X 100 %
Итоговое значение часто выражается в отрасли в количестве цифр «9», которое обеспечивается решением; это необходимо для выражения объема безотказной работы в минутах в год или, наоборот, для выражения объема простоя в минутах в год.
Высоконагруженное приложение:
Высоконагруженное приложение (англ. highload) — это приложение с высокой нагрузкой, которая возникает ввиду:
- большого количества одновременных пользователей;
- большого объема обрабатываемых данных;
- наличия многочисленных сложных расчетов и вычислений.
Особенности высоконагруженных приложений:
- Жесткость. Высоконагруженное бизнес-приложение – это жесткая система, в которой предусмотрены варианты изменения лишь некоторых частей.
- Быстрое время отклика. Это важное качество highload-приложений. Общение пользователя с системой происходит через запрос, и ответ на него должен приходить если не мгновенно, то через приемлемое время. Вряд ли вам понравится работать с программой, которая сутки будет производить необходимое вычисление.
- Масштабируемость. Как много: людей могут одновременно пользоваться ресурсом; данных способна вместить база до того, как перестанет справляться с нагрузкой? Высоконагруженный проект обязательно должен быть масштабируемым.
- Модульность. Применяя горизонтальный подход к масштабированию, все стараются разделить приложение на отдельные модули, которые можно разнести по разным серверам. И сделать так, чтобы самый высоконагруженный участок был мультиплицирован.
- Высокая нагрузка на интеграционный слой. Это еще одна особенность высоконагруженных приложений. Чем больше мы его разбиваем на модули и чем больше возрастает нагрузка на них, тем сильнее становится нагрузка и на интеграционный слой.
- Эксклюзивность. Из вышесказанного вытекает еще одна особенность высоконагруженного приложения – оно нетривиально и ограничено нагрузкой на интеграционный слой. Проектируя такие приложения, нужно понимать, что нет стандартных решений, которые бы подошли для любой highload-системы, в каждом случае решение эксклюзивно и ориентировано на бизнес-требования.
- Дублирование критических узлов. Все особо важные части highload-системы, от которых зависит ее жизнедеятельность, нужно дублировать и в программном плане, и в плане «железа». И при этом они не обязательно должны работать параллельно. Всегда нужно иметь failover-сервер или кластер серверов, которыми можно воспользоваться, если рабочие машины перестанут справляться с нагрузкой.
Выполнил: Кадосин А.А.
Проверили: Журкин П.А., Сичинава М.В.