Skip to main content

릴리즈 및 배포

프로덕션 배포 절차를 안내합니다.

배포 흐름

workspace/{project}/     # 개발
↓ make release NAME={project}
releases/{project}/{timestamp}/ # 스냅샷 생성
↓ make deploy NAME={project}
live/{project} → # 심볼릭 링크 갱신

릴리즈 생성

개발 소스의 스냅샷을 생성합니다:

make release NAME=myapp

결과:

releases/myapp/251218-1400/    # YYMMDD-HHMM 형식

릴리즈 목록 확인

make release-list NAME=myapp

출력:

Available releases for myapp:
251216-1200
251217-0900
251218-1400 (latest)

프로덕션 배포

최신 릴리즈를 프로덕션에 배포합니다:

make deploy NAME=myapp

동작:

  1. live/myapp 심볼릭 링크 갱신
  2. 캐시 클리어
  3. 마이그레이션 실행 (필요시)

롤백

문제 발생 시 이전 버전으로 즉시 복구:

make rollback NAME=myapp

또는 특정 버전으로:

make deploy NAME=myapp VERSION=251217-0900
빠른 롤백

심볼릭 링크 변경만으로 롤백되므로 수 초 내 완료됩니다.

배포 체크리스트

배포 전

  • 테스트 통과 확인
  • 환경변수 점검
  • DB 마이그레이션 검토
  • 백업 생성

배포 후

  • 서비스 정상 동작 확인
  • 로그 모니터링
  • 주요 기능 테스트

무중단 배포

심볼릭 링크 방식으로 무중단 배포를 지원합니다:

# 배포 전
live/myapp → releases/myapp/251217-0900

# 배포 후 (원자적 전환)
live/myapp → releases/myapp/251218-1400

웹 서버가 live/myapp을 바라보므로 링크 변경 즉시 적용됩니다.

릴리즈 정리

오래된 릴리즈 삭제:

make release-clean NAME=myapp KEEP=5

최근 5개만 유지하고 나머지 삭제.

다음 단계