#배포 가이드 (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 반환 (프로세스가 살아있음)
시작 프로브 애플리케이션 워밍업을 위한 초기 지연

#워크플로우

  1. Dockerfile.example.dockerignore.example을 프로젝트 루트에 복사합니다.
  2. Docker 이미지를 빌드합니다: docker build -t my-ranvier-app .
  3. Kubernetes 네임스페이스를 생성하고 ranvier.toml이 포함된 ConfigMap을 적용합니다.
  4. 클러스터에 Deployment, Service, HPA 매니페스트를 적용합니다.
  5. Pod 어노테이션을 통해 Prometheus 스크래핑을 설정합니다.
  6. 분산 트레이싱을 위한 OTLP 엔드포인트를 설정합니다 (Jaeger, Tempo, Datadog).
  7. /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