2021-02-22-TIL
2021-02-22-TIL
시미야남은 넷플릭스 상에서 실서버를 죽이는 실험을 한다.
넷플릭스 초봉이 2억
운영 서버를 일부러 죽이는 실험: 카오스 엔지니어링
운영 중인 서버를 일부러 죽인다는 말은 처음 들으면 이상하지만, 넷플릭스가 공개한 Chaos Monkey가 바로 그 일을 한다. 프로젝트 문서는 Chaos Monkey가 운영 환경의 인스턴스를 무작위로 종료해서, 엔지니어들이 인스턴스 장애를 견디는 서비스를 만들게 한다고 설명한다.
이런 접근을 카오스 엔지니어링이라고 부른다. Principles of Chaos Engineering은 이를 “the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production”이라고 정의한다. 운영 환경의 거친 상황을 견딜 수 있다는 확신을 얻으려고 시스템에 실험을 하는 분야라는 뜻이다.
같은 문서가 드는 원칙은 다음과 같다.
- 정상 상태(steady state)에 대한 가설을 세운다. 내부 지표가 아니라 처리량, 오류율처럼 바깥에서 측정할 수 있는 출력으로 “시스템이 잘 동작한다”를 정의한다.
- 실제로 일어날 법한 사건을 바꿔 가며 넣는다. 하드웨어 고장, 소프트웨어 오류, 트래픽 급증 같은 것이다.
- 운영 환경에서 실험한다. 테스트 환경은 실제 트래픽과 다르기 때문이다.
- 실험을 자동화해 계속 돌린다.
- 영향 범위(blast radius)를 최소화한다. 실험이 실제 사용자에게 주는 피해를 작게 묶어 두는 책임이 실험하는 쪽에 있다.
서버는 언젠가 반드시 죽는다는 전제에서 출발하면, 장애가 났을 때 대응하는 것보다 평소에 작은 장애를 일부러 내서 약한 곳을 먼저 찾는 편이 낫다는 결론이 나온다. 이 실험이 의미가 있으려면 인스턴스 하나가 죽어도 다른 인스턴스가 요청을 이어받는 이중화와 자동 복구가 먼저 갖춰져 있어야 한다.
참고한 자료외부 출처 2
이 글은 저작권자의 CC BY 4.0 라이선스를 따릅니다.
댓글
아직 댓글이 없습니다