게임 데이는 의도적으로 장애를 발생시켜 팀이 실제 상황에서 어떻게 대응하는지 관찰하고 개선점을 찾는 시뮬레이션 훈련이다. 마치 소방 훈련이나 재해 대피 훈련처럼, 실제 장애가 발생하기 전에 미리 경험해보는 것이다.
특정 기간을 정해놓고 게임 데이(Game Day)를 실행하게 되면, 개발자들은 장애를 대응하기 위해서 일사불란하게 움직인다. 여러 개발자들끼리 힘을 합치면 어떻게든 장애는 해결할 수 있을 것이다. 하지만 미리 사전에 훈련되어있지 않은 장애 대응으로 인해, 특정 권한을 급하게 누구에게 요청해야한다거나, 이 시크릿 키는 누가 들고 있다거나와 같은 이유로 장애 대응이 늦어지는 이유를 확인할 수 있다.
책 소개
카오스 엔지니어링은 어느 정도 개발을 접해본 사람에게는 익숙한 키워드일 것이다. 특히 넷플릭스의 카오스 몽키를 잘 알고 있을 것이다. 넷플릭스는 카오스 엔지니어링 분야의 선구자로서, 무작위 서버를 중단시키는 카오스 몽키(Chaos Monkey), 전체 AWS 가용 영역(AZ)를 다운시키는 카오스 고릴라(Chaos Gorilla), 마지막으로는 전체 AWS 리전을 차단하는 카오스 콩(Chaos Kong) 이러한 친구들을 쓴다.
이 책에서는 카오스툴킷(chaostoolkit)이라는 파이썬 스크립트를 이용해서 특정 서버를 다운시키는 방법들을 제공한다. 기본적으로 쿠버네티스 환경을 쓰고 있다는 가정하에 진행하기 때문에, deployment나 service 등의 쿠버네티스 매니페스트들을 다룬다. 그 외에도 게임 데이(Game Day)나 관측가능성(Observability)에 대해서 다룬다.
이 책의 첫 번째 순서는, 가설 기반 접근법(Hypothesis-Driven Approach)을 통해서 "시스템이 프로덕션 환경의 격동적인 조건을 견딜 수 있는 능력에 대한 신뢰를 구축하기 위해 시스템을 실험하는 학문"으로 정의하는 것이다. 핵심은 "우리가 이런 경우에 시스템이 어떻게 작동할지 알고 있는가?"라는 질문에서 시작한다.
다음으로는 게임 데이에 대해서 소개하고, 이후 카오스툴킷을 이용해 카오스 엔지니어링 자동화하여 수행할 수 있는 지를 다룬다. 그리고 점차 반경을 넓혀 나간다. 실험을 프로덕션에서 실행할지 고려할 때, 실제 프로덕션 인시던트를 일으키지 않도록 효과를 가능한 한 제한하는 것이 좋은데, 이를 블래스트 반경(Blast Radius)이라고 한다. 이를 서서히 넓혀 나가면서 프로덕트에 대한 카오스 엔지니어링이 완전히 수행되는 것을 목표로 한다.
이 책을 읽으면 좋은 대상
카오스 공학을 어떻게 도입할 지 고민 중인 사람에게 권한다. 특히, 이미 카오스 엔지니어링의 도입을 가정하고 이 책은 어떻게 도입하는지에 따라서, 간단한 게임 데이와 같은 코드 없는 테스트 방법부터 카오스툴킷 등을 제시한다. 다만 왜 카오스 공학을 도입해야 하는지, 어떤 상황에서 도입해야 하는 지와 같은 내용은 없기 때문에 참고하면 좋을 것 같다.
그렇다면 좀 더 자세하게 추천하고자 하는 대상은 프로덕션 환경에서 코드에 책임을 지는 사람이나, 시스템 장애 경험이 있는 팀에 추천한다. 협업을 통해 지속적인 카오스 공학을 실현하는 방식까지 종합적인 내용을 다루는 실무서이므로, 개인뿐만 아니라 팀 전체가 함께 읽고 실천할 때 더 큰 효과를 얻을 수 있다고 생각한다. 특히, 시스템 안정성과 복원력이 비즈니스 성공에 직접적인 영향을 미치는 조직에서 일하는 모든 기술 관련 직군에게 유용한 책이라고 할 수 있다.
책의 장점과 아쉬운 점
이 책은 짧고 간결하다는 점이 장점이자 아쉬운 점인 것 같다. 카오스 공학이라는 DevOps 이외에 분야에서는 생소한 내용임에도 불구하고 굉장히 책의 분량이 짧고, 글자 폰트가 커서 금방 읽을 수 있었다. 정말 카오스 공학의 기본기에 대해서 간단하게 이론적인 부분을 설명하고, 실제 사례를 들어서 설명한다.
장점이라고 생각한 이유는 먼저, 짧고 간결한 덕분에 카오스 엔지니어링에 대한 기본적인 내용을 빠르게 습득할 수 있었다는 점이다. 실제 사례와 함께 이론을 설명하여 읽고 나면, 아 카오스 공학을 통해서 어떤 목표를 세우고-예를 들면 분당 스트리밍 시작 성공률이 99% 이상-그러고 나서는 어떤 식으로 추진할 수 있겠다. 정도의 내용을 손쉽게 이해할 수 있다.
다만, 이론 -> 실제 사례로 이어지긴 하지만, 정말 구체적인 실행 방법에 대해서는 다루지 않기 때문에 이 책만 읽는다고 카오스 공학에 대한 의문점이 모두 가시지 않을 것이다. 이 점은 사실 책을 집어들고 분량을 확인해 보았을 때만 해도 그럴 것 같았다. 책 자체의 아쉬운 점이라기보다는 개인적인 아쉬운 점으로, 카오스 공학에 대해서 A to Z까지 모두 다루고 싶다면 이 책으로 기본기를 접하고 다른 콘텐츠를 통해서 공부하거나, 보다 분량이 많은 자세한 책이 필요할 것 같다.
총평 및 추천 여부
카오스 공학에 대해서 꽤 모호하게 알고 있는 부분이 많았다. 그냥 뭐 넷플릭스는 서버를 중단시키는 스크립트가 프로덕션에서 돌고 있다 정도 전해들었고, 찾아보니 그런 게 있더라 정도였었다. 그리고 실제로 카오스 공학을 적용할 수 있을까에 대한 생각은, 전혀 No였었다.
하지만 이 책을 읽으며, 간단하게 카오스 공학을 위한 스크립트 없이도 게임 데이 등으로 직접 서비스 장애에 대응하는 팀의 방법들을 볼 수 있었고, 생각보다 카오스툴킷을 이용하여 카오스 엔지니어링을 구현하는 것을 어렵지 않게 나와있다. 매번 카오스툴킷의 작업을 Cron을 통해서 실행하면서 카오스 공학을 꾸준히 실천할 수 있는 수준까지 다룬다. 관심이 있다면 한 번 읽어보는 것을 추천한다.
'후기 > 책' 카테고리의 다른 글
책 리뷰 : 코드로 인프라 관리하기 (5) | 2025.07.20 |
---|---|
책 리뷰 : 이펙티브 타입스크립트 (4) | 2025.07.13 |
책 리뷰 : 소프트웨어 장인 정신 이야기 (1) | 2025.06.03 |
책 리뷰 : 이펙티브 엔지니어 (1) | 2025.06.03 |
책 리뷰 : Go 인 액션 (Go in Action) (6) | 2025.05.29 |