Jeff Atwood는 최근 Netflix의 "Chaos Monkey"구현에 대한 블로그 게시물을 작성했습니다 . 매우 높은 수준의 기사입니다. 누군가가 실제로 시스템 테스트를 위해이 기술을 구현했는지 궁금합니다.
Im이 실제로 묻고 자하는 것은 다음과 같습니다. 아키텍처가 시스템 충돌의 일부에서 살아남을 수 있도록 어떤 전략을 구현합니까?
Jeff Atwood는 최근 Netflix의 "Chaos Monkey"구현에 대한 블로그 게시물을 작성했습니다 . 매우 높은 수준의 기사입니다. 누군가가 실제로 시스템 테스트를 위해이 기술을 구현했는지 궁금합니다.
Im이 실제로 묻고 자하는 것은 다음과 같습니다. 아키텍처가 시스템 충돌의 일부에서 살아남을 수 있도록 어떤 전략을 구현합니까?
답변:
격리 와 우아한 저하 가 일반적인 전략입니다. ( OOD / P와 같이 더 작은 규모로 볼 수는 있지만 격리와 비슷한 다른 용어는 분리 입니다. 개념은 동일합니다.)
시스템의 다른 부분을 서로 분리하여 시스템이 다운 되어도 다른 시스템은 여전히 요청에 응답 할 수 있습니다. 등 넷플릭스 블로그는 말했다 검색이 작동하지 않는 경우, 스트리밍 여전히 잘 될 것입니다. 이는 하나의 병목 현상이나 무능력이 다른 것에 영향을 미치지 않을 정도로 충분히 분리 된 검색 및 스트리밍을 의미합니다.
품격있는 저하로 무언가를 구현할 수 없다면 다른 것을 채워야합니다. Netflix 게시물에서 다시 보았고 좋아하는 것을보고 다른 사람의 맞춤 추천을 수행 할 수있는 시스템이 있습니다. 볼 것들. 해당 시스템이 다운되면 전체적으로 인기있는 사항에 대한 권장 사항을 표시합니다. 요점은 계획 A가 실패하거나 아무것도 표시하지 않고 계획 A가 실패했을 때 무언가를 보여 주거나 계획하는 계획 B, 계획 C 등을 갖도록하는 것입니다.
일반적인 성능 저하의 일반적인 클라이언트 측 예제 (구현이 일반적인지 여부에 관계없이)는 웹 사이트에서 javascript를 사용합니다. 브라우저의 자바 스크립트가 비활성화되어 있거나 단순히 사용할 수없는 경우에도 사이트 페이지는 브라우저없이 성공적으로 작동해야합니다. 빠르거나 매끄럽지는 않지만 사용할 수 없게되기보다는 여전히 작동해야합니다.
그러나 이것은 매우 일반적인 아이디어입니다. 제공하는 서비스와 서브 시스템 및 이들 간의 종속성에 따라 거의 모든 프로젝트가 다르게 구현할 것입니다.