DevSecOps 도구
Source: Dev.to

Helm — 도구 개요
Helm은 Kubernetes용 패키지 매니저입니다. 재사용 가능한 패키지인 Charts를 사용해 Kubernetes 클러스터에서 실행되는 애플리케이션을 정의, 설치, 업그레이드 및 관리할 수 있도록 도와줍니다. 복잡한 배포를 간소화하고, 종속성을 관리하며, 버전 관리와 롤백을 지원하고, 환경별 설정을 단순화합니다.
주요 기능
- Charts를 이용한 패키지 관리 – Charts라 불리는 패키지는 Kubernetes 리소스와 메타데이터를 묶어 단일 명령으로 복잡한 애플리케이션을 설치할 수 있게 합니다.
- 배포 및 업그레이드 – Helm은 Kubernetes 애플리케이션의 설치, 업그레이드, 롤백, 삭제 작업을 처리합니다.
- 릴리스 버전 관리 – 모든 설치는 릴리스를 생성하며, 이를 통해 버전 제어와 이전 상태로의 손쉬운 롤백이 가능합니다.
- 구성 및 템플릿 – Charts는 YAML + Go 템플릿 구문을 사용하므로
values.yaml을 통해 환경별 파라미터를 맞춤 설정할 수 있습니다. - 종속성 관리 – Charts는 다른 차트에 대한 종속성을 정의하고 관리할 수 있습니다.
- 레포지토리 지원 – Helm 종속성과 차트는 Artifact Hub와 같은 공개 또는 사설 레포지토리에 호스팅될 수 있습니다.
- 롤백 – 이전 릴리스 버전으로 쉽게 되돌릴 수 있습니다.
DevOps / DevSecOps와의 연계
- CI/CD 통합 – Jenkins, GitHub Actions, GitLab CI, Argo CD 등 CI/CD 도구와 잘 연동되어 배포 자동화를 지원합니다.
- IaC (Infrastructure as Code) – Helm은 매니페스트 파일을 재사용 가능한 패키지로 추상화하여 IaC 관행에 부합합니다.
- 환경 간 일관성 – Charts는 개발, 스테이징, 프로덕션 환경 전반에 걸쳐 일관된 배포를 보장합니다.
- 보안 및 감사 제어 – Helm 3부터는 Tiller와 같은 서버‑사이드 컴포넌트를 제거해 Kubernetes 고유의 RBAC 및 API 접근 권한에 의존함으로써 보안 태세를 강화합니다.
- 재사용 가능한 구성 요소 – Helm은 구성의 모듈식 재사용을 촉진해 인적 오류를 줄이고 팀 생산성을 높입니다.
프로그래밍 언어
Helm은 Go로 작성되었습니다. Go는 클라우드‑네이티브 생태계, 특히 Kubernetes 관련 도구에서 널리 사용되는 언어입니다.
모회사 / 거버넌스
Helm은 전통적인 “모회사”가 없습니다. 대신:
- 원래 Deis에서 만들었으며, 이후 Microsoft에 인수되었습니다.
- 현재는 클라우드 네이티브 컴퓨팅 재단(CNCF) 아래에서 유지되는 오픈‑소스 프로젝트입니다. CNCF는 Kubernetes를 관리하는 동일한 재단이며, 다양한 조직의 커뮤니티 기여자들이 Helm을 지원합니다.
오픈‑소스 여부 또는 유료?
✅ 오픈‑소스 도구 – Helm은 Apache License 2.0 하에 공개되어 있어 핵심 프로젝트 자체를 자유롭게 사용, 수정, 배포할 수 있습니다. Artifactory, 사설 차트 레지스트리 등과 같은 레포지토리 관리 제품은 Helm 사용에 대한 유료 서비스를 제공할 수 있지만, Helm 자체는 무료입니다.
Helm을 명확하고 실용적으로 소개하고 설명해 주신 @santhoshnc에게 감사드립니다.