뱅크샐러드, 폐쇄망 IDC 환경서 GUI 기반 배포 시스템 'Alice' 개발
핵심 내용
뱅크샐러드 AFIT 팀이 금융 규제 준수와 폐쇄망 제약을 극복하기 위해 Jenkins 대신 자체 GUI 배포 시스템 'Alice'를 개발하고 Canary 배포 전략을 적용했다.
자세히 보기
뱅크샐러드 Advanced Financial Infra Team(AFIT)은 금융 기관 협업으로 인한 보안 및 법률 규정 준수를 위해 IDC 내 폐쇄망 환경에서 서비스를 운영해야 하는 상황에 직면했다. 인터넷 연결이 불가하고 퍼블릭 클라우드 Managed Service를 사용할 수 없는 환경에서 기존 Slack 기반 'deploybot'은 작동하지 않았으며, 인프라 미구축 시 모든 작업이 수동으로 처리되어야 하는 문제가 있었다.
배포 시스템 개발 배경 및 도구 선정
팀 서비스 확장 전 안정적 운영 기반을 마련하기 위해 배포 시스템 구축을 최우선 과제로 삼았다. 요구사항 분석 결과 Docker 활용, 무중단 배포, GUI 제공, SSO 연동 등이 필요했다. 기존 도구인 Jenkins는 단계적 배포 적용의 어려움, Authorization 구현의 복잡성, UI의 비직관성 등으로 인해 팀원 전원에게 부적합하다고 평가되어 최종적으로 GUI 기반 자체 배포 시스템 개발을 결정했다.
CI/CD 도구로는 drone.io를 선정했다. 폐쇄망 내 Github Enterprise 연동이 용이하고 심플한 UI를 제공하며, CD 외 다른 부분도 지원하기 때문이다. CI 파이프라인은 Github Push 시 webhook을 통해 drone이 작동하며, 빌드된 Docker 이미지는 Registry 시스템인 Nexus에 저장된다.
Canary 배포 전략과 시스템 아키텍처
배포 전략으로는 Rolling, Canary, BlueGreen 중 Canary를 채택했다. IDC(Nutanix) 환경은 AWS 대비 VM 기동 속도가 느려 BlueGreen 채택 시 전체 배포 속도 저하 및 리소스 비용 증가가 우려되었기 때문이다. Canary 전략은 L4에서 배포 대상 VM으로의 트래픽을 점진적으로 낮추고 새 이미지를 배포한 후, 서비스 이상 여부를 모니터링하여 전체 배포를 진행하는 방식으로 순단(traffic loss)을 방지한다.
시스템은 deploy-web(사용자 조작), deploy-api(백엔드 로직), Friday(L4 및 Nutanix API 컨트롤) 등 3가지 서비스로 구성된다. 금융 IDC 환경에서는 Kubernetes 같은 Container Orchestration 사용이 불가하여, 각 VM에 Docker 이미지를 직접 배포하는 방식을 채택했다.
주요 기능 및 효과
자체 배포 시스템 'Alice'는 다음과 같은 기능을 제공한다:
- GUI 기반 직관적 인터페이스: SSO 로그인 후 Github Enterprise Repository 목록을 표시하며, 버튼 클릭 한 번으로 배포 및 롤백이 가능하다.
- Canary 배포 지원: 원하는 이미지 선택 후 Canary Deploy 버튼을 누르면 1번 VM부터 배포가 시작되며, 각 단계에서 롤백이 가능하다.
- 이미지 Lock 기능: 배포 중 다른 사용자의 간섭을 방지하기 위해 이미지에 Lock을 걸어 꼬임을 방지한다.
- 배포 기록 관리: 누가, 언제, 어떤 이미지에 어떤 Action을 취했는지 로그로 관리한다.
이 시스템을 통해 폐쇄망 환경에서도 Docker 기반의 개발 및 배포 편의성을 확보했으며, 향후 모니터링 및 시스템 고도화를 위한 기반을 마련했다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.