smaple.tr
service mesh

Service Mesh ve Mikro Servis Iletisimi: Istio, Linkerd Rehberi [2026]

Mehmet Kurtipek
January 29, 2026
10 min read
service mesh
istio
linkerd
mikro servis
Kubernetes
mtls
zero trust
observability
sidecar proxy
traffic management

Service Mesh Nedir ve Neden Ihtiyac Duyulur?

Mikro servis mimarisine gecis yapan organizasyonlar, servisler arasi iletisimin karmasikligini yonetmek konusunda ciddi zorluklarla karsilasir. Servislerin sayisi arttikca, bunlar arasindaki ag trafigini kontrol etmek, guvenlik politikalarini uygulamak ve hata durumlarini yonetmek giderek zorlasir. Service mesh, tam olarak bu sorunu cozmek icin tasarlanmis bir altyapi katmanidir.

Service mesh, mikro servisler arasindaki iletisimi yoneten, uygulama kodundan bagimsiz calisan bir ag proxy katmanidir. Her servisin yanina yerlestirilen proxy'ler araciligiyla trafik yonetimi, guvenlik, gozlemlenebilirlik ve dayaniklilik gibi capraz kesim endiselerini merkezi olarak ele alir.

Service Mesh Olmadan Karsilasilan Sorunlar

Mikro servis sayisi belirli bir esigi astiginda, asagidaki sorunlar kacinilmaz hale gelir:

  • Servis kesfinin karmasikligi: Her servisin diger servislerin adreslerini bilmesi gerekir.
  • Retry ve timeout mantigi: Her servis icinde tekrar eden hata yonetim kodu yazilir.
  • Guvenlik yonetimi: Servisler arasi iletisimde sifreleme ve kimlik dogrulama dagitik hale gelir.
  • Trafik gozlemleme: Hangi servisin hangi servisle ne siklikta iletisim kurdugunu izlemek zorlasir.
  • Canary deployment: Trafigi kademeli olarak yeni surume yonlendirmek uygulama seviyesinde cozulmeye calisilir.

Service mesh, tum bu sorulari altyapi seviyesinde cevaplayarak gelistiricilerin is mantigi koduna odaklanmasini saglar.

Service Mesh Mimarisi: Data Plane ve Control Plane

Her service mesh iki temel bilesenden olusur:

Data Plane

Data plane, her servisin yaninda calisan proxy'lerden olusur. Bu proxy'ler gelen ve giden tum ag trafikini yakalar, politikalari uygular ve metrikleri toplar. Envoy, en yaygin kullanilan data plane proxy'sidir.

Control Plane

Control plane, proxy'lerin konfigurasyonunu yonetir, politikalari dagitir ve mesh genelindeki durumu koordine eder. Istio'daki istiod veya Linkerd'deki destination controller bu rolu ustlenir.

# Istio VirtualService ornegi - Trafik yonlendirme
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: siparis-servisi
spec:
  hosts:
  - siparis-service
  http:
  - route:
    - destination:
        host: siparis-service
        subset: v2
      weight: 20
    - destination:
        host: siparis-service
        subset: v1
      weight: 80

Bu ornek, trafigi %80 oraninda mevcut surume, %20 oraninda yeni surume yonlendirir. Uygulama kodunda hicbir degisiklik gerektirmeden canary deployment uygulanmis olur.

Istio vs Linkerd vs Cilium: Kapsamli Karsilastirma

Piyasadaki uc buyuk service mesh cozumunu farkli boyutlarda karsilastiralim:

Ozellik Istio Linkerd Cilium
Proxy Envoy (C++) linkerd2-proxy (Rust) eBPF (cekirdek seviyesi)
Kaynak tuketimi Yuksek Dusuk En dusuk
Ogrenme egrisi Dik Orta Orta-Dik
Trafik yonetimi Cok gelismis Temel-Orta Gelismis
mTLS Otomatik Otomatik Otomatik
Multi-cluster Evet Evet Evet
Ambient Mesh Evet (sidecarless) Hayir Dogal (eBPF)
CNCF Statusu Graduated Graduated Graduated
Topluluk buyuklugu En buyuk Orta Buyuyen

Istio: Kurumsal Standart

Istio, en zengin ozellik setine sahip service mesh cozumudur. Google, IBM ve Red Hat tarafindan desteklenir. Envoy proxy'sini data plane olarak kullanir ve trafik yonetimi konusunda en kapsamli konfigurasyonu sunar.

Istio'nun guclu yanlari:

  • Gelismis trafik yonetimi (fault injection, mirroring, retries)
  • Kapsamli guvenlik politikalari (RBAC, JWT dogrulama)
  • Genis ekosistem entegrasyonu (Kiali, Jaeger, Prometheus)
  • Ambient mesh ile sidecar'siz calisma destegi

