쿠버네티스 환경에서 실행되는 애플리케이션을 효율적으로 관리하기 위한 도구로 헬름을 소개하고 핵심 개념에 대한 간략한 소개로 시작한다. 그리고 이해를 돕기 위해 헬름 차트의 다양한 사용 사례를 보여주며 엔터프라이즈 환경에 적용할 수 있도록 자동화, 보안 등을 추가로 설명한다. 헬름의 기초를 배우고 엔터프라이즈 환경에서 활용하는 방법을 배울 수 있는 좋은 지침서가 될 것이다.
■ 헬름을 사용해 쿠버네티스 환경에서 엔터프라이즈 자동화 전략 개발
■ 쉽게 사용하고 구성할 수 있는 헬름 차트 생성
■ 오케스트레이션 도구 및 쿠버네티스 오퍼레이터에서 헬름 사용
■ 애플리케이션 제공 및 라이프사이클 관리를 위한 모범 사례 확인
■ 기업에 적합하며, 안전하고 안정적인 방식으로 헬름 활용
■ 헬름을 통한 자동화의 세부 내용 확인
쿠버네티스 환경에서 애플리케이션 배포를 자동화할 수 있는 헬름 학습에 관심이 있는 쿠버네티스 개발자나 관리자를 대상으로 한다. 쿠버네티스 애플리케이션 개발 관련 기본 지식은 유용하겠지만 헬름에 대한 사전지식은 필요로 하지 않는다. 자동화가 제공할 수 있는 비즈니스 사용 사례의 사전 지식에 대한 학습을 권장한다.
1장, ‘쿠버네티스와 헬름 이해’에서는 쿠버네티스와 헬름을 소개한다. 쿠버네티스 애플리케이션을 배포할 때 사용자가 직면할 수 있는 문제와 헬름이 구현을 단순화하고 생산성을 높이는 데 어떻게 도움이 되는지 소개한다.
2장, ‘쿠버네티스 및 헬름 환경 준비’에서는 로컬 쿠버네티스 클러스터에 애플리케이션을 배포하는 데 필요한 도구를 살펴보고 설치한 후 수행할 수 있는 기본적인 헬름 구성을 알아본다.
3장, ‘첫 번째 헬름 차트 설치’에서는 헬름 차트를 설치해 쿠버네티스에 애플리케이션을 배포하는 방법을 설명하고, 헬름을 통해 배포된 애플리케이션의 다른 수명주기 단계를 다룬다.
4장, ‘헬름 차트 이해’에서는 헬름 차트 빌딩 블록을 좀 더 깊게 살펴보고 자신만의 헬름 차트를 작성하는 데 필요한 사전지식을 학습한다.
5장, ‘첫 번째 헬름 차트 빌드’에서는 헬름 차트를 빌드하는 엔드 투 엔드(end-to-end) 연습을 제공한다. 5장은 기본적인 헬름 구조를 활용하는 헬름 차트의 기본 개념으로 시작해 좀 더 진보된 헬름 구조로 통합하기 위해 기본 구성을 수정하는 단계로 진행된다. 마지막으로 기본 차트 리포지토리에 차트를 배포하는 방법을 알아본다.
6장, ‘헬름 차트 테스트’에서는 헬름 차트에 대한 정적 검사 및 테스트를 수행할 수 있는 다양한 방법론을 설명한다.
7장, ‘CI/CD 및 깃옵스를 사용한 헬름 프로세스 자동화’에서는 CI/CD 및 깃옵스(GitOps) 모델을 활용해 헬름 작업을 자동화하는 사용 사례를 살펴본다. 헬름 차트 테스트, 패키징 및 릴리스에 대한 프로세스를 개발한다. 또한 다양한 환경에서의 헬름 차트 설치 및 관리 방법도 소개한다.
8장, ‘오퍼레이터 프레임워크와 함께 헬름 사용’에서는 오퍼레이터 프레임워크에서 제공하는operator-sdk 도구를 사용해 기존의 헬름 차트에서 헬름 오퍼레이터를 구축하기 위한 쿠버네티스 오퍼레이터의 기본적인 개념을 설명한다.
9장, ‘헬름 보안 고려사항’에서는 도구를 설치하는 순간부터 쿠버네티스 클러스터에 헬름 차트를 설치할 때까지 헬름 사용에 관한 보안 고려사항과 주의사항을 설명한다.
현재 컨테이너화(containerization)는 데브옵스(DevOps)를 구현하는 가장 좋은 방법이라고 한다. 도커(Docker)가 컨테이너 기술을 소개하고 데브옵스 시대를 변화시켰지만, 구글은 컨테이너 오케스트레이션 분야의 리더로 간주되는 광범위한 컨테이너 오케스트레이션 시스템인 쿠버네티스(Kubernetes)를 개발했다. 주요 목표는 헬름을 사용해 쿠버네티스 환경에서 실행되는 애플리케이션을 관리하는 효율성을 알아보는 것이다. 헬름에 대한 간략한 소개로 시작해 전체 컨테이너 환경에서 얻을 수 있는 이점을 소개한다. 그런 다음 헬름 차트와 이용 사례를 학습하고 아키텍처 측면에서 좀 더 깊게 살펴볼 것이다. 또한 쿠버네티스에서 애플리케이션 배포를 자동화하기 위해 헬름 차트를 작성하는 방법을 학습한다. 헬름 및 자동화를 중심으로 엔터프라이즈 환경에 적용할 수 있는 패턴을 제공하는 데 초점을 맞추고 헬름을 통한 애플리케이션 개발, 배포, 수명주기 관리까지 포함하고 있다. 이 책의 끝부분에서는 애플리케이션 배포에 대한 통찰력이 있는 엔터프라이즈 패턴을 개발하기 위해 헬름을 활용할 수 있는 방법을 알게 될 것이다.
레드햇의 시니어 프린시플 컨설턴트(senior principal consultant)로 다양한 배포 환경에 자동화 원칙을 사용해서 컨테이너 솔루션 및 마이크로서비스 아키텍처를 채택하는 방법을 조직에 안내했다. 『Application Release Strategies with Openshift』의 저자로 소프트웨어를 좀 더 빨리 개발하고 배포하기 위해 보안에 중점을 둔 CI/CD 방법론의 중요성을 소개하고 있다. 또한 레드햇 내에서 컨테이너 생태계에 대한 인식을 높이는 것을 목표로 하는 학습 공동체(Community of Practice)의 관리자 역할을 담당하고 있다.
레드햇의 시니어 컨설턴트로 클라우드 및 컨테이너 기술 분야에서 고객을 지원하는 데 주력하고 있다. 그는 레드햇의 쿠버네티스 기반 PaaS인 오픈시프트 컨테이너 플랫폼(OpenShift Container Platform)에 대한 CI/CD 및 배포 패턴 관련 전문 지식으로 다양한 포춘 500대 기업의 성공을 이끌어냈다. 데브옵스 및 자동화를 중심으로 프로젝트를 제공하는 그는 빠르고 안정적이며 안전한 배포를 보장하는 파이프라인을 구축해 다양한 고객을 운영 환경으로 안내했다. 업무 외에는 기타를 연주하고 야외에서 시간을 보내는 것을 즐긴다.
쿠버네티스가 컨테이너화된 애플리케이션의 자동 배포 및 스케일링 등 많은 이점을 가져다주면서 국내외에서 오픈소스 기반 컨테이너 오케스트레이션 플랫폼인 쿠버네티스를 도입하는 기업이 빠르게 증가하고 있다. 이에 따라 컨테이너로 애플리케이션을 빌드하고 이를 여러 환경의 쿠버네티스 클러스터에 배포하는 경우가 많아졌다. 하지만 여러 환경에 애플리케이션 배포에 따른 설정 관리 및 구성 절차의 복잡성 때문에 대다수의 사용자가 어려움을 겪고 있다. 이를 해결하기 위한 방안으로 배포환경에 따라 달라지는 설정값만 정의해둔 다음 이에 따라 배포하는 방법을 제공하는 것이 바로 쿠버네티스에서 헬름과 차트다. 헬름은 쉽게 말해 CentOS의 yum, Ubuntu의 apt와 같은 쿠버네티스의 패키지 관리 도구이며 차트는 사전에 정의된 쿠버네티스의 리소스 패키지다. 개발자는 헬름을 통해 차트로 정의된 쿠버네티스 애플리케이션을 다양한 테스트 환경 및 운영 환경에 쉽게 설치하고 업그레이드할 수 있어 이에 소비되는 시간을 줄여 개발자가 개발에 집중할 수 있는 환경을 만들 수 있다. 이 책은 헬름에 대한 기본 개념부터 실제 운영 환경에 적용해 프로세스 자동화를 구축할 수 있는 CI/CD 및 깃옵스의 개념까지 설명한다. 복잡한 쿠버네티스 애플리케이션 배포 및 업그레이드 프로세스 효율화에 관심을 갖고 동참할 수 있기를 바란다.
경희대학교 컴퓨터공학과를 졸업하고 동 대학원에서 네트워크 분야 석사 학위를 받았다. 졸업 후 네트워크 장비 개발 업체에서 소프트웨어 개발자로 근무하며 경력을 쌓았다. 현재 기아자동차에 재직 중이며 주로 커넥티드카 서비스를 위한 클라우드 인프라 및 플랫폼 설계 업무를 담당했다. 오픈스택, 쿠버네티스, 이스티오 등 클라우드 관련 기술에 관심을 갖고 있으며 번역서로 『개발자를 위한 쿠버네티스』(에이콘, 2019), 『Go 프로그래밍 개발 환경에서 의존성 주입 실습』(에이콘, 2020), 『쿠버네티스 시작하기』(에이콘, 2020)가 있다.