Управление проектами - статьи


Designing for FAILURE - ключ к успеху?Беседа с Брюсом Линдсеем - часть 4


СБ: Я думаю, что имеется еще один вариант: «Я этого делать не буду, так что выясните, нет ли какого-то другого способа получить ответ на интересующий вас вопрос или выполнить требуемую вам функцию». Это ситуация с несколькими возможностями выбора.

БЛ: Ну конечно, так всегда и происходит. Например, функция состоит в том, чтобы зарегистрировать некоторый UserID, и выясняется, что мы пытаемся зарегистрировать UserID, который уже зарегистрирован. На уровне выше уровня регистрации требуется принять решение о том, что делать дальше. На этом уровне можно сказать: «Пардон, но в нашей системе может быть только один Брюс, и вас мы в нее никогда не впустим. Пожалуйте прочь» или «А не смените ли вы свое имя на Стив?».

СБ: А как Вы учитываете возможности отказов при разработке системы, а не одиночного приложения, когда система может быть достаточно крупной и сложной, и ей свойственны проблемы масштабируемости?

БЛ: Конечно, здесь нужно придерживаться позиции врача: не навреди в случае отказа. Другими словами, не следует предпринимать опрометчивых действий при отсутствии уверенности в их правильности. По другому это называется «быстрым выявлением сбоев» (fail fast), а я здесь имею в виду системы, в которых, большей частью, поддерживается персистентное состояние. Может оказаться очень опасным продолжать работу системы при отсутствии понимания сути сбоя. Поэтому достаточно успешной является идея быстрого выявления сбоев и склейки согласованного состояния системы на основе тщательно поддерживаемых резервных данных.

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




Начало  Назад  Вперед



Книжный магазин