Kubernetes çoğu zaman “mikroservis platformu” diye düşünülür. Doğru; ama eksik. Kubernetes size bir orchestration düzlemi verir; mikroservisi başarılı yapan şey ise servis sınırları, trafik yönetimi, gözlemlenebilirlik ve operasyon disiplinidir.
Bu yazıda Kubernetes üzerinde mikroservis mimarisi kurarken, sahada en çok sorun çıkaran karar noktalarını ele alacağım: “servis nerede biter?”, “SLO nasıl tanımlanır?”, “platform ekibi neyi standardize etmelidir?” gibi.
1) Servis sınırı: deployment unit değil domain boundary
En yaygın hata: Mikroservisi “ayrı deploy edilebilir parça” diye tanımlayıp sınırı teknik katmana göre çizmek.
Pratik tanım:
- Mikroservis, tek bir iş yeteneğini sahiplenir
- Kendi verisini yönetir (en azından ownership net)
- Kendi SLO’suna göre işletilir
2) Minimum platform bileşenleri: standardize etmezseniz dağınıklık büyür
Sıfırdan kurulumda “minimum platform” seti:
- Ingress/Gateway (L7 giriş)
- Config/Secret yönetimi
- Observability (log/metric/trace)
- CI/CD + artifact registry
- Policy/guardrail (PSA + OPA/Kyverno)
Platform ekibi bunları şablonlaştırırsa, servis ekipleri “işe” odaklanır.
3) Trafik yönetimi: timeout ve retry her servisin kaderini belirler
Distributed trafikte en sık kök neden: yanlış timeout/retry.
Minimum güvenli varsayılanlar:
- Her çağrıda timeout
- Retry budget + backoff
- Outlier detection / circuit breaker (en azından edge’de)
- Rate limit (public ve kritik iç servisler)
Mesh vs mesh‑siz tartışmasında kritik olan, bu politikaların tutarlılığıdır.
4) SLO ve error budget: mikroservisi gerçek yapan ölçüm
“Çalışıyor” demek, “SLO içinde” demektir:
- Availability
- Latency (p95/p99)
- Error rate
Error budget yakılıyorsa deploy yavaşlatılır; budget sağlamsa hızlanılır. Bu ritim yoksa mikroservis, “çok parça çok problem”e dönüşür.
5) Kubernetes primitives: guardrail’leri zorunlu kıl
Benim minimum şablon maddelerim:
- Resource requests/limits
- Liveness/readiness probe
- PDB (kritik servislerde)
- HPA (doğru metrikle)
runAsNonRoot,readOnlyRootFilesystem, capabilities drop- Multi‑AZ yayılımı
Sonuç
Kubernetes mikroservisi mümkün kılar; ama başarı platform tasarımıyla gelir. Servis sınırını domain’e göre çizip trafik/SLO/guardrail standardını oturttuğunuzda mikroservis gerçekten ölçeklenir.