Skip to content
Kendrick's Website Kendrick's GitHub Kendrick's Youtube Kendrick's Travel blog

Release의 모든 것 - 대규모 웹 분산 시스템을 위한 운영 고려 설계

10 min read
Cover

소개

지금 소개하는 책의 원제는 'Release it!'입니다.

Release it! 2nd edition - Amazon

두 번째 개정판은 2018년에 발표되었고, 교보문고에서는 저자를 아래와 같이 소개하고 있습니다.

전문 프로그래머이자 건축가로, 미국 정부와 은행, 금융, 농업, 소매 업계를 위한 시스템을 설계, 구축, 엔지니어링했다. 토탈리티 코퍼레이션의 엔지니어링 디렉터로 일하면서 여러 흥미로운 프로젝트를 수행하고 운영 팀을 이끌었다. 이 경험을 통해 높은 안정성을 갖춘 소프트웨어를 구축하는 데 관한 독특한 관점을 갖게 됐다. 이 외에도 수많은 기사와 사설을 작성하고, 기술 콘퍼런스에서 인기 있는 연사로 활동 중이다.

저자인 마이클 나이가드는 이 책을 통해 그의 35년의 경험과 실용적이고 현실적인 노하우를 제공합니다.

목차

1부: 안전성 구축 이 챕터에서는 서버의 높은 가용성을 보장하는 방법을 설명합니다.

2부: 운영 고려 설계 모던한 운영 환경에서 알아두면 좋은 패턴을 소개합니다.

3부: 시스템 전달 대량의 데이터를 다루는 방법에 대하여 설명합니다.

4부: 체계적 문제해결 서비스의 1.0 배포 이후의 트러블슈팅 그리고 카오스 엔지니어링에 대해서 이야기합니다.

책 후기

이 책은 다른 번역서와 달리 용어에 대한 세심한 설명과 정확한 번역으로 독자들에게 정확한 정보를 전달하려는 노력이 느껴집니다. 이를테면, 실무에서 Production을 실서버, 상용, 운영, 리얼서버 이런 식으로 혼용해서 사용하는 경우가 많은데, 얼추 비슷해서 한 단어로 번역해도 될 만한 용어의 차이에 대해서도 자세한 정보를 제공합니다.

한가지 예를 들면, 1장에서 distribution, deployment 그리고 delivery를 그냥 배포로 번역하지 않고, 배치, 전달 등과 같이 나누고 왜 그런지에 대해서 설명해주고 있습니다.

특히나 운영 쪽 서적의 경우, 같은 단어도 다르게 번역할 때가 있어 내가 난독증이 생겼나 싶은 느낌이 들 때가 있는데, 이 책에서는 이런 문제를 정확한 용어 선택 및 설명으로 보완합니다.

긜고 용어 설명에 관한 재미있는 비유가 많습니다. 예를 들면

4.7 척도 효과 생물학의 제곱-세제곱의 법칙은 코끼리 크기의 거미를 우리가 절대로 볼 수 없는 이유를 설명한다. 벌레의 몸무게는 부피에 비례하므로 O(n^3)이 된다. 다리 힘은 단면적에 비례하므로 O(n^2)이 된다. 동물의 덩치를 10배 키우면 힘과 몸무게 비율이 작을 때의 1/10이 되어 다리가 버틸 수 없다. 우리는 항상 이런 척도 효과에 직면한다. ...중략... 예를 들어 컴퓨터 10대가 호출할 때는 잘 유지되던 데이터베이스 서버가 컴퓨터 50대를 추가하면 여지없이 무너질지도 모른다.

뿐만 아니라, 마치 Java의 POJO처럼 모두가 자연스럽게 아는 개념이지만 이에 맞는 용어를 모르는 경우가 있는데, 이 책에서는 매우 잘 정리되어 있습니다.

예를 들어 저는 실제 개발 시 자주 발생하는 순간적인 부하에 대한 적절한 용어를 이 책을 통해서 알게 되었습니다.

한 무리의 서버가 순간적인 부하를 한 번에 가할 때 이를 도그파일이라고 한다.

수많은 실제 사례들

이 책은 다양한 사례들을 통해 안티패턴, 오류, 그리고 운영과 관련된 중요한 내용들을 생생하게 드러냅니다.

특히 주목할 만한 것은 6장의 사례 연구입니다. 여기서 저자는 자신이 직접 경험한 실제 오류 상황들을 타임라인 형식으로 구체적으로 풀어냅니다. 서비스 출시 후 각각의 명절마다 발생한 이슈들의 추적, 발생한 문제들, 그리고 그에 따른 사후 분석까지의 과정은 읽는 이로 하여금 긴장감을 느끼게 합니다.

제 10년의 개발 경험에서 겪었던 유사한 상황들이 떠오르며 손에 땀을 쥐게 하는데, 이게 스릴러 아닌가 싶네요.

보안

보안에 관련된 주제는 책에서 10개의 섹션으로 나뉘어져 있으며, 각 섹션은 대략 한 장 정도로 간결하게 요약되어 있습니다. 이 섹션들은 실제 서비스 운영에 있어 필수적인 보안 내용들을 다루고 있으며, 이 책을 읽은 후에는 이 내용들이 매우 효과적으로 압축되어 있다는 인상을 받았습니다.

실리콘 밸리 만트라

소프트웨어가 세상을 집어삼키고 있다. 당신이 시장을 뒤집거나 네가 뒤집히거나 빠르게 움직여 깨부수세요!

위 문장은 실리콘밸리에서 유명한 만트라입니다. 16장에서 이 문장을 접하고 나서 떠오른 생각은, 소프트웨어를 인공지능(AI)으로 대체한다면 현대 기술의 상태를 굉장히 적절하게 반영한다는 것입니다. 앞으로 우리가 마주할 기술의 변화에 대해 깊이 고민하게 만드는 대목이었습니다.

인상적인 내용들

개인적으로 책을 보며 인상 깊었던 주제들을 아래 리스트로 공유합니다.

  • 마이크로 서비스에 대한 실질적인 조언과 경고
  • 데브옵스 팀의 구성과 역할에 대한 오해 해소
  • 프로그래밍 가능한 인프라에 대한 혁신적인 관점
  • 버전 관리 URL에 대한 깊은 통찰
  • 빠른 실패

마치며

  1. 2nd edition이 2018년에 나왔기 때문에, 이후에 나온 기술들은 소개되지 않고 있습니다.

  2. 작년에 본 'Devops Handbook'이란 책과 비슷한 내용이지만, 이 책이 다루는 배경이 약간 더 현대적이어서 시리즈물 같은 느낌이 듭니다.

  3. 또한 이 책은 시작에서 대상 독자를 중급이라고 언급하고 있습니다.

각각의 장은 사실 한 권의 책으로 따로 다루어질 수 있는 분량이기 때문에, 각 용어에 대한 간단한 정의와 사례를 짚고 지나가는 것으로, 매우 깊게 설명하지는 않는다는 것을 알면 좋습니다.

아래 Must-read books 섹션에 등재되어 있습니다. https://github.com/charlax/professional-programming?tab=readme-ov-file

📖 Release It!: this books goes beyond code and gives you best practices for building production-ready software. It will give you about 3 years worth of real-world experience.

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