넷플릭스는 스트리밍 서비스를 AWS에서 운영했는데, 그곳에서는 인스턴스 장애가 흔했고 업계는 장애로 큰 타격을 입은 적이 있었다. 엔지니어링 팀은 예상치 못한 장애를 기다리는 대신 스스로를 놀라게 하기로 했다.

운영 환경을 일부러 망가뜨린다. 카오스 몽키는 운영 중인 AWS 인스턴스를 무작위로 종료해, 엔지니어들이 고객이 눈치채지 못하는 가운데서도 견디는 서비스를 만들어야 하도록 강제한다.

작은 도구가 각 클러스터에서 인스턴스를 무작위로 하나 골라, 평일 업무 시간에 예고 없이 종료한다. 엔지니어들은 대기하며 서비스가 어떻게 반응하는지 지켜본다. 넷플릭스는 2012년 7월 카오스 몽키를 오픈소스로 공개했고, 이후 '시미안 아미'에 재니터 몽키와 시큐리티 몽키를 추가했다. 이들이 내건 원칙은 '예상치 못한 대형 장애에 맞서는 최선의 방어는 자주 실패하는 것'이었다.

카오스 몽키는 넷플릭스의 아키텍처가 고객 영향 없이 인스턴스 손실을 견디도록 강제했고, 장애 훈련을 일상으로 만들었다. 오픈소스로 공개된 이 도구는 테크크런치와 와이어드에 보도됐으며, 스택 익스체인지의 제프 앳우드는 같은 아이디어로 자신의 장애 문제를 해결했다고 밝혔다. 이 관행은 이후 카오스 엔지니어링이라는 분야로 발전했다.

넷플릭스는 스트리밍 서비스를 AWS에서 운영했고, 클라우드에서는 인스턴스가 실패한다. 호스트가 죽고, 네트워크가 끊기고, 로드 밸런서가 오작동한다. 엔지니어링 팀은 장애가 약점을 드러내기를 기다리는 대신 카오스 몽키를 만들었다. 이 소프트웨어는 업무 시간에 운영 인스턴스를 무작위로 비활성화하며, 엔지니어들은 지켜보며 대기한다.

이름은 '데이터 센터에 무기를 든 야생 원숭이를 풀어놓아 인스턴스를 무작위로 쏘아 떨어뜨리고 케이블을 갉아먹게 하면서도, 우리는 고객에게 중단 없이 서비스를 계속 제공한다'는 데서 나왔다. 핵심은 도구 자체가 아니라 사고방식의 변화였다. 시스템이 매일 무작위 공격을 견뎌야 한다면, 아무것도 고장 나지 않기를 바라는 대신 자동 복구를 구축하게 된다.

2012년 7월 넷플릭스는 카오스 몽키를 오픈소스로 공개했고, 그 아이디어는 퍼져나갔다. 테크크런치와 와이어드의 보도로 '자주 실패하라'는 말은 널리 알려진 엔지니어링 모토가 되었다. 스택 익스체인지의 제프 앳우드는 자신의 팀이 '카오스 몽키가 그들을 선택한' 뒤에야 장애 문제를 해결했다고 말했다. 이 관행은 이후 운영 시스템을 실험해 격동의 조건을 견딜 수 있다는 확신을 쌓는 카오스 엔지니어링으로 공식화되었다.

업무 시간에 무작위로, 사람 없이 발생하는 장애는 드물고 두려운 중단을 엔지니어들이 대기하는 일상적 훈련으로 바꾼다.

자주 실패하면 자동 복구 메커니즘이 강제되므로, 새벽 3시의 장애가 더 이상 위기가 되지 않는다.

오픈소스 공개는 아이디어에 힘을 실어주었다. 다른 기업들이 이 관행을 도입했고, 그것은 하나의 분야가 되었다.

이름 덕분에 개념이 잊히지 않았고, 그래서 이 관행이 그렇게 빠르게 퍼졌다.

예측할 수 없는 장애를 기다리지 말라. 낮에 엔지니어들이 지켜보는 가운데 작은 장애를 일으켜, 새벽 3시의 재앙이 가르치기 전에 시스템과 팀이 복원력을 배우게 하라.

넷플릭스는 이 아이디어를 계속 확장했다. 레이턴시 몽키, 닥터 몽키, 전체 가용 영역을 대상으로 하는 카오스 콩, 이후 카오스 오토메이션 플랫폼을 선보였고, 2015년에는 전담 카오스 엔지니어링 팀을 구성했다. 원래의 시미안 아미 저장소는 2021년에 은퇴하고 독립 도구들로 대체되었지만, 이 관행은 넷플릭스를 넘어 성장했다. 카오스 엔지니어링은 책과 콘퍼런스, 상용 도구, 캐피털 원 같은 도입 기업을 갖춘 업계의 분야가 되었다.

근거 확인하기

출처

  1. Netflix/SimianArmy — Tools for keeping your cloud operating in top form Netflix (GitHub) · github.com
  2. Netflix Open Sources Chaos Monkey — A Tool Designed To Cause Failure So You Can Make A Stronger Cloud TechCrunch · beta.techcrunch.com ·
  3. Netflix Abuses Amazon With Monkeys. Now You Can Too Wired · wired.com ·
  4. What is Chaos Monkey? Chaos engineering explained InfoWorld · infoworld.com ·