프로그래밍 개념들

백엔드 용어 정리 1

쟈누이 2021. 3. 4. 16:08
반응형

 

1. 무중단 배포


무중단 배포란?

 

배포는 개발환경에서 개발된 코드를 패키징하여 서버에서 새로운 버전의 애플리케이션을 실행하도록 하는 것을 의미한다. 그 중에서 무중단 배포란 서버를 따로 중단하지 않고 배포를 진행하는 것을 의미한다.

 

예를들어, 배포 후 서버가 뜨는데 30초가 걸린다면 최소 30초 + @ 의 서비스 불가 시간이 발생하는데 이를 다운타임이라고 한다. 애플리리케이션의 서비스를 원활히 제공하기 위해서는 이 다운타임이 없는 무중단 배포를 해야만 한다.

 

 

 

 

2. 무중단 배포의 필요 요건


두대 이상의 서버 (혹은 애플리케이션)을 서비스해야한다.

- 다운타임이 발생하지 않으려면 실제 서비스 중인 서버와 새롭게 배포한 서버가 동시에 존재해야 한다. 

- 비용을 줄이려면 배포할때만 새롭게 서버를 띄우고, 배포가 완료된 후에는 기존 서버는 죽이는 것이 필요

 

 

 

 

3. 무중단 배포방식


1) Rolling 배포

- 가장 간단한 배포방식

- 서버를 로드밸런서에 보내고 나서  배포한 다음에  다음 밸런서에 다시 배포한다.(순차적으로 배포를 한다)

- 서버가 많으면 1대씩 바포하면 느리므로 N대 단위로 배포를 한다

- 단, 배포 종료시 까지 누구는 이전 서비스를 받고, 누구는 신규 서비스를 받는 등 서비스 제공에 문제 발생 가능성 존재

 

 

 

2) 카나리 배포 (Canary 배포)

- 소수의 유저( 혹은 사내) 에서만 사용하는 환경(Canary) 에 배포한 후, 문제가 없다고 판단할 시에 다른 모든 서버에 배포하는 방식

 

 

 

3) 블루 / 그린 배포

- 실제로 서비스 중인 환경(Blue) 와 새롭게 배포할 환경(Green) 을 세트로 준비하여 배포하는 방식

- 새롭게 배포할 환경에만 배포하면 되기 때문에 배포속도가 빠름

- 언제나 Green 환경이 떠있기 때문에 잘못된 버전으로 배포를 했을 경우 신속하게 RollBack이 가능하다

- 서버가 항상 떠있어야 하기 때문에 비용이 두배로 든다 (많이 든다)

- Green 환경에서 스케쥴러 같은 배치성 Job 이 도는 경우, 레거시 버전으로 돌기에 장애가 발생할 가능성이 항상 존재

 

 

 

 

4. 참고 링크


reference-m1.tistory.com/211

 

[Etc] 배포 전략의 종류(롤링/카나리 배포/블루 그린)

요즘은 MSA 아키텍처를 많이 지향하고 있는 추세이다. 이런 트렌드에 맞춰 배포 전략도 다양하게 개발되고 발전하여 변화하고 있다. 1. 롤링(Rolling) 일반적인 배포를 의미하며, 단순하게 서버를

reference-m1.tistory.com

 

반응형