-
배포 방식 정리 - Rolling, Blue-Green, Canary개발공부/CS지식 2024. 1. 24. 14:34
1. Basic Deployment
- (기도 메타) 모든 노드를 한꺼번에 배포하는 방식이다.
- EC2 배포
- 배포 시 서비스가 죽을 수 있다.
- 배포 중에 중단이 발생할 수 있고 롤백 프로세스가 느릴 수 있다.
장점
- 가격이 가장 저렴하고 배포 방식이 단순하다.
- 특정 시간에만 사용하는 서비스
- 비즈니스나 수익과 관련 없는 단순한 서비스
단점
- 가장 위험한 배포 방식 → 서비스가 죽을 수 있다.
2. The Multi-Service Deployment
- 다수의 노드가 다중의 서비스로 동시에 배포되는 방식이다.
- 버전 관리가 필요한 어플리케이션, 사용하지 않는 시간에만 배포
장점
- basic 보다는 덜 위험, 저렴하고 배포 방식이 단순하다.
단점
- 중단 방지 기능이 없고, 롤백도 느리다.
3. Rolling Deployment
- 실행중인 어플리케이션 인스턴스에 업데이트하는 배포 전략
- 노드(서버)가 환경에 점진적으로 덩어리로 업데이트 된다.
장점
- 비교적으로 롤백이 간단하고, 일반 배포에 비해 안전하다.
- 구현이 단순하다.
단점
- 점진적으로 업데이트 되기 때문에, New 버전과 Old 버전 둘다 rolling delopy에서 동작해야한다. (까다롭다)
- 배포 증분이 일어날때마다 검증을 해서 배포 속도가 느린편이다.
4. Blue-Green Deployment
- 2개의 동일한 환경을 활용한 배포 방법이다.
- Blue (AKA staging) → QA, Testing 수행하고 이상이 없으면 User 트래픽을 받는다.
- Green (AKA production) → User 트래픽이 일어나고 있는 운영 서버. Blue가 성공적으로 배포되면 트래픽을 이동 시킨다.
장점
- 배포가 간단하고 빠르다.
- 롤백도 간단하다.
- 배포 환경이 다른 방식보다 안전하다 (무중단)
단점
- 비싸다
- User 트래픽을 이동시키면서 트랜잭션 손실이 일어날 수 있다.
5. Canary Deployment
- 카나리라는 새는 위험 감지를 매우 잘하는 새인데, 그런 행동에서 유례
- 어플리케션 또는 서비스의 일부를 일부의 사용자에게 점진적으로 배포하는 전략
- 환경에 배포를 step by step 조금씩 진행할 수 있다. (All infrastructure in a target environment is updated in small phases (e.g: 2%, 25%, 75%, 100%)
장점
- 롤백, 트리거를 빠르게 할 수 있어 가장 안전하다.
- 배포와 동시에 실제 유저에게 테스트할 수 있다.
- 블루-그린 보다 싸다
단점
- 프로덕션 테스트가 필요한 구현을 포함하고 있다.
- 배포 방식이 복잡하고, 테스트하기도 어렵다. (테스트 위한 또 다른 학습 곡선)
6. A/B Testing
...
반응형'개발공부 > CS지식' 카테고리의 다른 글
개발문서 - 컨플루언스(Confluence) 입문 (0) 2023.07.16 쉬운 URL과 URL의 차이 (2) 2022.02.02 네트워크- 네트워크 정의, 패킷, 비트, 바이트, LAN, WAN (0) 2022.01.10 REST API란? (0) 2022.01.10 동기와 비동기 (0) 2021.11.15 - (기도 메타) 모든 노드를 한꺼번에 배포하는 방식이다.