rolling_before 브랜치

Rolling 무중단 배포 전략 도입 전 환경을 구축합니다. cd-rolling.yml 파일을 통해 JAR 파일을 업로드하고, 이전 프로세스를 죽이고 JAR 파일을 8081포트, 8082포트에서 실행합니다. 이 과정에서 다운 타임이 발생하게 됩니다.

rolling_after 브랜치

롤링 전략 도입하여 무중단 배포를 실행합니다. cd-rolling.yml 파일을 통해 deploy.sh 파일을 실행합니다.

deploy.sh 파일

  1. 포트 설정 및 헬스 체크 함수 정의
  2. 타임스탬프 생성
  3. 롤백 함수 정의
  4. 배포 함수 정의:
  5. 포트별 배포 절차
  6. Nginx 설정 업데이트
  7. 롤링 배포 완료

7.1. 환경 셋팅

7.1.1. Nginx 설정파일 수정

새로운 배포 전략을 구축해야하므로 Nginx 설정파일을 새롭게 수정합니다.

image.png

Nginx 설정을 통해 HTTP 요청을 8081, 8082 두 개의 포트로 포워딩합니다.

image.png

upstream backend {
    server 127.0.0.1:8081; 
    server 127.0.0.1:8082;
}
server {
    listen 80;
    server_name _;

    location / {
        proxy_pass <http://backend>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}