
380
2
부
구현
10.110.1
분열, 공황 그리고 혼란 분열, 공황 그리고 혼란
다음과 같은 장면을 상상해보자. 어느 조용한 금요일 오후, 팀은 업무를 마치자마자 주말을 시
작할 작정으로 퇴근 시간이 되면 곧장 술집으로 빠져나가길 고대하고 있다. 그런데 갑자기 여
러 이메일을 수신하게 된다. 웹 사이트가 오동작하고 있다는 것이다! 트위터는 회사의 장애 관
련 내용으로 도배되고 다급해진 상사는 잔소리를 해댄다. 결국 평온한 주말에 대한 기대가 연
기처럼 홀연히 사라진다.
다음 트윗만큼 문제를 잘 요약한 글도 드물 것이다.
1
우리는 모놀리스를 마이크로서비스로 교체했다. 그리고 모든 장애가 마치 살인 사건을 다루는 추
리극처럼 돼버렸다.
11
어떤 것이 잘못됐고 무엇이 원인인지 추적하는 것이 첫 번째 할 일이다. 하지만 용의자가 많으
면 추적은 어려워진다.
단일 프로세스형 모놀리식 애플리케이션 세계에서는 최소한의 조사를 시작할 확실한 장소가
있다. 웹 사이트가 느린가? 모놀리스라서 그렇다. 웹 사이트가 이상한 오류를 발생시키는가?
모놀리스라서 그렇다.
CPU
가
100
%인가? 바로 모놀리스다. 탄내가 나는가? 답을 알고 있을
것이다.
22
단일 장애 지점이 있으면 장애 조사가 다소 간단해진다!
이제 우리의 마이크로서비스 기반 시스템을 생각해보자. 사용자에게 제공하는 기능은 ...