mmy789.log
로그인
mmy789.log
로그인
[BE] 배포 방법
kiteB
·
2021년 10월 1일
팔로우
0
BE
롤링
배포
블루그린
카나리
0
BE
목록 보기
2/2
오늘은 배포 방법에 대해 알아보도록 하겠다!
1. 롤링 (Rolling)
무중단 배포의 가장 기본적인 방식
단순하게 서버를 구성하여 배포하는 전략
서비스 중인 구 버전을 하나씩 제외시키고 그 자리에 새 버전을 하나씩 올려
구 버전에서 새 버전으로 트래픽을 점진적으로 전환
한다.
특징
인스턴스마다 차례로 배포를 진행하기 때문에 상황에 따라 손쉽게 롤백(Roll Back)이 가능하다.
롤링 배포 방식은
서버 수의 제약이 있을 경우 유용
하다.
새 버전을 배포할 때 인스턴스 수가 감소하기 때문에
서비스 처리 용량을 고려
해야 한다.
예를 들어, 100까지 감당 가능한 서버 3개가 있을 때 70씩 부하를 가지고 있을 경우,
서버 한 개만 다운타임이 생겨도 0, 105(70 + 35), 105(70 + 35)가 되어서 모든 서비스가 마비된다.
배포가 진행되는 동안 구버전과 신버전이 공존하기 때문에
호환성 문제가 발생
할 수 있다.
2. 블루 그린 (Blue Green)
구 버전(블루), 신 버전(그린) 서버를 동시에 나란히 구성
하여
배포 시점에 트레픽이 일제히 전환됨
운영 환경에 구 버전과 동일하게 신 버전의 인스턴스를 구성한 후,
로드밸런서를 통해
신 버전으로 모든 트래픽을 전환
하는 배포 방식이다.
특징
롤링과 마찬가지로
빠른 롤백이 가능
하다.
구 버전과 동일한 운영 환경으로 신 버전의 인스턴스를 구성하기 때문에
운영환경에 영향을 주지 않고
실제 서비스 환경으로 신 버전 테스트가 가능
하다.
배포 후 남아 있는 기존 버전의 환경을 다음 배포에 재사용할 수 있다.
단, 이런 구성은
시스템 자원이 두 배로 필요
하여 비용이 더 많이 발생하며,
새로운 환경에 대한 테스트가 전제
되어야 한다.
3. 카나리 (Canary)
카나리 배포는
위험을 빠르게 감지할 수 있는 배포 전략
이다.
구 버전의 서버와 새 버전의 서버들을 구성하고
일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단
한다.
특징
이 기법으로 A/B 테스트가 가능하며, 성능 모니터링에 유용하다.
트래픽을 분산시킬 때는 라우팅을 랜덤하게 할 수 있고, 사용자로 분류할 수도 있다.
신 버전의 배포 전에
실제 운영 환경에서 미리 테스트
할 수 있다는 점이 블루-그린 방식과 비슷하다.
하지만
카나리 배포
는 단계적인 전환 방식을 통해
부정적 영향을 최소화
하고
상황에 따라 트래픽 양을 늘리거나 롤백
할 수 있다.
롤링 배포와 마찬가지로,
구 버전과 신 버전이 공존
하기 때문에
버전 관리가 필요
하다.
추가 개념 정리
무중단 배포
란
서비스 장애와 배포의 부담을 최소화하기 위해
운영 중인 서비스를 중단하지 않고 신규 소프트웨어를 배포하는 기술.
무중단 배포의 핵심은 로드밸런서를 통해 연결된
두 개 이상의 (서로 다른 IP, 포트를 가진) 인스턴스에
트래픽을 제어해 배포하는 것.
로드밸런서(Load Balancer)
란
여러 대의 서버에게 균등하게 트래픽을 분산시켜주는 역할을 하는 것
하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 분산처리하여 해결해주는 서비스
다운타임(downtime)
란
시스템을 이용할 수 없는 시간
시스템이 오프라인이거나 사용할 수 없는 상황에 놓이는 상태를 가리킨다.
참고 자료
https://reference-m1.tistory.com/211
https://onlywis.tistory.com/10
https://www.s-core.co.kr/insight/view/글로벌-서비스-운영의-필수-요소-무중단-배포-아키텍/
https://dunchi.tistory.com/69
https://potato-yong.tistory.com/136
kiteB
🚧 https://coji.tistory.com/ 🏠
팔로우
이전 포스트
[BE] CI/CD란?
0개의 댓글
댓글 작성