"Chaos Monkey"를 구현하고 효과적으로 대응하는 예가 있습니까?


15

Jeff Atwood는 최근 Netflix의 "Chaos Monkey"구현에 대한 블로그 게시물을 작성했습니다 . 매우 높은 수준의 기사입니다. 누군가가 실제로 시스템 테스트를 위해이 기술을 구현했는지 궁금합니다.

Im이 실제로 묻고 자하는 것은 다음과 같습니다. 아키텍처가 시스템 충돌의 일부에서 살아남을 수 있도록 어떤 전략을 구현합니까?


1
그리고 아마도 그러한 아키텍처를 테스트하기 위해 어떤 전략을 사용합니까?
rlb.usa

... 넷플릭스 팀의 누군가가 와서이 질문에 대답하기를 기다리고있는 것 같습니다
Earlz

아마 이것에 현상금을 던질 것입니다. 매우 흥미로운 답변을 가질 수 있습니다
Robotsushi

1
합의 ...하지만 프로그래머가 아닌 SO에 속합니다. 이주하기로 투표했습니다.

답변:


5

격리우아한 저하 가 일반적인 전략입니다. ( OOD / P와 같이 더 작은 규모로 볼 수는 있지만 격리와 비슷한 다른 용어는 분리 입니다. 개념은 동일합니다.)

시스템의 다른 부분을 서로 분리하여 시스템이 다운 되어도 다른 시스템은 여전히 ​​요청에 응답 할 수 있습니다. 등 넷플릭스 블로그는 말했다 검색이 작동하지 않는 경우, 스트리밍 여전히 잘 될 것입니다. 이는 하나의 병목 현상이나 무능력이 다른 것에 영향을 미치지 않을 정도로 충분히 분리 된 검색 및 스트리밍을 의미합니다.

품격있는 저하로 무언가를 구현할 수 없다면 다른 것을 채워야합니다. Netflix 게시물에서 다시 보았고 좋아하는 것을보고 다른 사람의 맞춤 추천을 수행 할 수있는 시스템이 있습니다. 볼 것들. 해당 시스템이 다운되면 전체적으로 인기있는 사항에 대한 권장 사항을 표시합니다. 요점은 계획 A가 실패하거나 아무것도 표시하지 않고 계획 A가 실패했을 때 무언가를 보여 주거나 계획하는 계획 B, 계획 C 등을 갖도록하는 것입니다.

일반적인 성능 저하의 일반적인 클라이언트 측 예제 (구현이 일반적인지 여부에 관계없이)는 웹 사이트에서 javascript를 사용합니다. 브라우저의 자바 스크립트가 비활성화되어 있거나 단순히 사용할 수없는 경우에도 사이트 페이지는 브라우저없이 성공적으로 작동해야합니다. 빠르거나 매끄럽지는 않지만 사용할 수 없게되기보다는 여전히 작동해야합니다.

그러나 이것은 매우 일반적인 아이디어입니다. 제공하는 서비스와 서브 시스템 및 이들 간의 종속성에 따라 거의 모든 프로젝트가 다르게 구현할 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.