Release를 Smoke와 Rollback 증거로 닫기
이미지가 만들어졌다는 사실은 사용자가 정상 경로를 사용할 수 있다는 증거가 아닙니다. 검사한 commit과 실행 image를 묶고, health 뒤에 실제 DB를 읽는 smoke를 실행해야 합니다.
3회 조회약 2분 읽기
목차
이미지가 만들어졌다는 사실은 사용자가 정상 경로를 사용할 수 있다는 증거가 아닙니다. 검사한 commit과 실행 image를 묶고, health 뒤에 실제 DB를 읽는 smoke를 실행해야 합니다.
최소 순서
- clean worktree와 대상 서비스를 명시합니다.
- Git SHA tag image를 build하거나 이미 존재하는 같은 tag를 재사용합니다.
- 대상만
--no-deps --force-recreate로 교체합니다. - container readiness와 서비스별 실제 읽기 smoke를 확인합니다.
- 실패하면 직전 image를 rollback tag로 복원하고 readiness를 다시 확인합니다.
SSR과 정적 미러
SSR과 정적 미러는 별도 산출물입니다. DB-only 변경 뒤 미러가 옛 export를 제공할 수 있으므로 콘솔 시드·SSR 공개 읽기·export 내용·정적 배포·양언어 route를 각각 확인합니다. 성공·rollback 로그와 tag를 release 기록으로 보존합니다.
증거가 닫히는 지점
| 단계 | 약한 증거 | 완료를 증명하는 증거 |
|---|---|---|
| 빌드 | 이미지 생성 로그 | 이미지 tag와 검증한 Git SHA 일치 |
| 기동 | 프로세스 running | dependency를 포함한 readiness 통과 |
| 기능 | 정적 /health 200 |
실제 DB-backed 읽기와 핵심 사용자 경로 응답 |
| 실패 | 이전 이미지 tag 존재 | 이전 이미지 재기동 후 readiness·smoke 재통과 |
| 미러 | 정적 배포 성공 | source·export 필드 drift 0과 공개 route 확인 |
commit ──build──▶ immutable image ──replace──▶ readiness
▲ │
└──────── rollback + smoke ◀── failure ┘
새 컨테이너를 지우는 것으로 rollback이 끝나지는 않습니다. 직전 인스턴스가 다시 요청을 처리하는지 확인해야 하며, smoke는 데이터를 바꾸지 않는 대표 조회여야 합니다.
관련 강좌: 검증된 Commit을 Release와 이미지로 묶기