Содержание

Сбой

Сбой (fault) – ситуация, когда работа одного из компонентов информационной системы отклоняется от ожидаемых характеристик. При этом вся система в целом продолжает функционировать.

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

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

Устойчивость к сбоям

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

Одним из способ раннего выявления потенциальных сбоев с целью выработки средств, которые бы обеспечили устойчивость к ним, является умышленное порождение самих сбоев. Самым известным инструментом, вероятно, является Chaos Monkey, который умеет непредсказуемо тушить виртуальные машины и контейнеры, составляющие инфраструктуру информационной системы. Такой подход позволяет выявить слабые места и предусмотреть сценарии, которые бы обеспечили устойчивость системы.

Виды сбоев

Аппаратные сбои

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

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

Программные сбои

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

Ошибки в программном обеспечении могут проявить себя:


Нефункциональные требования
НадёжностьМасштабируемостьУдобство сопровожденияСбой