문서 / docs/deployment-report.md

Phase 8 배포 검증 보고서

Phase 8 배포 검증 결과.

로컬 검증일: 2026-08-13 UTC 공개 배포일: 2026-08-14 UTC

이 보고서는 T063의 로컬 standalone candidate·rollback 훈련과 T064의 실제 systemd, Nginx, DNS, TLS, 공개 활성화 결과를 함께 기록한다.

실행 결과

  • bash tests/deploy/build-release.test.sh: PASS. standalone root, .next/static, optional public, manifest, 안전하지 않은 ID 거부, 기존 ID 비덮어쓰기와 current 불변을 확인했다.
  • bash tests/deploy/deploy.test.sh: PASS. 후보 health 실패 시 무활성화, 정상 후보 활성화, 가짜 service restart, 활성화 뒤 외부 smoke 실패와 이전 release 자동 복구를 확인했다.
  • ./deploy/build-release.sh --release-root "$HARNESS_RELEASE_ROOT" --release-id harness-local-20260813: PASS. verify:app, Next production build와 standalone bundle 검사를 거쳐 실제 release를 만들었다.
  • ./deploy/deploy.sh --release-root "$HARNESS_RELEASE_ROOT" --release-id harness-local-20260813 --candidate-port 3631 --check-only: PASS. 실제 Next standalone의 health, 네 페이지, robots, sitemap, same-origin 정적 자산과 복구 가능한 404가 통과했고 current link는 생성하거나 변경하지 않았다.
  • npm run verify: PASS — 단위 47건, 통합 28건, typecheck, lint, production build, standalone 경계와 배포 계약.
  • npm run test:browser: PASS — Chromium 49/49.
  • 운영 후보 harness-20260814-0b665e7-r2: 내부 health와 전체 smoke PASS.

T064 공개 배포 결과

  • DNS A: harness.insapien.co.kr → 승인된 현재 서버 endpoint로 권한 DNS와 공개 재귀 DNS에서 확인.
  • 전용 실행 계정: non-login harness 시스템 계정과 계정 소유 0600 환경 파일 설치.
  • systemd: 5240lab-harness.service 설치, enabled·active 확인. Node.js 24.18.0 사용.
  • Nginx: HTTP reverse proxy 설치 후 전체 nginx -t PASS.
  • TLS: Certbot 인증서 발급·자동 갱신 등록, 만료일 2026-11-12. 갱신 dry-run PASS. HTTP→HTTPS 301과 Strict-Transport-Security: max-age=31536000; includeSubDomains 확인.
  • bootstrap release harness-20260813-0b665e7를 먼저 외부 smoke해 최초 배포의 rollback 기준점으로 확보했다.
  • 2026-08-14 13:25:13 UTC에 harness-20260814-0b665e7-r2를 원자적으로 활성화했다. 배포 기록의 source commit은 296f80b52899, candidate·external 검사는 모두 passed, rollback은 not-required다.
  • GET https://harness.insapien.co.kr/api/health: PASS — active release ID와 근거 검증일 일치.
  • node scripts/smoke.mjs https://harness.insapien.co.kr --expect-release harness-20260814-0b665e7-r2: PASS — 네 페이지, health, robots, sitemap, 정적 자산과 복구 가능한 404 확인.

판정과 경계

  • 검증 release ID: harness-local-20260813
  • candidate health와 내부 smoke: PASS
  • fixture 기반 활성화 후 rollback: PASS, 이전 ID old-release 복구 확인
  • active launcher manifest ID와 health 기대 ID 일치: PASS
  • deployment record의 근거 검증일, source commit, 실제 current symlink 기록: PASS
  • release mode 정규화, 상대경로 checksum 재계산과 변조 후보 사전 거부: PASS
  • 지연된 활성/rollback readiness 재시도와 원자적 record write preflight: PASS
  • systemd와 Nginx 실제 설치/재시작: PASS
  • 외부 URL smoke, DNS와 TLS: PASS
  • 수동 복구가 필요했던 단계: 없음

따라서 T056~T064의 로컬·공개 release 계약은 검증 완료다. bootstrap 이전 release가 유지되어 다음 활성화 실패 시 자동 rollback 대상으로 사용할 수 있다.