본문 바로가기
INFRA/Operation

배포 전략 - Rolling, Blue/Green, Canary

by BTC_마루 2023. 6. 8.

안녕하세요. 비티시보이즈입니다.

 

배포 전략에 대해 알아보겠습니다.

 

먼저 배포 전략이 필요한 이유가 무엇일까요?

가장 중요한 부분은 다운타임을 최소화하기 위함입니다. 

 

서비스가 운영 중일 때 사용자의 피드백이나 새로운 버전의 서비스를 제공하기 위해 배포를 할 때마다 기존 서버를 중단하고 새롭게 띄운다면, 사용자가 서비스를 사용할 수 없는 시간이 발생하게 됩니다.

 

이러한 시간을 최소화하기 위해 배포 전략을 세워서 무중단 배포를 하게 된다면 다운타임은 최소화되고 사용자는 지속적으로 서비스를 이용할 수 있습니다.

 

배포 전략에는 대표적인 Rolling, Bule/Green, Canary 3가지가 있습니다. 

 

1. Rolling

서버가 조금씩 교체되며 모든 서버가 교체될 때까지 진행하는 배포 전략입니다.

서비스 중인 서버 한 대를 제외시키고 그 자리에 새 버전의 서버를 추가하며, 구 버전에서 신 버전으로 점진적인 트래픽을 전환을 하게 됩니다. 

Rolling update는 배포 중 인스턴스의 수가 감소 되기 때문에 서버 처리 용량을 미리 고려해야 합니다.

Rolling Update

 

2. Blue/Green

Blue/Green은 구 서버와 똑같은 스펙의 신 서버를 띄운 후 신 서버로 트래픽을 돌리는 전략입니다.

하나의 버전만 프로덕션 되어서 버전 관리 문제를 방지할 수 있고, 운영 환경에 영향을 주지 않고 실제 서비스 환경으로 새 버전 테스트가 가능합니다. 그리고 신 버전에 문제가 발생했을 시 롤백이 빠르게 가능합니다.

단, 구 버전과 새 버전 두 환경 모두 갖출 필요가 있기 때문에 시스템 자원이 두 배로 필요하다는 점을 고려 해야겠습니다.

 

Blue/Green

 

3. Canary

Canary는 어원을 보면 이해가 쉽습니다.

- 탄광에서 유독가스의 누출 위험을 알리는 용도로 사용됨

- 유독가스에 민감한 카나리는 그 보다 먼저 반응하여 죽기 때문에, 누출을 사전에 인지 가능

카나리아 새처럼 위험을 빠르게 감지할 수 있는 배포 기법입니다.

 

변경 사항을 천천히 릴리즈함으로써 프로덕션 환경에 새로운 소프트웨어 버전을 도입하는 위험을 줄이는 기술입니다.

Canary는 기존 버전을 유지한 채로 일부 버전만 신규 버전으로 올려서, 신규 버전에 버그나 이상이 없는지 확인이 가능합니다. 그리고 A/B 테스트가 가능하고, 오류율 및 성능 모니터링에 유용하게 사용할 수 있습니다.

Canary

 

 

감사합니다.

'INFRA > Operation' 카테고리의 다른 글

[Ansible] WordPress 설치하기  (0) 2023.06.23
[Ansible] Ansible Inventory  (1) 2023.06.09
[Ansible] Ansible Playbook이란  (1) 2023.06.08
CrossPlane에 대해  (0) 2023.06.07
[Ansible] Ansible 설치 및 apache 배포  (0) 2023.05.25

댓글