배포할 때마다 끊기던 서비스를 무중단으로: Jenkins Rolling Deployment에서 내린 네 가지 결정

타겟 그룹 전체를 동시에 재시작하던 Jenkins 파이프라인을 서버별 순차 배포와 LB 제어로 바꾸며 내린 네 가지 결정과 아직 남은 한계

2025년 8월 7일 · 8 분 · An Seongjin

Tomcat 배포 방식의 올바른 이해와 구조적 분석

Tomcat 서버의 애플리케이션 배포는 웹 애플리케이션 운영에서 가장 기본적인 영역이면서도, 실제로는 많은 개발자들이 정확한 동작 원리를 놓치고 있는 부분이다. 최근 고객사 운영 서버의 server.xml 설정을 분석하던 중, <Context> 태그와 <Host>의 appBase 속성이 혼재된 구성에서 WAR 파일 배포 과정에 대한 오해를 발견했다. 기존의 배포 설정 운영 중인 서버의 server.xml 설정: <Host name="localhost" appBase="/home/manager/eps/webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/home/manager/eps/webapps/legacy" reloadable="false" /> <Context path="/v5" docBase="/home/manager/eps/webapps/ui5" reloadable="false" /> <!-- ... AccessLogValve 설정 ... --> </Host> 이 설정에서 명시적인 <Context> 배포와 appBase를 통한 자동 배포가 공존하고 있었음.. 그런데 여기서 문제가 발생. 새로운 버전의 ui5.war 파일을 배포하려 할 때, 기존 관리자는 다음과 같은 절차를 따르고 있었다. ...

2023년 5월 11일 · 4 분 · An Seongjin