- Add comprehensive deployment guide in CLAUDE.md - Quick deploy commands for News API - Version management strategy (Major/Minor/Patch) - Rollback procedures - Add detailed DEPLOYMENT.md for News API service - Update docker-compose.yml with SAPIENS platform services - Add sapiens-web with PostgreSQL (port 3005, 5433) - Add sapiens-web2 with PostgreSQL (port 3006, 5434) - Configure health checks and dependencies 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.4 KiB
3.4 KiB
News API Deployment Guide
버전 관리 규칙
- Major 버전 (v2.0.0): Breaking changes, API 스펙 변경
- Minor 버전 (v1.1.0): 새로운 기능 추가, 하위 호환성 유지
- Patch 버전 (v1.0.1): 버그 수정, 작은 개선
배포 프로세스
1. 버전 결정
# 현재 버전 확인
cd /Users/jungwoochoi/Desktop/prototype/site11
git tag | grep news-api | tail -5
# 다음 버전 결정
export VERSION=v1.1.0 # 적절한 버전으로 변경
2. Docker 이미지 빌드 및 푸시
cd /Users/jungwoochoi/Desktop/prototype/site11/services/news-api
# 버전 태그와 latest 태그 동시 생성
docker build -t yakenator/news-api:${VERSION} -t yakenator/news-api:latest -f backend/Dockerfile backend
# 두 태그 모두 푸시
docker push yakenator/news-api:${VERSION}
docker push yakenator/news-api:latest
3. Kubernetes 배포
# 배포 재시작 (latest 태그 사용 시)
kubectl -n site11-news rollout restart deployment news-api-deployment
# 특정 버전으로 배포 (optional)
kubectl -n site11-news set image deployment/news-api-deployment news-api=yakenator/news-api:${VERSION}
# 롤아웃 상태 확인
kubectl -n site11-news rollout status deployment news-api-deployment
# Pod 상태 확인
kubectl -n site11-news get pods -l app=news-api
4. 배포 검증
# Port forward 설정
kubectl -n site11-news port-forward svc/news-api-service 8050:8000 &
# Health check
curl http://localhost:8050/health
# API 테스트
curl 'http://localhost:8050/api/v1/ko/articles?page_size=5'
curl 'http://localhost:8050/api/v1/outlets?category=people'
curl 'http://localhost:8050/api/v1/ko/outlets/온유/articles?page_size=5'
5. Git 태그 생성 (optional)
cd /Users/jungwoochoi/Desktop/prototype/site11
# 태그 생성
git tag -a news-api-${VERSION} -m "News API ${VERSION}: outlet 다국어 지원 및 동적 기사 쿼리"
# 태그 푸시
git push origin news-api-${VERSION}
롤백 프로세스
이전 버전으로 롤백
# 이전 버전 확인
kubectl -n site11-news rollout history deployment news-api-deployment
# 이전 버전으로 롤백
kubectl -n site11-news rollout undo deployment news-api-deployment
# 특정 버전으로 롤백
kubectl -n site11-news set image deployment/news-api-deployment news-api=yakenator/news-api:v1.0.0
트러블슈팅
Docker 빌드 실패
# Docker daemon 상태 확인
docker info
# Docker 재시작 (macOS)
killall Docker && open /Applications/Docker.app
Port forward 문제
# 기존 port forward 종료
lsof -ti:8050 | xargs kill -9 2>/dev/null
# 새로운 port forward 시작
kubectl -n site11-news port-forward svc/news-api-service 8050:8000 &
Pod 상태 확인
# Pod 로그 확인
kubectl -n site11-news logs -f deployment/news-api-deployment
# Pod 상세 정보
kubectl -n site11-news describe pod <pod-name>
# Pod 이벤트 확인
kubectl -n site11-news get events --sort-by='.lastTimestamp'
버전 히스토리
v1.1.0 (2025-10-12)
- Outlet 다국어 지원 추가 (name_translations, description_translations)
- 동적 기사 쿼리 구현 (entities 필드 활용)
- 정적 articles 배열 제거, source_keyword 기반 동적 조회로 변경
v1.0.0 (Initial Release)
- 다국어 기사 API (ko, en, zh_cn, zh_tw, ja, fr, de, es, it)
- Outlets 관리 (people, topics, companies)
- 댓글 시스템
- MongoDB 기반 데이터 저장