Istio'nun zayif yanlari:

  • Yuksek kaynak tuketimi (her pod icin ~50-100 MB ek bellek)
  • Karmasik konfigrasyon yapisi
  • Ogrenme egrisi nispeten dik

Linkerd: Hafif ve Performansli

Linkerd, Buoyant tarafindan gelistirilen, sadelik ve performans odakli bir service mesh'tir. Rust ile yazilmis ozel proxy'si sayesinde dusuk kaynak tuketimi ve yuksek performans sunar.

Linkerd'in guclu yanlari:

  • Dusuk kaynak tuketimi (~10-20 MB bellek/proxy)
  • Kolay kurulum ve operasyon
  • Hizli baslangic (5 dakikada calisir hale gelir)
  • Guvenilir ve kararliyapi

Linkerd'in zayif yanlari:

  • Istio'ya kiyasla sinirli trafik yonetimi
  • Daha kucuk ekosistem

Cilium: eBPF Tabanli Yeni Nesil

Cilium, Linux cekirdegindeki eBPF teknolojisini kullanarak sidecar proxy'ye ihtiyac duymadan ag politikalarini uygular. Bu yaklasim, performans overhead'ini minimuma indirir.

Sidecar Proxy vs Sidecarless (Ambient Mesh)

Service mesh dunyasindaki en onemli mimari tartismalardan biri, sidecar proxy modeli ile sidecarless yaklasim arasindaki secimdir.

Geleneksel Sidecar Modeli

Sidecar modelinde, her pod'un icine bir proxy container'i enjekte edilir. Bu proxy, pod'a gelen ve giden tum trafigi yakalar.

# Istio sidecar injection ornegi
apiVersion: apps/v1
kind: Deployment
metadata:
  name: odeme-servisi
  labels:
    app: odeme-servisi
spec:
  template:
    metadata:
      labels:
        app: odeme-servisi
        sidecar.istio.io/inject: "true"
    spec:
      containers:
      - name: odeme-servisi
        image: odeme-servisi:v1.2
        ports:
        - containerPort: 8080
        resources:
          requests:
            memory: "128Mi"
            cpu: "100m"

Sidecar avantajlari: Her servis icin izole guvenlik politikasi, hassas trafik kontrolu, olgun ve kanitlanmis mimari.

Sidecar dezavantajlari: Ek kaynak tuketimi, pod baslatma suresinde artis, yuksek olcekte bellek maliyeti.

Ambient Mesh (Sidecarless)

Istio'nun ambient mesh modu, sidecar proxy'leri kaldirarak iki katmanli bir yaklasim benimser:

  • ztunnel: Her node uzerinde calisan hafif bir proxy. L4 seviyesinde mTLS ve trafik yonetimi saglar.
  • Waypoint proxy: Ihtiyac duyuldugunda L7 seviyesinde trafik yonetimi icin devreye girer.
Karsilastirma Sidecar Ambient Mesh
Bellek/pod ~50-100 MB ~0 (paylasilmis)
Pod baslatma suresi +2-5 saniye Ek yok
L7 trafik kontrolu Her pod icin Ihtiyaca gore
Izolasyon Pod seviyesi Namespace seviyesi
Olgunluk Uretim hazir Uretim hazir (2025+)

Smart Maple olarak Ankara merkezli projelerimizde, yeni Kubernetes kurulumlari icin ambient mesh yaklasimini degerlendirmeyi, mevcut sistemlerde ise sidecar modeliyle devam etmeyi onerilmektedir.

Traffic Management ve Dayaniklilik Paternleri

Service mesh'in en guclu ozelliklerinden biri, uygulama koduna dokunmadan gelismis trafik yonetimi uygulamaktir.

Load Balancing Stratejileri

Service mesh, Kubernetes'in varsayilan round-robin yuk dengeleme algoritmasinin otesine gecer:

# Istio DestinationRule - Gelismis yuk dengeleme
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: odeme-servisi
spec:
  host: odeme-servisi
  trafficPolicy:
    loadBalancer:
      simple: LEAST_REQUEST
    connectionPool:
      tcp:
        maxConnections: 100
      http:
        h2UpgradePolicy: UPGRADE
        http1MaxPendingRequests: 50
        http2MaxRequests: 200
    outlierDetection:
      consecutive5xxErrors: 3
      interval: 30s
      baseEjectionTime: 60s
      maxEjectionPercent: 50

Circuit Breaking

