Прошли те времена, когда люди, не разбирающиеся в технологиях, знали, что значит «Сервер не работает». Мы привыкли к бесперебойному обслуживанию. Даже небольшое отставание сейчас вызывает удивление.
По мере того, как все больше критически важных рабочих нагрузок перемещается в облако, Высокая доступность (HA) становится важнейшим аспектом проектирования системы. HA относится к гарантиям непрерывной работы или доступности системы/компонента. Обычно он измеряется относительно 100% доступности. Вы бы видели такие гарантии доступности, как 99,99999%. Это означает ~6 минут простоя в год.
Вы найдете поставщиков облачных услуг, предоставляющих гарантии в 11, 12 и 15, 9 секундах. Это хорошо, но все же достаточно большое время простоя для критически важной службы.
Обычно мы создаем систему высокой доступности с резервным оборудованием и отказоустойчивостью программного обеспечения, чтобы свести к минимуму вмешательство человека. Термин «Допуск» бывает двух типов: Ошибки и Сбои.
Сбой — это состояние, при котором Система не соответствует своим спецификациям. Неисправность – это выход из строя подсистемы. Это может привести к сбою других подсистем и, возможно, к отказу всей системы.
Неисправности могут быть временными или постоянными. Они могут быть прерывистыми. Ниже приведены эффективные способы борьбы с неисправностями.
- Для прогнозирования сбоев вам нужны математические модели, определяющие наличие сбоя и его последствия. Эти модели часто строятся с использованием внедрения ошибок и изучения возникающих ошибок/отказов.
- Избегайте и Устраняйте ошибки, система должна пройти различные методы проверки, которые гарантируют более надежную систему.
- Толерантность, также называемая постепенной деградацией или отказоустойчивостью, методы, с помощью которых система может быть остановлена в безопасном состоянии.
В основе отказоустойчивости лежит резервирование. H/w, S/w, временная и информационная избыточность. Это позволяет системе иметь высокую устойчивость и, таким образом, обеспечивать высокую доступность.
В Azure есть три шаблона проектирования, которые помогают проектировать систему с максимальной доступностью.
- Дросселирование — контроль потребления ресурсов приложением, клиентом или службой.
- Выравнивание нагрузки на основе очереди — используйте очередь в качестве буфера между службой и ее задачами для сглаживания нагрузки.
- Мониторинг работоспособности — предоставляет функциональные проверки, к которым может получить доступ внешний инструмент.
Подробнее об этом скоро…