피드로 돌아가기
Dev.toDevOps
원문 읽기
Zero-Downtime 배포 완성, 커스텀 Deployment Hooks 설계 전략
Deployment Hooks Explained: Running Custom Scripts During Every Deploy
AI 요약
Context
표준 배포 프로세스만으로는 애플리케이션별 특수한 요구사항 해결에 한계. CDN 무효화, 특정 데이터 시딩, 외부 알림 전송 등 맞춤형 작업 수행을 위한 확장 지점 필요.
Technical Solution
- 기본 배포 스크립트 완료 후 최종 활성화 전 단계에 커스텀 명령어를 실행하는 파이프라인 구조
- Zero-Downtime 모드에서 심볼릭 링크 전환 전 신규 릴리스 디렉터리 내에서 스크립트를 실행하는 사전 검증 전략
set -e설정을 통한 첫 번째 에러 발생 시 즉시 배포를 중단하여 깨진 릴리스의 사용자 노출을 원천 차단하는 메커니즘- 비정상 종료가 배포 전체 실패로 이어지지 않도록
|| true구문을 활용한 소프트 실패(Soft Failure) 처리 방식 - 멱등성(Idempotency) 확보를 통해 배포 재시도 시에도 시스템 상태를 일관되게 유지하는 설계 원칙
- 배포 프로세스 블로킹 방지를 위해 수 초 이상의 무거운 작업은 애플리케이션 내부 Queue Job으로 위임하는 처리 구조
Key Takeaway
배포 파이프라인의 안정성은 단순 자동화를 넘어 실패 시의 원자적 롤백 가능 여부와 각 단계의 멱등성 확보에 달려 있음.
실천 포인트
Slack 알림 등 비핵심 작업에는 `|| true`를 추가하고, 무거운 작업은 배포 스크립트가 아닌 Queue Job으로 분리할 것