Devin.KR

헬스 체크와 배포·롤백

테스트를 통과한 이미지를 배포하고 사용자 요청 실패 시 이전 버전으로 복구합니다.

진도 0%

레슨

  1. 생존과 요청 준비 상태

    프로세스 실행과 요청 처리 가능 상태를 구분합니다.

  2. 후보 검증과 트래픽 전환

    후보 이미지 검증 후 프록시 대상을 바꿉니다.

  3. 복구 기준과 이전 digest

    오류·시간 초과 기준으로 이전 이미지를 복구합니다.

  4. 데이터 호환성과 백업 복원

    이미지 롤백과 데이터 복원을 구분합니다.

헬스 체크와 배포·롤백 미션

m06 미션 solution 전체를 이어받아 app에 /ready와 11개 Java 테스트를 추가합니다. 이전 CI archive와 m06 실행 자원은 보존하고 새 CI 후보 이미지를 검증한 뒤 개인 Nginx 프록시의 전환·오류·시간 초과 복구 및 별도 볼륨 복원을 재현합니다.

요구사항

  • m04 CI 통과 산출물만 받아 m06 후보 환경에 배포하고 readiness·사용자 요청 검사 후 프록시를 전환합니다.
  • 오류율 fixture 또는 검사 시간 초과에서 이전 digest로 복구하며 변경 전 데이터를 보존합니다.
  • 백업을 별도 볼륨에 복원하고 이전 버전의 데이터 호환성을 검증합니다.

완료 기준

  • 준비 실패 후보로 트래픽이 전환되지 않습니다.
  • 실패 후보 배포 후 이전 digest와 사용자 응답·안내판 데이터가 확인됩니다.
  • 손상된 백업은 거부하고 정상 백업 복원 후 원본 레코드가 일치합니다.
  • check.sh는 CI checksum·실제 양쪽 image ID와 platform·m06 라벨과 마운트·준비 실패 503 전환 금지·정상 backend 관측·5개 요청의 오류 및 timeout 복구·이전 응답 일치·원본 바이트 보존을 검사합니다.
  • 손상 archive는 거부하며 별도 restore-data 볼륨을 실제 이전 image ID로 읽어 id·title을 원본과 비교합니다. 최종 프록시는 기존 m06 서비스입니다.
  • 오류 fixture는 같은 후보 이미지의 /fixture/error와 /fixture/slow로 사용자 경로를 연결하는 장애 주입이며 별도 불량 이미지를 빌드한 실험이 아닙니다. Docker 실행은 external 대기입니다.
BOOTCAMP_AUTOCLEAN=1 bash prepare-and-check.sh
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 명령 기록과 관측 증거로 변경 이유를 설명합니다.
  • 다른 학습자가 README로 실행·실패 재현·검증을 따라갈 수 있습니다.