최근에 kubenetes도 배우고, helm도 배우면서 terraform을 배워야 겠다고 생각을 했었는데 타이밍에 맞게 이 책이 나온다고 해서 바로 읽어보았다. 

이 책에 대한 이야기를 하기 전에 요즘 클라우드 관련 기술의 트랜드를 보면 IaC나 helm 같은 기술들이 이끌어 나가는 것 같다. 해당 기술들의 특징은 명령형(imperative)가 아닌 선언형(declarative)라는 것인데 클라우드 기술들이 생겨난 이유를 생각해보면 당연한 걸지도 모르겠다는 생각이든다. 필자는 클라우드가 생겨난 이유가 기술의 발전이 점점 빨라지면서 그에 맞추어 대응하려면 클라우드에 서버를 두지 않고 물리적 서버를 고집한다거나 microservice가 필요한 시점에 monolithic한 아키텍처를 고집한다면 현 시대에서 얻을 수 있는 기술적 이점을 챙기지 못하기 때문에 클라우드가 잘 나가는 것이 아닐까 싶다. 그런 점에서 클라우드 서비스를 사용할 때 명령형으로 무언가 만든다면 한계가 있다고 느껴진다. 예를 들어 수십만개의 서버를 똑같은 환경으로 만들어야 한다면 명령형으로는 한계가 있을 것이다. 처음 만들 때야 한 번이라서 어떻게든 명령형으로 커버한다지만 여러 subnet에 나누어 넣어야한다던가, 도메인명을 다르게 한다던가 등... 여러 상황이 생겼을 때 명령형으로는 관리하기 매우 힘들 것이다. 따라서 관리 차원, 그리고 협업 차원에서 선언형은 어떻게 보면 필수가 아닌가 싶다.

 

책 표지

 

이 책을 아직 완독하지는 못했지만 반 이상 읽은 시점에서 느끼는 건 실습하기 아주 편하게 만들어 놓았다는 것이다. 어떤 기술 책들은 실습하기가 좀 까다로워서 사놓고도 지식을 습득하지 못한 책들이 있는데 이 책은 특히나 로컬에서도 쉽게 실습을 할 수 있어서 유용한 책인 것 같다.

01234567
목차

목차를 보면 기본 지식 -> 모듈화 -> 실제 현업에 관련 내용 순이다. 아직 모듈화 전까지만 읽었지만 이정도만 읽어도 백엔드 개발자인 필자가 devops팀이 작성해놓은 terraform code를 이해할 수 있을 거라는 자신감이 든다... :)

가볍게 뒷 부분을 보기도 하였는데 현업에서의 가이드도 매우 흥미롭고, 리팩토링을 하는 과정을 상세하게 써 놓은 부분도 매우 흥미로웠다. 사실 리팩토링을 하는 것이 참 시간적으로나 기술적으로나 어려운 것이라고 생각하는데 이 과정을 책으로나마 읽을 수 있는 것은 좋은 경험이 될 거라고 생각한다.

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

+ Recent posts