Skip to content

[EDMT-453] 블루-그린 배포 JMX 포트 충돌 해결: 메트릭 수집 포트 재배치#73

Merged
wldks1008 merged 1 commit into
developfrom
fix/EDMT-450
Sep 21, 2025
Merged

[EDMT-453] 블루-그린 배포 JMX 포트 충돌 해결: 메트릭 수집 포트 재배치#73
wldks1008 merged 1 commit into
developfrom
fix/EDMT-450

Conversation

@wldks1008

@wldks1008 wldks1008 commented Sep 21, 2025

Copy link
Copy Markdown
Member

📣 Jira Ticket

EDMT-453

👩‍💻 작업 내용

🚨 블루-그린 배포 포트 충돌 문제 해결

  • 문제 상황: JMX 메트릭 포트가 블루-그린 배포 플로우와 충돌
    • Blue 인스턴스 JMX 포트 8081 ← Green 인스턴스 앱 포트 8081 충돌
    • 배포 중 포트 바인딩 실패로 Green 컨테이너 시작 불가

🔧 JMX 포트 재배치

개발환경 (docker-compose.dev.yml):

이전: Blue JMX=8081, Green JMX=8082
변경: Blue JMX=9081, Green JMX=9082

운영환경 (docker-compose.prod.yml):

이전: Blue JMX=8081, Green JMX=8082  
변경: Blue JMX=9081, Green JMX=9082

📊 수정된 포트 매핑

인스턴스 앱 포트 JMX 포트 (이전) JMX 포트 (변경)
Blue 8080 8081 ❌ 9081 ✅
Green 8081 8082 ❌ 9082 ✅

🎯 배포 플로우 개선

  1. Blue 실행 중 (8080 앱, 9081 JMX)
  2. Green 배포 (8081 앱, 9082 JMX) ✅ 포트 충돌 없음
  3. 트래픽 전환 nginx upstream 변경
  4. Blue 종료 ✅ 깔끔한 리소스 정리

📝 리뷰 요청 & 논의하고 싶은 내용

  • JMX 포트 변경에 따른 모니터링 도구 설정 업데이트 필요성
  • 운영 환경 방화벽에서 신규 포트 (9081, 9082) 허용 설정
  • Prometheus 수집 설정에서 새로운 포트로 엔드포인트 변경

Test Plan

✅ Manual Testing Checklist

  • 개발환경에서 블루-그린 배포 테스트 (포트 충돌 없이 정상 동작)
  • Blue 인스턴스 JMX 메트릭 수집 확인 (9081 포트)
  • Green 인스턴스 JMX 메트릭 수집 확인 (9082 포트)
  • 배포 중 두 인스턴스 동시 실행 시 포트 충돌 없음 확인
  • nginx upstream 전환 시 JMX 메트릭 연속성 확인
  • 기존 앱 포트 (8080, 8081) 정상 동작 확인

🧪 Automated Tests

  • Docker Compose 파일 문법 검증: docker-compose config
  • 컨테이너 시작/중지 테스트: ./gradlew build
  • 포트 바인딩 테스트 (개발환경)
  • JMX 엔드포인트 접근성 테스트

🔍 Code Quality

  • Docker Compose 설정 리뷰 완료
  • 포트 매핑 일관성 확인 (dev/prod 환경)
  • JMX agent 설정 검증
  • 배포 플로우 문서화 업데이트

Deployment Notes

  • 중요: 운영 환경 방화벽에서 9081, 9082 포트 허용 설정 추가
  • Prometheus 수집 job에서 target 포트 변경:
    # 이전: localhost:8081, localhost:8082
    # 변경: localhost:9081, localhost:9082
  • Grafana 대시보드에서 데이터소스 포트 확인
  • 모니터링 알림 규칙에서 새 포트 반영
  • 기존 JMX 수집 설정 제거 (8081, 8082)

🔧 기술적 세부사항

JMX Agent 설정 변경:

# Blue 인스턴스
JAVA_OPTS="-javaagent:/app/jmx_prometheus_javaagent.jar=9081:/app/jmx-config.yml"

# Green 인스턴스  
JAVA_OPTS="-javaagent:/app/jmx_prometheus_javaagent.jar=9082:/app/jmx-config.yml"

메트릭 수집 엔드포인트:

# 개발환경
curl http://localhost:9081/metrics  # Blue
curl http://localhost:9082/metrics  # Green

# 운영환경
curl http://prod-server:9081/metrics
curl http://prod-server:9082/metrics

🤖 Generated with Claude Code

Summary by CodeRabbit

  • 신규 기능

  • 버그 수정

  • 문서

  • 리팩터

  • 스타일

  • 테스트

  • 기타 작업

    • 개발 및 운영 환경에서 모니터링(JMX/Prometheus) 포트 재정렬: blue 8081→9081, green 8082→9082. 호스트-컨테이너 포트 매핑도 동일하게 업데이트.
    • 영향: 로컬/프로덕션 모니터링 접근 주소가 변경됩니다. 스クリپ트, 대시보드, 방화벽/보안그룹, 헬스 체크/알람에서 8081/8082 사용 중인 항목을 9081/9082로 업데이트하세요. 애플리케이션 트래픽 포트에는 영향이 없습니다.
  • 되돌림

@coderabbitai

coderabbitai Bot commented Sep 21, 2025

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

Walkthrough

두 개의 docker-compose 파일에서 app-blue과 app-green의 JMX Prometheus 에이전트 포트가 변경되었습니다. 각 서비스의 JAVA_OPTS 내 포트와 호스트:컨테이너 포트 매핑이 app-blue 8081→9081, app-green 8082→9082로 갱신되었습니다. 그 외 설정 변경은 없습니다.

Changes

Cohort / File(s) Summary
docker-compose JMX 포트 갱신
docker-compose.dev.yml, docker-compose.prod.yml
app-blue JAVA_OPTS 및 포트 매핑 8081→9081, app-green JAVA_OPTS 및 포트 매핑 8082→9082로 변경. 기타 설정 변경 없음.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

✨refac✨

Poem

새 포트로 콩콩 뛰는 토끼의 꿈
8081, 8082는 안녕—이젠 9081, 9082 금
블루도 그린도 딱 맞춘 춤
메트릭스 흐르고 로그는 품
ㄷ(’ᴗ’ )ㄹ 포트를 맞추니 마음도 둠칫!

✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/EDMT-450

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d778801 and a01e920.

📒 Files selected for processing (2)
  • docker-compose.dev.yml (2 hunks)
  • docker-compose.prod.yml (2 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

@wldks1008 wldks1008 self-assigned this Sep 21, 2025
@wldks1008 wldks1008 added the 🛠️ fix 🛠️ Something isn't working label Sep 21, 2025
@wldks1008 wldks1008 changed the title [EDMT-450] 블루-그린 배포 JMX 포트 충돌 해결: 메트릭 수집 포트 재배치 [EDMT-453] 블루-그린 배포 JMX 포트 충돌 해결: 메트릭 수집 포트 재배치 Sep 21, 2025
@wldks1008 wldks1008 merged commit 602390d into develop Sep 21, 2025
1 of 2 checks passed
@wldks1008 wldks1008 deleted the fix/EDMT-450 branch September 21, 2025 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🛠️ fix 🛠️ Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant