피드로 돌아가기
폐쇄망 환경의 배포 시스템 개발기
뱅크샐러드 기술블로그뱅크샐러드 기술블로그
DevOps

폐쇄망 환경의 배포 시스템 개발기

뱅크샐러드가 폐쇄망 IDC 환경을 위해 Alice 배포 시스템을 자체 개발해 Canary 배포와 무중단 배포 구현

2020년 2월 25일12intermediate

Context

뱅크샐러드는 금융기관 협업 대부분을 인터넷 접근이 제한된 IDC 폐쇄망 환경에서 진행해야 했다. 퍼블릭 클라우드 환경에서 운영 중인 Kubernetes 기반의 편리한 배포 시스템(DeployBot)을 폐쇄망에서는 사용할 수 없었으며, 수동 배포로 인한 운영 부담이 발생했다.

Technical Solution

  • 배포 전략 선택: BlueGreen에서 Canary로 변경 — Nutanix 환경의 느린 노드 기동 속도를 고려해 BlueGreen 대신 Canary 배포 전략 채택
  • CI/CD 파이프라인 구축: drone.io + Friday 서비스 — GitHub Enterprise 연동이 가능한 drone.io를 도입하고, 기존 Friday 서비스를 개량해 L4 및 Nutanix API 제어 담당
  • 3계층 시스템 아키텍처: deploy-web + deploy-api + Friday — 사용자 인터페이스, API 서버, 실제 배포 실행 서비스로 분리
  • Docker 기반 배포 구현: VM별 Docker 이미지 배포 — 금융 IDC에서 Kubernetes 사용 불가 시 각 VM에 빌드된 Docker 이미지를 직접 배포
  • 무중단 배포 메커니즘: L4 트래픽 조정 — 배포 대상 VM으로의 트래픽을 L4에서 점진적으로 0%까지 낮춘 후 배포 실행
  • 배포 진행 중 동시성 제어: Lock 기능 — 배포 진행 중 다른 사용자의 이미지 배포를 방지하기 위해 Docker 이미지 리스트에 Lock 적용
  • 단계적 배포 UI: Canary Deploy → Deploy All → Rollback — 1개 VM 배포 후 모니터링을 거쳐 전체 배포 또는 롤백 선택 가능한 GUI 제공

Key Takeaway

폐쇄망 환경에서는 퍼블릭 클라우드 managed service에 의존할 수 없으므로, 핵심 운영 도구(배포 시스템)를 먼저 자체 개발한 후 서비스 확장을 진행하는 것이 장기적 안정성을 확보하는 방법이다.


온프레미스 IDC 환경에서 배포 자동화를 구축할 때, BlueGreen 전략 대신 Canary 배포와 L4 트래픽 조정을 조합하면 무중단 배포를 구현하면서도 리소스 오버헤드를 최소화할 수 있다. 또한 Kubernetes 대신 각 VM에 Docker 이미지를 직접 배포하는 방식으로도 개발·배포의 일관성과 속도를 확보할 수 있다.

원문 읽기
폐쇄망 환경의 배포 시스템 개발기 | Devpick