무중단 배포 - pjhdev/UAD2 GitHub Wiki
[개요]
서비스 중인 uad2 서버에 업데이트 또는 긴급 패치를 해야 할 경우, 서비스를 다운타임이 없도록(혹은, 최소화)를 위해 nginx 의 reverse proxy 기능을 이용하여 무중단 배포를 구성.
[nginx 리버스 프록시를 이용한 서비스 구조도]
기존 version 1.0
배포된 version 1.1
[배포 전체 구성]
[배포 워크플로우]
- 개발서버(로컬)에서 개발한 코드를 github 에 커밋&푸시
- 젠킨스 배포 실행
-
- test code 실행
-
- 테스트코드 성공시 build / 테스트 코드 실패 시 mail 또는 기타 협업도구에 알람
-
- 빌드 성공 후 협업도구에 알람 & 생성된 jar 파일 jar directory 로 전송(날짜별 혹은 빌드버전별로 폴더링)
-
- 새로 빌드된 jar 파일을 기존 jar 파일(심볼릭링크) 와 교체
- 젠킨스 배포 완료 후 유휴 nginx port 에 업데이트된 버전의 스프링 서비스 실행
- 이전 버전의 스프링 서비스 kill
- 무중단 배포 완료