snunc***
2020-03-28

쿠버네티스가 표준 플랫폼으로 자리 잡은 클라우드 네이티브 세계에서 데브옵스를 실천하는 방법을 다룬다. 쿠버네티스 관련 기본 개념, 애플리케이션을 작성하고 상용 환경에서 배포하는 방법, 클러스터를 구성하고 운영하는 방법, 장애 대처와 데이터 복원 방법을 실용적인 예제와 함께 살펴본다.
IT 기술의 발전은 해를 거듭할 수록 그 변화의 폭을 예상할 수 없을 정도로 거세기만 하다. 이는 H/W 생태계 뿐만 아니라 S/W 환경에서도 예외가 될 수 없는 상황이다. S/W 개발 방법론에 있어서는 데브옵스(DevOps)가 애자일 문화와 더불어 거스를 수 없는 하나의 시대적 패러다임으로 온전히 자리를 잡아 가고 있는 위용을 보이고 있는 실정이다. 데브옵스는 기술이 아니라 문화 그 자체이기 때문에 그 문화의 속성을 명확히 뒷받침 해 줄 수 있는 또 다른 도구들이 필요하다. 바로 이 지점에서 클라우드 네이티브 애플리케이션을 쿠버네티스를 통해 데브옵스 기반으로 구현해 나가는 과정에 있어 실질적인 가이드 라인을 제공해 주는 책이 있으니, 이름하여 '쿠버네티스를 활용한 네이티브 데브옵스'가 되겠다. 오늘은 바로 이 책에 대한 서평을 작성하려고 한다.
기업 IT 환경은 온프레미스(On-premise)에서 클라우드로 거침 없이 전환 되고 있는 추세다. 클라우드로 전환 되는 과정에 있어, 레거시 환경의 애플리케이션을 그대로 이식하는 Lift and Shift 전략은 클라우드가 제공하는 확장성과 유연성을 온전히 활용할 수 없는 상황을 초래한다. 그렇기 때문에 컨테이너 환경을 통해 클라우드에 최적화 된 애플이케이션을 개발 가능한 '클라우드 네이티브(Cloud Native)'가 무엇보다 중요 할 수 밖에 없다.
컨테이너 환경을 구축하여 코드(Code)를 작성하고, 빌드, 테스트, 배포, 운영해 나가는 과정이 성공적이었다면 이제는 확장성을 고려하는 상황과 마주하게 된다. 수 십개의 컨테이너에서 많게는 수 백개, 수 천개의 컨테이너를 제대로 운영하고 관리하기 위해선 기존의 방식대로 운영팀이 일일이 수동으로 취해 왔던 것이 아니라 컨테이너 자체를 하나의 그릇에 담을 수 있는 도구가 필요하게 되는데, 바로 컨테이너 오케스트레이션(Orchestration)의 사실상 표준(De Facto) 플랫폼인 쿠버네티스를 찾게 된 순간이 도래하게 된다. '쿠버네티스를 활용한 클라우드 네이티드 데브옵스는' 위에서 열거한 상황들에 대한 여정을 시작하는데 있어 유용한 도움을 주는 지침서라 할 수 있겠다.
이 책은 첫 장은 현재 IT 기술의 '총아'로 일컬어지는 클라우드, 데브옵스, 컨테이너, 쿠버네티스, 클라우드 네이티브가 등장한, 아니 등장할 수 밖에 없었던 시대적 배경과 그 흐름, 그리고 이 기술들이 펼쳐 낼 앞으로의 미래상을 시사하는 것으로 서술되어 있다. 새로운 기술이 등장하고 기존의 기술을 어떻게 변화 시키고 그 기술들이 상호간에 어떠한 영향을 끼치는지에 대한 '역학' 구조를 이해하는 것은 굉장히 중요하기 때문에 결코 첫 장을 가볍게 여겨서는 안 될 것이다.
두번째 장에서는 본격적으로 쿠버네티와의 첫 만남이 시작 된다. 컨테이너를 실행하는 것에서 부터 데모 애플리케이션을 올리고 Minikube를 통한 쿠버네티스 설치 및 운영에 대해 다루고 있고, 이후 부터 쿠버네티스 구축, 쿠버네티스 상세 설정, 리소스 관리, 클러스터 운영, 쿠버네티스 관리 도구, 쿠버네티스를 통한 컨테이너 실행, Pod 관리, 보안/백업, 쿠버네티스를 통하 애플리케이션 배포, 개발 워크 플로우, 쿠버네티스 환경에서의 CD(Continuous Delivery), 쿠버네티스 모니터링, 쿠버네티스 메트릭 등을 기술하고 있다.
이 책은 쿠버네티스라는 기술 하나에 대해 심도있게 다루고 있는 책이 아니기 때문에 쿠버네티스에 대해 보다 깊이 있는 서적을 원한다면, 이 책은 좋은 선택지가 될 수 없다. 하지만 클라우드 네이티브 애플리케이션을 개발해 나가는 과정에 있어, 쿠버네티스가 데브옵스를 지원하는 훌륭한 도구로서 어떻게 기능하는지에 대한 궁금증을 해갈하기 위한 독자가 있다면 이 책은 그 소기의 목적을 달성 시켜 주기에 충분하다고 할 수 있겠다. 클라우드를 향한 여정에 데브옵스를 지원하는 도구를 등에 업고 클라우드 네이티브 애플리케이션을 개발할 준비가 되어 있지 않다면 이 책을 통해 첫 발을 떼어 보는게 어떨까?