← Bütün Patternlər
🏍️

Sidecar Pattern

Əsas servisin yanına əlavə köməkçi konteyner yerləşdirmək (logging, monitoring, proxy) — motosikletin yanındakı sidecar kimi.

🎯
Nə üçün lazımdır?

Logging, monitoring, TLS kimi cross-cutting funksiyaları servisin koduna yazmaq əvəzinə ayrıca konteynerə çıxarır.

🐳
Kubernetes-də

Eyni Pod-un daxilində 2 konteyner: əsas app + sidecar. Bir-birinə localhost vasitəsilə çatır, lifecycle birdir.

🛠️
Misal istifadələr

Envoy Proxy, Fluentd (log toplama), Vault Agent (secret injection), Jaeger Agent (tracing).

İNTERAKTİV

Vizual İzah

Mərhələ {{ currentStep + 1 }}: {{ steps[currentStep].title }}

⚙️
Əsas App (Spring Boot)
<localhost>
🛡️
Sidecar (Envoy)
☸️ Kubernetes Pod
JAVA

Kod Nümunəsi — K8s YAML

deployment.yaml
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
        # Əsas tətbiq
        - name: user-service
          image: user-service:latest
          ports:
            - containerPort: 8080

        # Sidecar — log toplama
        - name: fluentd-sidecar
          image: fluentd:latest
          volumeMounts:
            - name: shared-logs
              mountPath: /var/log/app

      volumes:
        - name: shared-logs
          emptyDir: {}  # Pod-un iki konteyneri arasında paylaşılır
✅ Üstünlükləri
  • Cross-cutting concerns kodu əsas appdan ayrılır
  • Dil müstəqildir — Java app + Go sidecar ola bilər
  • Sidecar müstəqil update edilə bilər
⚠️ Riskləri
  • Əlavə resurs istehlakı (CPU/RAM)
  • Latency artıra bilər (localhost olsa da)
  • Debugging mürəkkəbləşir