WEBBOOK CHAPTER

WAR 배포, 밤에 깨지 않게: 6장 아티팩트 승격 계약을 만든다

6장 아티팩트 승격 계약을 만든다

배포 요청에는 “최신 WAR”가 아니라 식별 가능한 봉투가 필요하다.


{
  "service": "releaseportal",
  "version": "1.0.0",
  "gitCommit": "abc1234",
  "artifact": "releaseportal.war",
  "sha256": "배포 파일의 64자리 해시",
  "builtWith": "JDK 21",
  "target": "Tomcat 11 / Java 21",
  "migration": "expand only",
  "health": "/releaseportal/health",
  "rollback": "0.9.0"
}

SNAPSHOT이나 같은 이름의 WAR를 덮어써도 아티팩트 저장소에서는 내용이 바뀌지 않게 한다. 운영에 반입할 때 서버에서 체크섬을 다시 계산한다. 전송 전과 전송 후 해시가 다르면 unzip이나 재복사로 고치지 않고 반입을 중단한다.

2부 Tomcat 서버에 안전하게 배포한다