안녕하세요. 비티시보이즈입니다.
배포 전략에 대해 알아보겠습니다.
먼저 배포 전략이 필요한 이유가 무엇일까요?
가장 중요한 부분은 다운타임을 최소화하기 위함입니다.
서비스가 운영 중일 때 사용자의 피드백이나 새로운 버전의 서비스를 제공하기 위해 배포를 할 때마다 기존 서버를 중단하고 새롭게 띄운다면, 사용자가 서비스를 사용할 수 없는 시간이 발생하게 됩니다.
이러한 시간을 최소화하기 위해 배포 전략을 세워서 무중단 배포를 하게 된다면 다운타임은 최소화되고 사용자는 지속적으로 서비스를 이용할 수 있습니다.
배포 전략에는 대표적인 Rolling, Bule/Green, Canary 3가지가 있습니다.
1. Rolling
서버가 조금씩 교체되며 모든 서버가 교체될 때까지 진행하는 배포 전략입니다.
서비스 중인 서버 한 대를 제외시키고 그 자리에 새 버전의 서버를 추가하며, 구 버전에서 신 버전으로 점진적인 트래픽을 전환을 하게 됩니다.
Rolling update는 배포 중 인스턴스의 수가 감소 되기 때문에 서버 처리 용량을 미리 고려해야 합니다.
2. Blue/Green
Blue/Green은 구 서버와 똑같은 스펙의 신 서버를 띄운 후 신 서버로 트래픽을 돌리는 전략입니다.
하나의 버전만 프로덕션 되어서 버전 관리 문제를 방지할 수 있고, 운영 환경에 영향을 주지 않고 실제 서비스 환경으로 새 버전 테스트가 가능합니다. 그리고 신 버전에 문제가 발생했을 시 롤백이 빠르게 가능합니다.
단, 구 버전과 새 버전 두 환경 모두 갖출 필요가 있기 때문에 시스템 자원이 두 배로 필요하다는 점을 고려 해야겠습니다.
3. Canary
Canary는 어원을 보면 이해가 쉽습니다.
- 탄광에서 유독가스의 누출 위험을 알리는 용도로 사용됨
- 유독가스에 민감한 카나리는 그 보다 먼저 반응하여 죽기 때문에, 누출을 사전에 인지 가능
카나리아 새처럼 위험을 빠르게 감지할 수 있는 배포 기법입니다.
변경 사항을 천천히 릴리즈함으로써 프로덕션 환경에 새로운 소프트웨어 버전을 도입하는 위험을 줄이는 기술입니다.
Canary는 기존 버전을 유지한 채로 일부 버전만 신규 버전으로 올려서, 신규 버전에 버그나 이상이 없는지 확인이 가능합니다. 그리고 A/B 테스트가 가능하고, 오류율 및 성능 모니터링에 유용하게 사용할 수 있습니다.
감사합니다.
'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 |
댓글