가장 빠르고 안전한 전환, 무중단 배포를 위한 블루그린 배포 전략

서비스를 업데이트하기 위해, ‘서비스 점검 중’ 공지를 띄우던 시대를 기억하시나요?

사용자들은 새벽까지 기다려야 했고, 기업은 그 시간 동안 수익을 낼 수 없었습니다.

이러한 ‘서비스 중단(Downtime)’을 없애기 위해 탄생한 여러 배포 전략이 있습니다.

그 중 가장 직관적이고 강력한 방법 중 하나가 바로 ‘블루그린 배포(Blue-Green Deployment)’입니다.

Q. ‘블루그린 배포’, 정확히 무엇인가요?

‘블루그린 배포’는 현재 사용자들이 사용하고 있는 ‘운영 환경(블루)’과, 완전히 똑같은 사양으로 새로 배포된 ‘신규 환경(그린)’을 동시에 운영하는 전략입니다.

그리고 모든 테스트가 완료되면, 라우터의 스위치를 한 번에 전환하여 모든 사용자가 순식간에 신규 환경(그린)으로 넘어가게 하는 ‘무중단 배포’ 방식입니다.

  • 비유:
    • 무대 공연과 같습니다.
    • 한쪽 무대(블루)에서 공연이 한창 진행되는 동안, 보이지 않는 다른 쪽 무대(그린)에서는 다음 공연을 위한 모든 세팅을 완벽하게 마칩니다.
    • 그리고 공연이 바뀌는 순간, 관객들은 조명이 잠시 꺼졌다 켜지는 것만으로, 자신도 모르게 완벽하게 준비된 새로운 무대를 보게 됩니다..

Q. ‘블루그린 배포’는 어떤 장점이 있나요?

‘안전하고 빠른 롤백’과 ‘안정적인 최종 테스트’가 가장 큰 장점입니다.

  • 1. 즉각적인 롤백 (Instant Rollback):
    • 신규 버전(그린)으로 전환 후, 예상치 못한 심각한 문제가 발견되었을 경우, 걱정할 필요가 없습니다.
    • 라우터의 스위치를 다시 예전 버전(블루)으로 돌리기만 하면 됩니다.
    • 단 몇 초 만에, 모든 사용자는 문제가 발생하기 전의 안정적인 환경으로 돌아갈 수 있습니다.
  • 2. 운영 환경과 동일한 최종 테스트:
    • 신규 버전(그린)은 사용자에게 공개되기 전에, 운영 환경과 100% 동일한 환경에서 최종 테스트를 여유롭게 수행할 수 있습니다.
    • 이는 테스트 환경과 운영 환경의 미세한 차이로 인해 발생하는 버그를 최소화해 줍니다.
  • 3. 스트레스 없는 배포:
    • 실제 사용자의 트래픽에 전혀 영향을 주지 않고, 팀은 편안한 마음으로 신규 버전을 배포하고 테스트할 수 있습니다.

Q. ‘블루그린 배포’의 단점이나 고려할 점은 무엇인가요?

가장 큰 단점은 ‘비용’이며, 이는 결코 무시할 수 없는 부분입니다.

  • 1. 두 배의 시스템 자원:
    • 블루 환경과 그린 환경, 즉 두 개의 동일한 운영 환경을 동시에 유지해야 합니다.
    • 이는 서버, 데이터베이스 등 인프라 비용이 거의 두 배로 든다는 것을 의미합니다.
  • 2. 데이터베이스 관리의 복잡성:
    • 두 환경이 동일한 데이터베이스를 공유할 경우, 신규 버전에서 데이터베이스의 구조(스키마)를 변경하는 배포는 매우 까다롭고 위험합니다.
    • 이 문제를 해결하기 위한 별도의 데이터 마이그레이션 전략이 필요하며, 이는 고도의 기술 전문성을 요구합니다.

Q. 지난번에 다룬 ‘카나리 릴리즈’와는 무엇이 다른가요?

트래픽을 전환하는 ‘방식’과 ‘위험을 감수하는 수준’이 다릅니다.

  • 블루그린 배포:
    • 전환 방식: 100%의 트래픽을 ‘한 번에’ 전환합니다. (All or Nothing)
    • 장점: 구조가 단순하고, 모든 사용자가 동일한 버전을 사용하므로 관리가 쉽습니다.
    • 단점: 전환 순간 문제가 발생하면 100%의 모든 사용자가 영향을 받습니다.
  • 카나리 릴리즈:
    • 전환 방식: 1%, 10%, 50%… 트래픽을 ‘점진적으로’ 전환합니다.
    • 장점: 문제가 발생해도 일부 사용자(예: 1%)만 영향을 받으므로, 위험이 훨씬 적습니다.
    • 단점: 일정 시간 동안 두 가지 버전이 동시에 운영되므로, 버전 관리나 모니터링이 더 복잡합니다.

Q. ‘블루그린 배포’에서 QA의 역할은 무엇인가요?

QA는 ‘그린 환경’의 품질을 최종적으로 보증하는 ‘최종 승인자’ 역할을 합니다.

  • 1. 그린 환경 검증:
    • 사용자 트래픽이 전환되기 전, 외부와 차단된 그린 환경에 접근합니다.
    • 이곳에서 모든 기능이 의도대로 동작하는지 최종 회귀 테스트 및 스모크 테스트를 수행하여, 배포 준비가 완료되었음을 보증합니다.
  • 2. 전환 후 모니터링:
    • 트래픽이 그린 환경으로 완전히 전환된 직후, 핵심 기능들이 문제없이 동작하는지 빠르게 확인합니다.
    • 동시에, 에러 로그나 성능 지표를 모니터링하며 이상 징후가 없는지 확인합니다.
  • 3. 롤백 결정 지원:
    • 전환 후 문제가 발견되었을 때, 해당 문제의 심각도를 빠르게 판단하고, 롤백 여부를 결정하는 데 중요한 데이터를 제공합니다.

결론: 신속하고 안전한 교체를 위한 선택

‘블루그린 배포’는 비용이 더 들더라도, 서비스 중단을 최소화하고 가장 빠르고 안전한 롤백을 보장하고 싶을 때 사용하는 강력한 ‘배포 전략’입니다.

이 과정에서 QA는 신규 버전(그린)의 최종 품질을 보증하고, 전환 과정의 안정성을 책임지는 중요한 역할을 수행합니다.

우리 서비스의 특성과 위험 감수 수준에 맞춰, ‘블루그린 배포’와 ‘카나리 릴리즈’ 중 더 적합한 전략을 선택하는 것이 현대적인 릴리즈 관리의 핵심입니다.

참고 자료 (References)

댓글 남기기