서비스를 넘나드는 관찰 가능성으로.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
![](https://platanus.me/wp-content/uploads/2024/06/20240619-234317-7588-LR84-1024x439.jpg)
- 원제 : Observability Engineering
- 저자 : Charity Majors, Liz Fong-Jones, George Miranda
- 출간 : O’Reilly Media, 2022 / 한빛미디어, 2024
프로덕트 운영을 하다 보면 서비스 품질을 유지하기 위해 항상 모니터링 알람에 신경을 써야 할때가 많다. 그러나 대부분의 모니터링은 사고가 먼저 있고 그로 인한 사후 대응성격의 산출물인 경우가 많다. 하지만 현대의 비즈니스는 복잡한 요구사항을 가지고 있고 그에 따라 서비스 아키텍처도 규모가 커지고 시스템끼리 의존성이 높아진다. 오늘날 이러한 아키텍처는 더이상 모니터링 만으로는 장애를 추적하기 힘들어지고 있다.
이 책은 그래서 기존의 메트릭을 기반으로한 모니터링과 달리 ‘관찰 가능성’이라는 주제를 가지고 모니터링과 관찰 가능성은 무엇이 다른지, 장애 추적을 위해 어떻게 계측을 해야 하는지, 그 성숙도를 어느정도로 가지고 가야 하는지에 대해 설명하고 있다.
우선 전반부에는 관찰 가능성에 대한 개념적 설명이 먼저 나온다. 앞서 설명했듯 모니터링이란 과거의 장애에 대한 사후 대응이며 그로인해 알려진 무지에 대해 찾아낼 수 있도록 특화되어 있다. 또, 직관에 의존하고 그렇기 때문에 예측을 위한 방법이 아니라고 설명한다. 관찰 가능성은 그보다 사용자 경험에 따라 측정하며 알려지지 않은 실패에 대해 발견할수 있도록 특화되어 있다. 높은 카디널리티와 디멘셔널리티를 가지고 질의를 통해 문맥을 파악하고 디버깅을 할 수 있도록 도와준다.
모니터링은 단순히 ‘CPU 사용량 높음’ 또는 ‘/api/order 404 에러’ 등 기존에 알고 있는 문제를 알리는것을 의미한다면 카디널리티를 가지는 관찰 가능성은 ‘서울에서 접속한 사람중 갤럭시를 사용중이며 안드로이드 14를 사용하면서 언어가 한글인데 앱을 수요일에 설치했고 ap-northeast-2 리전에 x5에 접근한 사용자’ 라는 질의를 할 수 있게 된다. 이렇게 되면 다양한 서비스가 처리하는 요청 혹은 추적의 진행상황을 따라갈 수 있게 된다. 그러므로 여러 서비스의 구성요소의 경계를 넘나드는 문제를 진단할수 있는 분산추적을 쉽게 할 수 있게되는 것이다.
따라서 이런 관찰 가능성을 적용하기 위해서는 소규모 어플리케이션, 또는 프로덕트의 작은 모듈 단위 보다는 큰 문제가 발생하는 상황부터 먼저 적용해야 효과가 있다고 한다. 저자는 나아가 개발 초반에 관찰 가능성을 위한 계측을 도입한다면 개발이 진행되면서 전체 프로덕트에 미치는 영향을 쉽게 고려하고 문제를 빠르게 파악할 수 있게 된다고 설명한다.
![](https://platanus.me/wp-content/uploads/2024/06/20240619-234614-7614-LR84-1024x439.jpg)
따라서 이러한 활동들은 SLO (서비스 수준 목표) 를 정하는데도 기반이 된다. 일반적인 메트릭이 아닌 ‘사용자 여정’과 같은 문맥이 있는 상황에서 장애를 예측할 수 있기 때문에 외부 사용자 경험이 받아들이기 힘든 수준까지 떨어지기 전에 문제를 식별하고 고칠수 있도록 한다. 책에서는 이 관찰 가능성을 기반으로 SLO 소진에 대한 시나리오, SLO 구축과 도입 비용, 관찰 가능성을 위한 스토리지 선택 방법, 추적에 대한 샘플링 기법에 대해서도 상세하게 설명한다. 마지막으로 이런 새 기법들이 늘 겪는 문제인 ‘조직에 안착시키기’에 대한 내용도 후반에 소개된다.
책을 읽는 과정에서는 다소 추상적이라고 느꼈는데, 한번 끝까지 읽어보고 나니 메트릭이 아닌 ‘문맥을 찾아 예측한다’는 관점이 나에겐 신선했다. 모놀로식보다 규모가 큰 마이크로 서비스 구성에서 서비스간 경계를 넘어서는 계측을 할 수 있다는점도 신기했다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.