Чи є приклади втілення та ефективного реагування на "мавпу хаосу"?


15

Нещодавно Джефф Етвуд написав допис у блозі про реалізацію Netflix "Мавпи хаосу". Це стаття дуже високого рівня. Мені цікаво, чи хтось реально реалізував цю методику тестування системи.

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


1
І можливо, які стратегії ви використовуєте для тестування такої архітектури?
rlb.usa

... Ну, мабуть, ми чекаємо, коли хтось із команди Netflix прийде і відповість на це lol
Earlz

Я, мабуть, кину на це щедрість. Могли бути дуже цікаві
прихильники

1
Домовились ... Але належить до програмістів, а не ТАК. Проголосували за міграцію.

Відповіді:


5

Ізоляція та витончена деградація - це загальні стратегії. (Ще один термін, який ви можете побачити, схожий на ізоляцію, є роз'єднанням , хоча я схильний бачити, що в меншому масштабі, наприклад, в OOD / P. Концепція така ж.)

Ви ізолюєте різні частини системи один від одного, так що якщо одна не працює, інші можуть відповідати на запити. Як сказано в блозі Netflix , якщо пошук не працює, потокове передавання все одно буде добре. Це просто означає, що пошук і потокове передача там, де їх розділили достатньо, щоб вузьке місце або недієздатність одного не вплинули на інший.

З витонченою деградацією, якщо найкращого впровадження чогось недоступного, у вас є щось інше. Знову з посту Netflix вони мають систему для перегляду речей, які ви спостерігали та сподобалися, а потім опрацювання персоналізованих рекомендацій інших речі для перегляду. Якщо ця система не працює, вони повертаються до показу рекомендацій із загальнодоступних речей. Сенс у тому, щоб мати план B, план C тощо, щоб щось робити або показувати, коли план A не працює, а не показує нічого або помилку.

Один загальний приклад витонченої деградації на стороні клієнта (незалежно від того, реалізація є загальною чи ні) включає використання JavaScript на веб-сайтах. Якщо javascript у веб-переглядачі відключений або просто недоступний, сторінки сайту все-таки повинні успішно працювати без нього. Це може бути не таким швидким або гладким, але воно все ж має працювати, а не стати непридатним.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.