Microservices'in temel avantajı, her hizmeti bağımsız olarak ölçeklendirmek ve kendi yüküne uygun hale getirmektir; tüm uygulamayı ölçeklendirmek yerine. Darboğazları bulmak, hizmet başına ve hop başına ölçüm meselesidir.
Microservices'in temel avantajı, her hizmeti bağımsız olarak ölçeklendirmek ve kendi yüküne uygun hale getirmektir; tüm uygulamayı ölçeklendirmek yerine. Darboğazları bulmak, hizmet başına ve hop başına ölçüm meselesidir.
# Kubernetes HPA: scale orders on CPU
minReplicas: 3
maxReplicas: 20
metric: cpu
targetUtilization: 70 # add pods when avg CPU > 70%
1. Metrics: which service has high latency / saturation? (RED/USE)
2. Traces: which SPAN in the request is slow?
3. Drill in: DB query? lock? N+1 calls? GC pause?
Gateway ──┤ Orders ──┤ Payments ████████████ ← 80% of latency here
Inventory ─┤
⚠️ Chatty synchronous calls (fan-out per request)
⚠️ Shared/overloaded database
⚠️ Missing or cold cache
⚠️ Unbounded retries amplifying load
Darboğazı paylaşılan bir veritabanı olan bir hizmeti ölçeklendirmek, yalnızca daha fazla yükü DB'ye taşır — gerçek kısıtlamayı ölçeklendirin, semptomları değil.
Bağımsız ölçeklendirme, kapasiteyi yükün olduğu yere tam olarak harcamanıza olanak tanır; bu, bir monoliti toptan ölçeklendirmekten çok daha ucuzdur.
Ancak kör ölçeklendirme parasal boşa harcar ve işleri kötüleştirebilir; hizmet başına metrikler ve hop başına izlemeler, düzeltilecek gerçek kısıtlamayı size söyler.