# Sidecar Deseni

Adres: https://softwaredictionary.org/tr/terimler/sidecar-pattern
Kategori: Yazılım Mimarisi
Son güncelleme: 2026-10-05
İngilizcesi: Sidecar Pattern
Okunuşu: saydkar

Kısaca: Sidecar deseni, bir uygulamanın yanında yaşam döngüsünü ve ağını paylaşan yardımcı bir süreç çalıştırarak loglama, proxy ya da güvenlik gibi özellikler ekler.

## Sidecar deseni (sidecar pattern) nedir?

Sidecar, ana uygulamanın yanına dağıtılan ayrı bir süreç ya da konteynerdir; bir motosikletin yanına takılan sepet gibi: uygulama nereye giderse o da gider, onunla birlikte başlar ve durur, ağını ve depolamasını paylaşır. Uygulama kendi işini yapar, sidecar ise log göndermek, sertifikaları yenilemek, metrik toplamak ya da trafiğe proxy'lik etmek gibi destekleyici bir işi üstlenir.

Kazanç ayrıştırmadır. Destekleyici bir özellik kendi kodunda, kendi dilinde ve kendi sürümleriyle yaşar; aynı sidecar Java, Go ya da Python ile yazılmış uygulamalara onları değiştirmeden hizmet verebilir. Service mesh'ler bu fikir üzerine kuruludur: her servis, Envoy gibi, her çağrı için şifrelemeyi, yeniden denemeleri ve yönlendirmeyi üstlenen bir proxy sidecar alır; böylece uygulama kodunun bunlarla uğraşması gerekmez.

Kubernetes'te sidecar aynı pod içindeki başka bir konteynerdir; bu yüzden pod'un ağını paylaşır ve volume'lerini de paylaşabilir. Kubernetes yerleşik sidecar konteynerlerini 1.28 sürümünde ekledi ve 1.33'te kararlı hâle getirdi: `restartPolicy: Always` olan bir init konteyneri uygulamadan önce başlar ve onun yanında çalışmayı sürdürür. Bedeli kaynak ve karmaşıklıktır, çünkü her örnek fazladan bir süreç taşır; bu yüzden bazı service mesh'ler artık bunun yerine her node için tek bir ortak proxy de sunuyor.

## Önemli noktalar

- Sidecar, bir uygulamanın yanına dağıtılan ve onun yaşam döngüsünü paylaşan yardımcı bir süreçtir.
- Uygulamayı değiştirmeden loglama ya da proxy gibi destekleyici özellikler ekler.
- Kubernetes'te sidecar aynı pod içindeki başka bir konteynerdir.
- Service mesh'ler her servisin yanına bir proxy sidecar koyar.

## Örnek: Bir Kubernetes pod'unda log gönderen sidecar

```yaml
apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  initContainers:
    - name: log-shipper         # the sidecar: starts first, then runs alongside
      image: example/log-shipper:1.0
      restartPolicy: Always
      volumeMounts:
        - { name: logs, mountPath: /var/log/app }
  containers:
    - name: app                 # the application writes logs, the sidecar ships them
      image: example/web:1.4
      volumeMounts:
        - { name: logs, mountPath: /var/log/app }
  volumes:
    - name: logs
      emptyDir: {}
```

## Sık sorulan sorular

**Sidecar ile kütüphane arasındaki fark nedir?**

Kütüphane uygulamanın süreci içinde çalışır ve uygulamanın diline uygun bir sürümünün olması gerekir. Sidecar ise ayrı bir süreç olarak çalışır; bu yüzden her dille çalışır ve kendi başına güncellenebilir, bedeli de fazladan bir süreç ve ağda fazladan bir adımdır.

**Sidecar'lar istekleri yavaşlatır mı?**

Bir proxy sidecar aynı makinede kısa bir adım ekler, genellikle milisaniyenin bir kesri kadar, ve her örnekte biraz bellek ve CPU kullanır. Çoğu servis için üstlendiği işler düşünüldüğünde makul bir bedeldir, ama binlerce örnekte toplam maliyet birikir.

## Kaynaklar

- [Azure Architecture Center: Sidecar pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar)
- [Kubernetes documentation: Sidecar Containers](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
