Программист, CEO SHIFU.IO

Конспектируя Кабанчика: Сбои и Отказы системы

Сбой и отказ системы - разные вещи.

Сбой

Сбой - выход из строя одного из узлов системы без изменения работоспособности системы.

Например:

Отключился один из реплицируемых узлов в кластере, потоки перекинулись на реплику.

Система продолжает работать в прежднем режиме, данные не теряются (или почти не теряются - это зависит от архитектуры), пользователи разницы не замечают.

Отказ

Отказ - отказ системы в целом или части ее функионала.

Упал единственный сервер базы данных в системе, пользователь видит 4xx или 5xx ошибку, ничего не работает.

Антихрупкость

Тут вспоминается термин введенный Насимом Талебом - Антихрупкость.

Один из способов достижения этого - проектирование с учетом сбоев и тестирование путем отключения узлов системы.

Например Chaos Monkey от Netflix.

Плюсы

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

Естественно в меру, RAID и прочие решения все равно будут.

Но, снижая уровень RAID или стоимость оборудования, или используя другие подходы на десятках или сотнях тысяч серверов можно существенно сэкономить.

Исключения

Когда последствия сбоев не обратимы.

Например - проникновение в систему или утечка данных.