아무거나

배포전략(Rolling, Blue/Green, Canary) 본문

Infra/DevOps

배포전략(Rolling, Blue/Green, Canary)

전봉근 2022. 7. 1. 17:35
반응형

평소 대략적으로만 이해하고있던 배포전략 개념에 관하여 좀 더 자세하게 정리하고자 포스팅을 작성하게 되었다.

 

배포전략(Rolling, Blue/Green, Canary)

    • Rolling
      • Rolling 배포는 서버를 한 대씩 구 버전에서 새 버전으로 교체해가는 전략이다. 서비스 중인 서버 한 대를 제외시키고 그 자리에 새 버전의 서버를 추가한다. 이렇게 구 버전에서 새 버전으로 트래픽을 점진적으로 전환한다. 이와 같은 방식은 서버 수의 제약이 있을 경우 유용하나 배포 중 인스턴스의 수가 감소 되므로 서버 처리 용량을 미리 고려해야 한다.

  • Blue/Green
    • Blue/Green 배포는 신 버전을 배포하고 일제히 전환하여 모든 연결을 신 버전을 바라보게 하는 전략이다. 구 버전, 신 버전 서버를 동시에 나란히 구성하여 배포 시점에 트래픽이 일제히 전환되며 빠른 롤백이 가능하고, 운영환경에 영향을 주지 않고 실제 서비스 환경으로 신 버전 테스트가 가능하다. 단, 이런 구성은 시스템 자원이 두배로 필요하여 비용이 더 많이 발생한다. 

  • Canary
    • 'Canary'라는 용어의 어원을 알면 이해가 더 쉽다. Canary는 카나리아 라는 새를 일컫는 말인데, 이 새는 일산화탄소 및 유독가스에 매우 민감하다고 한다. 그래서 과거 광부들이 이 새를 옆에 두고 광산에서 일을 하다가 카나리아가 갑자기 죽게 되면 대피를 했다고 한다. Canary 배포는 카나리아 새처럼 위험을 빠르게 감지할 수 있는 배포 기법이다. 지정한 서버 또는 특정 user에게만 배포했다가 정상적이면 전체를 배포한다. 서버의 트래픽의 일부를 신 버전으로 분산하여 오류 여부를 확인할 수 있고, 이런 전략은 A/B 테스트가 가능하며, 성능 모니터링에 유용하다. 트래픽을 분산시킬 때는 라우팅을 랜덤하게 할 수 있고, 사용자로 분류할 수 있다. 

 

[요약]

- Blue/Green: 테스트해보고 트래픽을 한번에 전환함. 롤백이 빠름

   - 동일한 양의 instance로 이루어진 새로운 Server Group을 생성

   - 신규 Server Group이 정상상태가 되면 LB는 신규 Server Group에 트래픽을 분산함. 

   * Blue 구역은 실제 운영서버이고, Green 구역에서 신규버전 테스트를 하고, 문제가 없으면 Blue 구역에 향하던 Request 를 Green 구역으로 향하게함. 그러면 이제 Green 구역이 실 운영서버가 되고 Blue 구역은 테스트서버가 됨. (구역 swap)

- Rolling: Blue/Green 과 동일하나 단, 인스턴스별 또는 그룹별로 Rolling

- Canary: 트래픽을 분산시켜 전환함

   - 가장 작은 개수의 인스턴스를 교체시키고

   - 새로운 버전으로 트래픽을 분산시킨다 (1~5%)

   - 새로운 버전에 이슈가 없을때까지 테스트를 진행하고

   - 특정시간까지 이슈가 없으면 배포를 늘려간다.

 

 

참고: https://onlywis.tistory.com/, https://reference-m1.tistory.com/, https://berrrrr.github.io/

반응형
Comments