Отказоустойчивость сайтов и веб-приложений

Действительно серьёзные проекты должны работать без перебоев даже в случае отказа отдельных подсистем. Причин для сбоев в работе немало: выход из строя «железа», сбои программного обеспечения, аварии на уровне дата-центров. Всех этих рисков можно избежать или минимизировать их последствия.

Отказоустойчивость — это способность системы продолжать полноценно работать при выходе из строя отдельных компонентов (серверов, каналов связи и т.д.). Отказоустойчивость измеряется в процентах доступности сервиса: 99.7-99.9% — это нормальный показатель (это примерно 1-2 часа неработоспособности в месяц), 99.9% и выше — высокий показатель.

Для высокого уровня отказоустойчивости используется горизонтальное масштабирование или дублирование всех серверов и настройка их автоматической "горячей" замены. И в том, и в другом случае выполняется дублирование всех критичных компонентов системы. При горизонтальном масштабировании компоненты работают параллельно (это к тому же повышает устойчивость к нагрузкам), а при использовании схемы с «горячей заменой» резервный компонент включается только в момент выхода из строя основного.

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