이 책은 운 좋게 연이 닿아서 사전에 읽어보고 추천사까지 쓰게 된 책으로 아래는 내가 쓴 추천사이다.
GitOps의 개념 자체는 어렵지 않지만 쿠버네티스 환경에서 쓸 만한 수준으로 구현하려면 많은 도구에 대한 이해가 필요합니다. 이 책에서는 쿠버네티스 환경에서 많이 사용되는 컨테이너 빌드 도구, 커스터마이즈, 헬름, 텍톤, Argo CD를 직접 설정해 보면서 원하는 GitOps 환경을 구축하는 방법을 제시하기 때문에 예제를 따라가다 보면 GitOps 환경 구축에 큰 도움이 될 것입니다. 쉽게 따라해 볼 수 있게 구성되어 있지만 각 도구가 담고 있는 개념을 생각하면 결코 쉽지만은 않은 내용입니다.
GitOps Cookbook이라는 제목처럼, 이 책은 특정 기술에 대한 실용적인 사용 방법을 설명하는 책으로 요즘 GitOps라고 하면 생각할 수 있는 대부분의 도구를 다루고 있다.
GitOps는 개발에서 꽤 중요한 개념인데 OpenGitOps에 나온 정의를 언급하면서 다음과 같이 설명하고 있다.
선언적 - GitOps로 관리되는 시스템은 원하는 상태를 선언적으로 표현해야 한다.
버전 및 불변성 - 상태 관리에는 불변성 원칙과 버전 관리 방법론을 적용한다. 버전 변경 이력은 완벽하게 유지해야 한다.
자동 반영 - 배포 환경에 설치된 소프트웨어 에이전트가 원하는 상태에 대한 선언적 표현을 Git 저장소에 자동으로 끌어온다.
지속적 조정 - 소프트웨어 에이전트는 실제 시스템 상태를 계속 관찰하고 원하는 상태에 맞도록 변경한다.
이 책은 Kubernetes 클러스터에 애플리케이션 배포하는 것을 가정해서 구성되어 있기 때문에 GitOps가 Kubernetes에 국한된 개념은 아니지만 Kubernetes로 배포하는 전체 파이프라인을 구성하려고 고민하는 분에게 도움이 될 책이라고 할 수 있다.. GitOps의 개념에 대한 설명보다는 전체 파이프라인을 구성해 보도록 따라 할 수 있게 구성되어 있다.
컨테이너를 관리하기 위한 Docker, Jib, buildah, Buildpacks, Shipwright, kaniko뿐 아니라 Kubernetes manifest 관리를 위한 kustomize, Helm을 설명하고 실제 배포를 하기 위해 필요한 Tekton, Argo CD 등 전체 파이프라인을 구성하는 데 필요한 다양한 도구를 다루고 있다.
대부분 사용 방법이기 때문에 책의 내용 자체는 어렵지 않고 나는 업무에서도 비슷한 일을 하고 있고 대부분의 도구를 대충은 알고 있어서 꽤 쉽다고 느껴졌지만, 관련한 각 도구가 간단하진 않기 때문에 복잡하게 사용하려거나 각 도구가 하는 역할에 대해서 이해하려면 쉽지만은 않다고 생각한다. 그래서 따라 하면 되는 책이긴 하지만 너무 많은 도구에 압도되어 어려울 수 있어서 개념은 다른 글이나 책으로 파악해 두는 게 좋을 수 있고 전체 파이프라인을 실습해 볼 수 있기 때문에 안 해본 사람이라면 큰 그림을 보면서 개념을 이해하기에 도움이 많이 될 것 같다.
Comments