[리뷰] 관찰 가능성 엔지니어링



한빛미디어 출판사의 "관찰 가능성 엔지니어링(알렉스 보텐 저/노승헌 역)"를 읽고 작성한 리뷰입니다.

표지


OpenTelemetry의 구축, 연동, 활용을 통해 관찰 가능성을 쉽게 배울 수 있게 구성된 책으로 실무에 바로 OpenTelemetry를 적용해 볼 수 있다는 점이 매력적이다.

관찰 가능성의 개념이 무엇인지 그리고 관련 기술이 어떻게 발전해왔는지 소개하는 책으로 특히 관찰가능성 기술 분야의 대표적인 오픈 소스인 OpenTelemetry의 구축 및 활용법을 다루고 있다.

몇 번의 클릭만으로 확장 가능한 우수한 인프라를 활용하여 개발에만 집중할 수 있는 시대가 왔다. 서버리스, 클라우드, 데브옵스 등은 이런 것들을 가능하게 해주는 개념이다.

언제나 그렇듯 개발자에게 많은 것을 몰라도 서비스를 가능하게 해주는 기술들의 장점 이면에는 단점도 숨어있다. 보이지 않는 블랙박스는 때로는 신경쓰지 않아도 되는 편리함을 주지만 다른 한 편으로는 그 내부의 동작방식을 알 필요가 있게 되었을 때 답답함이라는 단점을 선물한다.

분산 환경으로 마이크로서비스가 유행하는 요즘은 특히 각 서비스들이 쉽게 작동하지 않거나 의도한대로 작동하지 않는 경우가 흔하다.

바로 이런 문제점을 해결하고자 내부적으로 운영 환경에서 어떠한 일들이 벌어지고 있는지를 쉽게 추적하고자 노력하는 과정에서 관찰 가능성이 대두되었고 이 기술의 대표적인 오픈소스로 OpenTelemetry가 자리매김 하고 있다.

결론부터 말하자면 이 책은 관찰 가능성과 OpenTelemetry의 구축 및 활용법을 다룬 책이다.

개인적으로는 5년 전 즈음 사내 빅데이터 분석 환경을 구성하기 위해 빅데이터 생태계의 다양한 오픈 소스들을 직접 설치하고 운영할 기회가 있었다.

그 중 Fluentd, 로그스태시, 플럼 같은 것들을 활용하면서 로그 수집이 매우 편리해짐을 느꼈다. 언젠가 사내의 레거시 시스템들을 통합 로그 관리할 수 있는 별도 레이어를 구축해봐야겠다는 구상을 했고 업무 우선 순위에 밀려 완성시키지는 못했지만 구축 시도 과정에서 관련 지식들을 다양하게 습득할 수 있었다.

덕분에 본 도서를 한층 깊게 이해하는 데 도움이 되었고 통합된 로그 분석 환경을 구축하고자 개인적으로 골머리 앓았던 많은 부분들을 OpenTelemetry가 어떻게 현명하게 대처하고 있는지 엿볼 수 있었기에 이 책을 더욱 흥미롭게 읽을 수 있었다.

이 책에서는 구축, 연동, 활용 방법을 다루지만 OpenTelemetry을 어떻게 구현했는지는 다루고 있지 않기에 내부 동작 방식을 정확히는 알 수 없다.

다만 구축 및 활용 과정의 가이드를 보며 개인적으로 했던 고민들을 오픈소스 기여자들이 어떤 접근 법으로 해결했는지를 엿볼 수 있어 관찰 가능성과 OpenTelemetry에 대한 배움 외에도 설계 측면에서 소득이 많아 즐거웠다.

이 책을 읽기에 앞서 여러 사전 지식들이 필요하다. 주 언어로 Python의 기본 문법 및 웹 관련 기술들을 알아 두어야 OpenTelemetry를 연동하는 방법이 수월하게 읽힐 것이다.

더불어 도커나 쿠버네티스와 같은 오늘날의 마이크로서비스를 가능하게 만들어준 인프라 기반 지식들이 필요하고 실제로 실습도 도커 환경에서 진행하기에 관련 기술을 활용한 실습 경험이 없다면 실습을 따라하기에 무리가 있을거라 생각한다.

OpenTelemetry의 다양한 기능을 살펴보는 것 보다는 아래 그림과 같은 실습 환경 구성에 대한 개요를 살펴보는 것이 본 도서의 큰 그림을 잡는데 도움이 될 것 같다. 실습환경

grocery-store는 특히 OpenTelemetry의 다양한 기능을 확인할 수 있도록 다양한 조작을 걸치며 변화시킨다는 점을 미리 알면 도움이 될 것이다. 프로메테우스, 예거, 그라파나와 같은 유사 생태계의 오픈 소스들의 도움을 받아 본연의 목적을 충실히 활용할 수 있도록 구성된 부분은 흥미로운 부분이다.

또한 OpenTelemetry 환경에서 활용할 수 있는 라이브러리는 매우 다양하다. 거의 왠만한 환경은 거의 다 지원한다고 보면 된다. OpenTelemetry의 가장 큰 장점 중 하나이다. 지원환경

아래 그림은 실제 Python 환경에 어떻게 적용할지를 가장 잘 보여주는 도식이다. 적용방법

이러한 대략적인 과정들을 거쳐 OpenTelemetry를 구축하고 레거시와 연동에 성공했다면 이렇게 수집한 데이터를 어떻게 활용할지도 중요한 부분이 된다. 전자의 내용이 파트2에, 후자의 내용이 파트3에 담겨있다. 참고로, 파트1은 관찰가능성의 개념과 관련 기술이 그동안 어떻게 발전해왔는지를 소개한다.

OpenTelemetry의 컬렉터는 아래 그림에서 보는 바와 같이 일종의 브로커 역할을 수행한다. 다양한 또 다른 오픈소스와의 연동을 통해 확장성을 제공 가능하다는 것이 매력적이다. 컬렉터

아래 그림은 그라파나를 활용한 대시보드와 경고창 화면인데 OpenTelemetry을 중심으로 한 방대한 생태계가 놀랍다. 관련 기능들 하나하나 익숙해지는 데에도 많은 시간이 필요할 것 같다. 그라파나

정리하자면 이 책은 OpenTelemetry를 구축, 활용하는 과정을 통해 관찰가능성이 무엇인지 확실하게 이해하고 실무에 관찰가능성을 도입할 수 있는 방법을 제시한다.

마이크로서비스의 블랙박스 이슈로 골치 썩어본 경험이 있거나, 운영 환경의 분리 및 무지로 인해 고통을 겪고 있거나, 관찰 가능성에 관심 많은 독자에게 꼭 추천하고 싶은 책이다.

어려운 개념보다는 OpenTelemetry를 직접 만지고 다뤄봄으로써 관찰 가능성의 개념을 쉽게 익힐 수 있음은 물론 실무에 바로 적용하여 편리함을 만끽할 수 있기 때문이다.







© 2019.04. by theorydb

Powered by theorydb