'안정적인 서비스 배포를 위한 배포 전략과 팁' 강의
1. 롤링 배포
전체 시스템을 중단하지 않고 = 무중단
새로운 버전을 점진적으로 배포, 업데이트
=> 어떻게 효율적으로 하는 것이 좋을까 고민.
서버를 하나씩 업데이트하는 방식
첫번째 서버에서 제대로 동작하지 않으면(CD테스) 롤백한다.
문제가 없다면 그 다음 서버에서 모두 확인한다.
장점:
- 전체 시스템의 처리 능력을 대부분 유지
- 점진적인 적용을 통해 리스크 최소화
단점:
- 배포 속도가 느리다. (총 배포시간은 1개 서버 배포 시간 * 서버 숫자)
- 동시에 서로 다른 버전으로 서비스
2. 블루그린 배포
전체 시스템을 중단하지 않고 = 무중단
새로운 버전을 별도 환경에 배포하고 즉시 전환
블루 환경과 그린 환경으로 나뉨
예를 들어 블루 환경을 쓰고 있다고 했을 때 그린 환경에서 배포 테스 진행
사용자는 그린 환경 사용 불가. 블루 환경에서 그린 환경으로 전환하는데,
바뀌는 속도가 빨라서 사용자가 알기 어려움.
장점:
- 즉각적인 전환과 롤백이 가능
- 새 버전을 실제 환경과 동일한 조건에서 테스트
단점:
- 서버가 두배로 필요함(서버 비용ㅜ)
- 복잡한 설정과 관리
3. 카나리 배포
일부 서버, 일부 사용자에게만 수정된 내용 반영
롤링 배포와 비슷해보이지만 다른 점은 하나의 서버에 배포하고 바로 전체 서비스를 배포하지 않음.
사용자가 가진 속성을 활용해서 수정하는 방식 or 로드밸런서에 의해 무작위로 자동 처리
장점:
- 점진적인 적용을 통해 리스크 최소화
단점:
- 설정, 관리가 어렵고 복잡함. 보통 별도의 툴을 사용함
- 사용자 경험이 일관되지 않음.
4. A/B 테스트 배포
= 섀도우 테스트 = 미러
두 그룹을 비교해봄. 새 버전을 배포하는 것이 목적이 아니라 사용자 경험을 기준으로 어떤게 더 좋을지 테스트
728x90
반응형