GlossaryArchitecture

Sidecar Pattern

주 애플리케이션과 함께 배포되어 보조 기능을 제공하는 컨테이너 패턴

What is Sidecar Pattern?

Sidecar Pattern은 주 애플리케이션 컨테이너 옆에 보조 컨테이너를 배치하여 로깅, 모니터링, 프록시 등의 기능을 제공하는 패턴입니다.

오토바이의 사이드카처럼 주 컨테이너와 생명주기를 함께하며, 애플리케이션 코드 변경 없이 기능을 추가할 수 있습니다.

┌─────────────────────────────────────┐
│              Pod                    │
│  ┌─────────────┐  ┌─────────────┐  │
│  │    Main     │  │   Sidecar   │  │
│  │ Application │◄─┤   (Envoy)   │  │
│  │  Container  │  │  Container  │  │
│  └─────────────┘  └─────────────┘  │
│         localhost 통신              │
└─────────────────────────────────────┘

Common Use Cases

Service Mesh Proxy

Envoy, Linkerd 프록시가 트래픽 관리, mTLS, 로드 밸런싱을 처리합니다.

Log Collection

Fluentd, Filebeat가 로그를 수집하여 중앙 로깅 시스템으로 전송합니다.

Monitoring Agent

Prometheus exporter, Datadog agent가 메트릭을 수집합니다.

Configuration

설정 변경을 감지하고 주 컨테이너에 반영합니다.

Benefits

  • Separation of Concerns: 비즈니스 로직과 인프라 관심사 분리
  • Language Agnostic: 어떤 언어로 작성된 앱에도 적용 가능
  • Independent Updates: 사이드카만 독립적으로 업데이트
  • Shared Lifecycle: 주 컨테이너와 함께 시작/종료