#배포 가이드 (Deep Dive)
버전: 0.33.0
최종 업데이트: 2026-03-15
적용 대상: ranvier (facade), ranvier-http
카테고리: 심층 분석
Ranvier 프로덕션 배포를 위한 Docker 멀티 스테이지 빌드, Kubernetes 매니페스트, 배포 패턴을 다룹니다.
#Docker 멀티 스테이지 빌드
| 스테이지 |
설명 |
| Builder |
rust:1.93-bookworm 기반, cargo-chef로 의존성 캐싱 |
| Runtime |
debian:bookworm-slim 기반, 비루트 사용자 및 HEALTHCHECK 적용 |
의존성 캐싱: Cargo.toml/Cargo.lock 변경 시에만 재빌드합니다.
#Kubernetes 매니페스트
| 리소스 |
설명 |
| Deployment |
준비 상태/생존/시작 프로브, Prometheus 어노테이션 포함 |
| Service |
ClusterIP, http (80→3000) 및 inspector (3001) 포트 노출 |
| ConfigMap |
ranvier.toml (서버, 로깅, inspector, 텔레메트리 섹션) |
| HPA |
CPU/메모리 기반 자동 스케일링, 스케일 업/다운 정책 포함 |
#프로덕션 설정
- 프로필 활성화:
RANVIER_PROFILE=prod 설정 시 [profile.prod] 오버라이드가 적용됩니다.
- 시크릿: 환경 변수로 주입합니다 (
RANVIER_TELEMETRY__OTLP_ENDPOINT).
- 볼륨 마운트: ConfigMap을
/app/ranvier.toml로 마운트하여 파일 기반 설정을 제공합니다.
#헬스 프로브
| 엔드포인트 |
동작 |
/health |
등록된 검사 결과를 포함하는 전체 헬스 상태 |
/ready |
준비 상태 프로브 -- 모든 검사 통과 시 200 반환 |
/live |
생존 프로브 -- 항상 200 반환 (프로세스 생존 확인) |
| 시작 프로브 |
애플리케이션 워밍업 대기를 위한 초기 지연 |
#워크플로우
Dockerfile.example과 .dockerignore.example을 프로젝트 루트에 복사합니다.
- Docker 이미지를 빌드합니다:
docker build -t my-ranvier-app .
- Kubernetes 네임스페이스를 생성하고
ranvier.toml이 포함된 ConfigMap을 적용합니다.
- 클러스터에 Deployment, Service, HPA 매니페스트를 적용합니다.
- Pod 어노테이션을 통해 Prometheus 스크래핑을 설정합니다.
- 분산 트레이싱을 위한 OTLP 엔드포인트를 설정합니다 (Jaeger, Tempo, Datadog).
/health, /ready, /live 엔드포인트와 Inspector /metrics로 모니터링합니다.
#주요 아티팩트
| 아티팩트 |
설명 |
| Dockerfile.example |
멀티 스테이지 Docker 빌드 (의존성 캐싱, 비루트 런타임) |
| deployment.yaml |
Kubernetes Deployment (헬스 프로브, Prometheus 어노테이션) |
| service.yaml |
ClusterIP Service, HTTP 및 Inspector 포트 노출 |
| configmap.yaml |
ConfigMap, 프로덕션용 ranvier.toml 포함 |
| hpa.yaml |
HorizontalPodAutoscaler, CPU/메모리 기반 스케일링 |