도커를 활용한 서비스 배포하기 (무중단 배포 시나리오 작성) #5

2022. 6. 17. 11:20Tech Note

728x90

앞서 개발 PC에서 운영 서버로 이미지를 옮겨 설치하는 데까지 성공하였다면

이제 해당 컨테이너가 실제로 운영되고 있다는 것을 가정했을 때 어떻게 패치가 진행될지에 대해

고민을 해보았다. 

기존 구성방안

위 구성도로는 컨테이너를 교체하는 과정 서비스 가용성을 해칠 가능성이 굉장히 높다.

무중단 배포를 하기 위해서는 별도로 동일한 apache 웹 서버 컨테이너를 생성해야 할 것으로 보여

아래와 같이 구성도를 변경하였다.

무중단 배포를 위한 구성방안


1. 모든 웹 요청은 Container 1의 Nginx로 들어오게 된다.

2. Nginx는 현재 Active인 Container로 해당 요청을 전달한다.

3. 현재 Active인 Container 2는 Conatiner 4와 통신하며 요청에 대한 결과를 반환한다.


위 동작방식을 토대로 무중단 배포 시나리오는 아래처럼 진행 될 것으로 예상된다.

1. Container 2에서 웹 서비스 기능 추가 건이 들어왔다.

2. 해당 기능 추가 건에 대한 개발을 진행 한다.

3. 개발이 완료되면 새롭게 이미지를 생성한다.

4. Container 3를 Active로 전환하여 서비스 가용성을 확보한다. ( Container 2로 해도 상관없다 )

5. Container 2를 새로운 이미지로 올린다.

6. Container 2를 다시 Active로 전환하여 서비스가 정상 작동하는지 확인한다.

7. Container 3는 바로 직전 버전으로 유지해주어 롤백 가능성을 염두해둔다.

 

무중단 배포 시나리오

 

위와 같이 진행하게되면 무중단 배포가 가능 할 것으로 보인다. 첨언하자면 이 시나리오는 별도로 책자나 블로그를 참조하거나 하지 않았기에 신뢰도가 많이 떨어질 수 있으니 단순 참조만 하길 바란다! 다만 이후 포스팅에서는 좀 더 나은 방법을 가져 올 수 있을 것이다.

 

 

 

 

apache php 설치관련 참조링크

https://engineeringcode.tistory.com/94