TL; DR : 혼돈의 원숭이가 된 2010 년에 개발 에 넷플릭스 와 2012 년 야생에 방출 의 일부 유인원 육군 , 사이에서 격렬하게 인기 헌신적 인 추종자 . 구축 혼돈 원리 공학, 군대 시스템에 일정한 오류를 주입 실패 복원력을 증가시킨다.
개념
Chaos Monkey는 AWS를 위해 특별히 개발되어 Auto Scaling Group 내에서 인스턴스를 임의로 종료합니다. 엔지니어가 경고하고 발견 된 장애에 신속하게 대응할 수있는 업무 시간 동안 실행해야합니다.
시미 안 육군
군대의 구성원은 다른 수단을 통해 혼란 을 심었습니다 .
다른 원숭이가 도움이 되고 무리의 약한 구성원을 제거합니다.
적합성 원숭이는 모범 사례를 따르지 않는 인스턴스를 종료합니다.
보안 원숭이는 구성 및 서비스에서 알려진 보안 취약점을 찾습니다.
Doctor Monkey는 특정 지표에 맞지 않는 비정상 인스턴스를 종료합니다.
Janitor Monkey는 회수 할 미사용 자원을 찾습니다.
실패는 불가피하다
시스템 고장은 불가피하며, 항상 문제가 발생 합니다. 무엇을 선택하지 못할 수도 있지만 언제 선택할 수 있습니다. 하루 종일 작은 오류를 도입하면 엔지니어가 참석할 수 있습니다. 부적합한 서비스를 신속하게 중단함으로써 배포 전에 장애가 자주 발생하도록합니다. 환경을보다 적대적으로 만들면 서비스가 프로덕션에 들어가기 훨씬 전에 문제가 발생하는 개발자가 될 수 있습니다. 기존 서비스와 새로운 서비스의 통합 단계에서 장애가 신속하게 드러날 것이지만, 이전 프로덕션 서비스는 이미 탄력적이기 때문에 문제가 없습니다.
소가 아닌 애완 동물
모두 가 최근에 알려줄 것입니다 : 서버를 애완 동물로 취급하지 마십시오 . 많은 힘이 있으며 단일 장애 지점으로 인해 시스템이 다운됩니다. 서버를 얼마나 잘 조정하고 최적화 할 수 있는지, 하드웨어를 얼마나 많이 얻을 수 있는지, 처리 할 수있는 양에 관계없이 소규모의 확장 가능한 인스턴스의 무리와 결코 일치하지 않습니다. 카오스 원숭이는 조만간 원숭이가 올 것이기 때문에 모든 실패 지점을 제거하는 것에 대해 생각할 것을 권장합니다! 모두가 실패하고 심지어 아마존 S3도 예측할 수없는 정전이 발생했습니다 .
사기 방지
그렇다면 이론은 무엇이며 왜 작동합니까? Nassim Nicholas Taleb 는 자신의 저서 Antifragile 에서 살아있는 자기 인식 시스템이 작은 수준의 임의성에서 혜택을 받고 실제로 역경에 직면 할 때 더 나은 개념을 설명합니다. 이것은 어닐링과 유사합니다.
그는 또한 시스템에서 부품의 취약성 이 전체의 반 취약성 으로 전환되는 진화 적 방법을 설명합니다 . 전송은 두 가지 수준에서 발생합니다.
환경에 가장 적합한 소규모 변경 (개발자가 변경) 을 수행하면 테스트를 통과 하고 전파 하고 배포 할 수 있습니다. 표준 개발 수명주기 .
환경에서 더 큰 수준의 임의성을 견딜 수없는 부품의 고장으로 인해이를 견딜 수 있었던 나머지 부품은 이전보다 변화하는 환경을보다 잘 처리 할 수있는 시스템을 구성합니다. 이것은 본질적으로 혼돈 원숭이 입니다.
두 번째 방법을 사용하면 더 큰 수준의 무작위성을 견딜 수 있습니다.