Circuit breaker, basarisiz bir servise surekli istek gonderilmesini onleyerek zincirleme hatalari engeller. Yukardaki ornekte outlierDetection blogu bu gorevi ustlenir: ard arda 3 kez 5xx hatasi veren bir endpoint, 60 saniye boyunca trafik havuzundan cikarilir.

Retry ve Timeout Politikalari

# Retry ve timeout konfigurasyonu
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: urun-katalog
spec:
  hosts:
  - urun-katalog
  http:
  - timeout: 5s
    retries:
      attempts: 3
      perTryTimeout: 2s
      retryOn: "5xx,reset,connect-failure,retriable-4xx"
    route:
    - destination:
        host: urun-katalog

Fault Injection

Test ortamlarinda servislerin hata durumlarina nasil tepki verdigini gormek icin fault injection kullanilir:

# Hata enjeksiyonu - test amacli
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: stok-servisi
spec:
  hosts:
  - stok-servisi
  http:
  - fault:
      delay:
        percentage:
          value: 10
        fixedDelay: 3s
      abort:
        percentage:
          value: 5
        httpStatus: 503
    route:
    - destination:
        host: stok-servisi

Bu konfigurasyonla isteklerin %10'una 3 saniyelik gecikme, %5'ine 503 hatasi eklenir. Boylece bagimliliklarin hata durumlarina karsi dayanimliligi test edilir.

mTLS ve Zero-Trust Networking

Mikro servis ortamlarinda guvenlik, yalnizca dis perimetrede degil, servisler arasi iletisimde de saglanmalidir. Service mesh, mutual TLS (mTLS) ile zero-trust ag modelini uygulamaya koyar.

mTLS Nasil Calisir?

mTLS'de her iki taraf da kimligini kanitlar:

  1. Istemci servis, sunucu servisin sertifikasini dogrular.
  2. Sunucu servis, istemci servisin sertifikasini dogrular.
  3. Iletisim sifrelenmis kanal uzerinden gerceklesir.
# Istio PeerAuthentication - Strict mTLS
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: varsayilan-mtls
  namespace: uretim
spec:
  mtls:
    mode: STRICT

---
# AuthorizationPolicy - Servis erisim kontrolu
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: odeme-erisim
  namespace: uretim
spec:
  selector:
    matchLabels:
      app: odeme-servisi
  rules:
  - from:
    - source:
        principals: ["cluster.local/ns/uretim/sa/siparis-servisi"]
    to:
    - operation:
        methods: ["POST"]
        paths: ["/api/v1/odeme/*"]

Bu yaklasimla yalnizca siparis-servisi servis hesabi, odeme-servisinin belirli endpoint'lerine POST istegi gonderebilir. Diger tum erisimler reddedilir.

Sertifika Yonetimi

Service mesh, sertifika yasam dongusunu otomatik olarak yonetir:

  • Otomatik sertifika uretimi ve dagitimi
  • Periyodik sertifika yenileme (varsayilan olarak 24 saat)
  • Sertifika iptal mekanizmalari
  • Harici CA entegrasyonu (Vault, cert-manager)

Observability: Dagitik Izleme ve Metrikler

Service mesh, uygulama koduna enstrumantasyon eklemeden zengin gozlemlenebilirlik verileri toplar.

Dagitik Izleme (Distributed Tracing)

Her istek mesh icinden gecerken, proxy'ler otomatik olarak span bilgilerini olusturur. Bu veriler Jaeger, Zipkin veya Tempo gibi araclara aktarilir.

Izleme verilerinin dogru calisabilmesi icin uygulamalarin trace header'larini iletmesi gerekir:

# Python Flask ornegi - Trace header propagation
TRACE_HEADERS = [
    'x-request-id',
    'x-b3-traceid',
    'x-b3-spanid',
    'x-b3-parentspanid',
    'x-b3-sampled',
    'x-b3-flags',
    'traceparent',
    'tracestate',
]

@app.before_request
def extract_trace_headers():
    g.trace_headers = {
        h: request.headers.get(h)
        for h in TRACE_HEADERS
        if request.headers.get(h)
    }

def call_downstream(url, payload):
    return requests.post(url, json=payload, headers=g.trace_headers)

Metrik Toplama

Service mesh proxy'leri her istek icin otomatik olarak RED metrikleri uretir:

  • Rate: Saniyedeki istek sayisi
  • Errors: Hata orani
  • Duration: Istek suresi dagilimi

Bu metrikler Prometheus ile toplanir ve Grafana uzerinde goruntulenir.

Ornek Prometheus Metrikleri

Metrik Aciklama Kullanim
istio_requests_total Toplam istek sayisi Trafik hacmi
istio_request_duration_milliseconds Istek suresi histogram Performans izleme
istio_tcp_connections_opened_total Acilan TCP baglanti sayisi Baglanti izleme
istio_request_bytes Istek boyutu Bant genisligi analizi

