릴리즈 및 배포
프로덕션 배포 절차를 안내합니다.
배포 흐름
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
동작:
live/myapp심볼릭 링크 갱신- 캐시 클리어
- 마이그레이션 실행 (필요시)
롤백
문제 발생 시 이전 버전으로 즉시 복구:
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개만 유지하고 나머지 삭제.