#배포 가이드 (Deep Dive)
버전: 0.33.0
최종 업데이트: 2026-03-15
적용 대상: ranvier (facade), ranvier-http
카테고리: Deep Dives
Ranvier를 위한 Docker 멀티 스테이지 빌드, Kubernetes 매니페스트, 프로덕션 배포 패턴입니다.
#Docker 멀티 스테이지 빌드
| 스테이지 |
설명 |
| Builder |
의존성 캐싱을 위한 cargo-chef가 포함된 rust:1.93-bookworm |
| Runtime |
비루트 사용자와 HEALTHCHECK가 포함된 debian:bookworm-slim |
의존성 캐싱: Cargo.toml/Cargo.lock이 변경될 때만 재빌드합니다.
#Kubernetes 매니페스트
| 리소스 |
설명 |
| Deployment |
Prometheus 어노테이션이 포함된 준비 상태, 생존, 시작 프로브 |
| Service |
http (80→3000) 및 inspector (3001) 포트를 가진 ClusterIP |
| ConfigMap |
서버, 로깅, inspector, 텔레메트리 섹션이 포함된 ranvier.toml |
| 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 |
헬스 프로브와 Prometheus 어노테이션이 포함된 Kubernetes Deployment |
| service.yaml |
HTTP 및 Inspector 포트를 노출하는 ClusterIP Service |
| configmap.yaml |
프로덕션용 ranvier.toml이 포함된 ConfigMap |
| hpa.yaml |
CPU/메모리 대상을 가진 HorizontalPodAutoscaler |