롤링 업데이트 실험·헬스체크 설정·롤백 구조 중심으로 푸는 결
졸업 프로젝트에서 서비스 중단 없이 배포하는 구조를 처음 고민해봤습니다. 단순히 서버 하나에 새 코드를 올리는 방식을 쓰다가, 배포 중 약 30초간 서비스가 끊기는 문제가 생겼습니다. 이후 Kubernetes의 롤링 업데이트 방식을 학습하면서 Pod를 하나씩 교체해 서비스 연속성을 유지하는 구조를 실험해봤습니다.
liveness probe와 readiness probe를 설정해서 새 버전이 정상 응답을 확인하기 전까지 트래픽을 받지 않도록 했습니다. 가장 우선시한 것은 배포 실패 시 자동으로 이전 버전으로 롤백되는 구조를 미리 만들어두는 것이었습니다. 대규모 환경에서는 Blue-Green 배포나 카나리 배포가 더 안전하다는 것도 학습했는데, 이 두 방식의 차이는 트래픽을 전환하는 시점과 범위라고 이해했습니다. zero downtime은 기술 선택보다 장애 시나리오를 미리 정의해두는 것이 핵심임을 배웠습니다.