카카오, 자체 하둡 플랫폼 KHP의 릴리즈 관리 도구 'khp-package' 공개
핵심 내용
Apache Bigtop 대신 자체 개발한 khp-package로 하둡 컴포넌트 호환성 검증 및 배포 자동화를 수행한다.
자세히 보기
카카오는 자체 개발 하둡 플랫폼 **KHP(Kakao Hadoop Platform)**의 오픈 소스 하둡 컴포넌트 호환성 관리와 릴리즈 관리를 위해 khp-package를 개발해 적용했다. 이는 오픈 소스 하둡 컴포넌트들의 버전 의존성과 호환성 문제를 해결하고, 배포판 릴리즈 과정을 자동화하기 위한 도구다.
Apache Bigtop 대신 자체 개발한 이유
카카오는 하둡 컴포넌트 패키징을 위해 Apache Bigtop을 검토하였으나, 컴파일 의존성으로 인해 테스트 코드가 컴포넌트 버전에 종속되는 문제가 있어 자체 개발을 선택했다. Bigtop은 컴파일 의존성으로 인해 테스트 코드가 컴포넌트 버전 변경에 큰 영향을 받아 유지보수 비용이 높았기 때문이다. 반면 khp-package는 카카오 인프라 환경에 최적화되어 있으며, 컴포넌트 버전 변경 시 테스트 코드 수정 부담을 줄이고 상호 호환성 검증을 용이하게 한다.
khp-package의 주요 기능과 워크플로우
khp-package는 하둡 컴포넌트의 커밋 단위 포인터 관리, 테스트 절차, 배포 및 릴리즈 자동화 스크립트를 포함한다. 주요 단계는 다음과 같다.
- 통합 테스트: 운영 환경과 동일한 '라이브 클러스터'에서 khp-ansible을 통해 배포 후 호환성을 검증한다. 하둡, 스파크, 트리노, 휴(Hue) 등 주요 컴포넌트에 대해 CLI 및 기능 테스트를 수행하며, 전체 테스트에는 140분 이상이 소요된다.
- 빌드 및 패키지: 컴포넌트별 빌드 도구(Maven, Python 등)를 rake tasks로 표준화하여 실행한다. 아나콘다의 경우 도커를 이용해 OS별 conda 환경을 구성하고 tar.gz로 패키징한다.
- 배포: 바이너리 산출물을 내부 파일 서버에 업로드하며, SNAPSHOT 버전이 아닌 경우 덮어쓰기를 방지하여 버전 관리를 엄격히 수행한다.
릴리즈 관리 및 산출물
검증이 완료된 릴리즈는 khp-release 리포지토리에 릴리즈 노트(.md)와 다운로드 링크(.yml)로 정리되어 사내 Wiki에 공개된다. KHP 버전은 khp-<x.y.z>-hadoop<major version> 형식으로 태깅되며, 하둡, 스파크, 아나콘다 등 각 컴포넌트는 자체 빌드 날짜 또는 패치 번호가 포함된 파일명으로 관리된다. 이 구조는 범용 오픈소스 도구보다 카카오 인프라에 최적화된 호환성 검증과 운영 효율성을 제공한다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.