Release의 모든 것 - 대규모 웹 분산 시스템을 위한 운영 고려 설계 | 아마존 소프트웨어 공학 분야 베스트셀러
마이클 나이가드 지음, 박성철 옮김 / 한빛미디어 / 2023년 11월
평점 :
장바구니담기



이번에 한빛미디어에서 책을 제공받아 'release의 모든 것' 리뷰를 하게 되었다. 스타트업을 개인 시간에 준비하면서 아무리 좋은 서비스를 만들었다고 해서 이를 유지보수하고 돌발 상황에 대비하는 연습을 미리 해볼 수는 없다. 그래서 배포 이후에 발생되는 일들을 미리 공부하고 싶었는데 좋은 기회가 생겼다. 개발과 운영은 아예 다른 카테고리에 있다고 생각한다. 서비스의 본질을 만드는 것과 많은 이용자들의 피드백 또는 서비스를 정상적으로 운영하는 것을 한 사람이 둘 다 해보이는 경우를 찾아 보기 힘들기 때문이다.



책에서는 안정성 구축, 운영 고려 설계, 시스템 전달, 체계적 문제 해결 파트로 나뉘어져 있다. 시스템의 작동을 유지하면서 멈추지 않게 할 필수 조건인 안정성과 제어/투명성/가용성에 좋은 서비스 시스템 운영 환경 패턴, 배치를 고려한 설계와 무중단 배치 그리고 이질적인 서버 간의 버전 관리, 깨지지 않는 시스템을 구축하는 방법을 배울 수 있게 된다.

책 중에서 가장 재미있었던 파트는 오전 5시 문제이다. 필자가 만든 서비스의 점검 시간이 오전 5시인데 이 시간에 30여개의 인스턴스가 모두 중단되면서 점검 후 재시작된다. 문제는 오전 5시가 방문자 수가 늘어나기 시작하는 시간이라는 것이다. 이 때문에 트래픽이 증가하면서 어플리케이션 서버의 연결들이 즉시 잠김 상태가 되는 문제를 찾고 해결해나가는 과정이 적혀있다. 여기서 필자는 문제를 추상화하여 찾아내었지만 문제 해결을 추상화 수준이 아니라 더 파고들어가 해결해야했다는 점이 인상깊었다.



백엔드 현업에서 주로 발생되는 상황을 다루다 보니 종사자가 아닌 이상 한번에 모든 것을 이해하기는 힘들었다. 백엔드 종사자가 아니라면 굳이 책의 모든 지식을 알려고 하지 말고 이런 상황에서는 어떤 것을 점검하고 어떤 해결 방법을 써야겠다는 생각을 정리만 해둔다면 충분한 공부가 될 것이다. 곳곳에 파트와 관련된 이야기가 있어 좀 더 상황에 몰입하여 생각해볼 수 있는 기회가 많아 좋은 부분이라고 생각한다.


소프트웨어 정상적인 작동을 위해 공부하고 연구하는 아키텍트, 설계자, 개발자분들에게 이 책을 추천한다. 한번 읽어둔다면 분명 책 속 내용과 유사한 상황에 재빠르게 대응하여 문제 해결할 수 있는 능력을 키울 수 있다고 생각된다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo