jin***
2020-03-24

쿠버네티스가 표준 플랫폼으로 자리 잡은 클라우드 네이티브 세계에서 데브옵스를 실천하는 방법을 다룬다. 쿠버네티스 관련 기본 개념, 애플리케이션을 작성하고 상용 환경에서 배포하는 방법, 클러스터를 구성하고 운영하는 방법, 장애 대처와 데이터 복원 방법을 실용적인 예제와 함께 살펴본다.
오랜만에 다시 책 리뷰를쓰게 되었다. 이번에 리뷰할 책의 제목은 쿠버네티스를 활용한 클라우드 네이티브 데브옵스이고, O'REILLY 에서 나온 원서 Cloud Native DevOps with Kubernetes의 번역서이다. 이번 리뷰에서는 책의 디테일한 내용에 집중하기보다, 요즈음 왜 Kubernetes 같은 툴들이 떠오르로, 이 책을 통해서 독자들이 얻을 수 있는 Benefit의 측면에서 이 책을 리뷰해보고자 한다. 그러므로 이 리뷰의 주 내용은 현재의 클라우드 컴퓨팅의 문맥과, 이 책이 그러한 문맥속에서 독자들에게 이득을 줄 수 있는 부분에 대해서 설명한다.
최근에 클라우드 서비스의 추세는 더 세밀한 단위의 컴퓨팅을 제공하는 것이다. 이 추세는 다음과 같은 용어들로 설명이 가능하다: IaaS, CaaS, FaaS. 순서대로, 인프라를 서비스로 제공, 컨테이너를 서비스로 제공, 함수를 서비스로 제공하는 용어들이다. 클라우드 서비스는 점점 더 세밀한 단위로 대중에게 제공어 왔는데, 사람들은 더 세밀한 단위로 자신들의 사용량에 대한 요금을 지불하게 되어 좋고, 서비스 업체는 더 세밀한 단위로 전체 클라우드 리소스들을 관리할 수 있다. 이러한 클라우드 서비스의 추세를 기반으로, 쿠버네티스를 보자. 쿠버네티스는 컨테이너들을 통합적으로 관리하기 위한 툴이다. 컨테이너를 서비스로 제공하는 CaaS보다 더 세밀한 단위로 서비스를 제공하는 데 있어서, 효율적이고 가벼운 환경셋업들이 생성되었다가 사라지기를 반복한다. 이 때에 이런 환경 셋업들을 컨테이너로 제공되고, 컨테이너화 된 워크로드와 서비스들을 관리하기 위한 툴로 쿠버네티스가 각광을 받고 있는 것이다.
이 책에서는, 쿠버네티스를 개발과 서비스를 배포하는 DevOps 과정에 어떻게 적용할지 상세히 설명한다. 위에서 설명한 것 처럼, 개발자들은 쿠버네티스를 통해 다양한 환경의 컨테이너들을 다이나믹하게 생성하고 관리할 수 있다. 그러므로 이를 통해서 서비스의 개발과 배포를 더 유동적인 사이클로 관리하는 방법을 이 책은 설명한다. 챕터별로 카테고리를 나눠본다면 다음과 같다.
- 인트로: Chapter 1
- 쿠버네티스 기본 사용법: Chapter 2, 3, 4
- 쿠버네티스 클러스터 운영법: Chapter 5, 6
- 쿠버네티스 관리 및 부가 기능: Chapter 7, 8, 9, 10, 11
- 데브옵스 사이클을 위한 쿠버네티스: Chapter 12, 13, 14, 15, 16
이러한 구성을 가지고 있으므로, 자신의 상황에 맞게 카테고리별로 학습을 하는 것을 추천한다. 도커의 기본적인 내용을 마치고 쿠버네티스를 입문하는 사람이라면 기본 사용법과 클러스터 운영법을 보는것이 도움이 될 것이다. 이미 쿠버네티스를 이용하고 있는데, 기존의 사용하던 기능 외에 다양한 기능들을 통해 삶을 편하게 만들고 싶은 분들이라면 관리 및 부가기능 쪽을 살펴보는 것을 추천한다. 마지막으로, 프로젝트가 컨테이너와 쿠버네티스를 이용한 데브옵스를 적용하기에 적절한 프로젝트라면, 마지막 카테고리에 집중해서 학습하는 것을 추천한다.
마지막으로, 번역서를 구입하셨다가 방대한 내용에 앞에 챕터만 몇개 보다가 그만보거나, 내용이 생각보다 어려워서 번역서를 피하게 되는 분들에게 간단히 팁을 드릴까 한다. 번역서로 시작을 하시기전에, 익숙치 않은 것을 새로 배우신다면 입문용 서적을 보고 필요에 따라 특정 챕터들을 번역서에서 참고하면 더 효율적으로 공부하는 개발자가 될 수 있을거라 생각한다. 컴퓨터 분야의 기술변화 속도를 보면, 모든것을 다 알아가려는 것 보다는 상황에 맞게 효율적으로 공부하는 방법을 찾는 것이 좋은 개발자가 되는 첫 걸음일 것이다.