Есть ли примеры реализации и эффективного реагирования на «Chaos Monkey»?

15

Джефф Этвуд недавно написал сообщение в блоге о реализации Netflix "Chaos Monkey". Это статья очень высокого уровня. Мне любопытно, реализовал ли кто-нибудь этот метод для тестирования системы.

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

Robotsushi
источник
1
И, возможно, какие стратегии вы используете для тестирования такой архитектуры?
rlb.usa
... Ну, я думаю, мы ждем кого-то из команды netflix, который придет и ответит на этот вопрос
Эрлз
Я, вероятно, выброшу награду за это. Могли бы быть очень интересные ответы
Robotsushi
1
Согласился ... Но принадлежит программистам, а не ТАК. Проголосовал за миграцию.

Ответы:

5

Изоляция и постепенная деградация являются общими стратегиями. (Другой термин, который вы можете увидеть, похожий на изоляцию, - это разъединение , хотя я склонен видеть это в меньшем масштабе, например в OOD / P. Концепция та же.)

Вы изолируете различные части системы друг от друга, так что если один из них не работает, другие могут по-прежнему отвечать на запросы. Как сказано в блоге Netflix , если поиск не работает, потоковая передача все равно будет в порядке. Это просто означает, что поиск и потоковая передача были достаточно разнесены, чтобы узкое место или неспособность одного не повлиять на другое.

При постепенном ухудшении, если лучшая реализация чего-либо недоступна, вам нужно заполнить что-то еще. Опять из поста Netflix, у них есть система для просмотра вещей, которые вы смотрели и любили, и затем выработка персональных рекомендаций других на что посмотреть. Если эта система не работает, они возвращаются к рекомендациям вещей, которые в целом популярны. Суть в том, чтобы План B, План C и т. Д. Выполняли или показывали что-то, когда План A терпит неудачу, а не показывает ничего или ошибку.

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

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

Джоэл Б Фант
источник