Service Mesh Deployment Paternleri

Kademeli Benimseme

Service mesh'i tum cluster'a bir anda uygulamak yerine kademeli bir yaklasim izlenmeli:

  1. Gozlem asamasi: Oncelikle yalnizca metrik toplama ve izleme icin mesh'i devreye alin. Trafik politikasi uygulamayin.
  2. Permissive mTLS: mTLS'i permissive modda baslatarak hem sifrelenmis hem de sifrelenmmis trafige izin verin.
  3. Strict mTLS: Tum servisler mesh icine alindiktan sonra strict moda gecin.
  4. Trafik politikalari: Canary deployment, circuit breaking gibi gelismis ozellikleri kademeli olarak etkinlestirin.

Multi-Cluster Service Mesh

Birden fazla Kubernetes cluster'i arasinda service mesh kurulumu icin iki temel yaklasim vardir:

  • Flat network: Cluster'lar arasi dogrudan pod iletisimi. Daha dusuk gecikme, ancak ag karmasikligi artar.
  • Gateway-based: Her cluster'daki gateway uzerinden iletisim. Daha guvenli ve yonetilebilir, ancak ek gecikme ekler.

Performans Etkisi ve Optimizasyon

Service mesh, her istege ek gecikme ekler. Bu etkiyi olcmek ve minimize etmek kritik oneme sahiptir.

Tipik Performans Etkisi

Senaryo Ek Gecikme (p50) Ek Gecikme (p99)
Istio sidecar ~1-3 ms ~5-10 ms
Linkerd sidecar ~0.5-1 ms ~2-5 ms
Cilium eBPF ~0.1-0.5 ms ~1-2 ms
Istio ambient (L4) ~0.5-1 ms ~2-4 ms

Optimizasyon Onerileri

Kaynak ayirma: Proxy container'larina uygun CPU ve bellek limitleri belirleyin. Varsayilan degerler genellikle gerekenin uzerindedir.

# Sidecar kaynak optimizasyonu
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    defaultConfig:
      concurrency: 2
  values:
    global:
      proxy:
        resources:
          requests:
            cpu: 50m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi

Telemetri ayarlama: Uretim ortaminda trace ornekleme oranini dusurun. Tum istekleri izlemek gereksiz yuk olusturur; %1-5 ornekleme orani cogu senaryo icin yeterlidir.

Protokol secimi: HTTP/2 ve gRPC kullanarak baglanti coklama avantajindan faydalanin. Bu, ozellikle yuksek trafikli servislerde belirgin performans kazanimi saglar.

Ne Zaman Service Mesh Kullanilmali?

Service mesh her ortam icin uygun degildir. Asagidaki durumlarda benimsemek anlamlidir:

  • 10'dan fazla mikro servisiniz varsa
  • Servisler arasi guvenlik ve sifreleme gerekliyse
  • Canary deployment veya A/B testi yapmaniz gerekiyorsa
  • Dagitik izleme ve detayli metrik toplama oncelikliyse
  • Multi-cluster veya multi-cloud ortaminda calisiyorsaniz

Smart Maple olarak Ankara merkezli projelerimizde, mikro servis sayisi artan ve guvenlik gereksinimi yuksek olan musteri altyapilarinda service mesh cozumlerini basariyla uygulamaktayiz. Ozellikle finansal islemler ve saglik sektoru gibi siki regulasyona tabi alanlarda mTLS ve zero-trust ag modeli vazgecilmez bir gereksinim haline gelmistir.

Sonuc

Service mesh, mikro servis mimarisinin olgunlasma surecinde kritik bir altyapi bilesenidir. Istio gelismis ozellik seti ile kurumsal projelerde one cikarken, Linkerd hafiflik ve basitlikle dikkat cekmekte, Cilium ise eBPF tabanli yaklasimi ile performans odakli senaryolarda tercih edilmektedir.

Ambient mesh'in olgunlasmasi ile sidecar proxy'lerin getirdigi kaynak yuku ortadan kalkma yolundadir. 2026 itibariyle yeni projelerde ambient mesh yaklasimini degerlendirmek, mevcut sidecar tabanli kurulumlarda ise kademeli gecis planlamak mantikli bir strateji olacaktir.

Basarili bir service mesh benimsemesi icin onemli olan, teknolojiyi bir anda degil kademeli olarak devreye almak, ekipleri yetkilendirmek ve gozlemlenebilirlik altyapisini mesh ile birlikte kurmaktir.

Related Articles

August 10, 2026

MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma

Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı

Read More
August 9, 2026

LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]

LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek

Read More
August 8, 2026

Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI

Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri

Read More