માઇક્રોસર્વિસીસનો મુખ્ય લાભ એ છે કે દરેક સેવાને સ્વતંત્ર રીતે સ્કેલ કર્યા તેના પોતાના લોડને મેચ કરવા માટે, સમગ્ર એપ્લિકેશનને સ્કેલ કરવાની જગ્યાએ. બોટલનેક્સ શોધવું તે દરેક સેવા અને દરેક હોપ માપવાનું મામલું છે.
સ્કેલિંગ તકનીકો
- આડી સ્કેલિંગ — લોડ બેલેન્સર પાછળ સ્ટેટલેસ ઇન્સ્ટન્સ ઉમેરો.
- ઓટોસ્કેલિંગ — CPU, મેમરી, કતાર ગહનતા અથવા કસ્ટમ મેટ્રિક્સ પર સ્કેલ કરો.
- કેશિંગ — પુનરાવર્તિત કાર્ય અને ડાઉનસ્ટ્રીમ લોડ ઘટાડો.
- Async + queues — સ્પાઇક્સ શોષવા; ધીમેથી કાર્યને અલગ કરો.
- ડેટા સ્કેલિંગ — પ્રતિકૃતિ વાંચો, શાર્ડિંગ, દરેક-સેવા સ્ટોર્સ.
yaml
# Kubernetes HPA: scale orders on CPU
minReplicas: 3
maxReplicas: 20
metric: cpu
targetUtilization: 70 # add pods when avg CPU > 70%
બોટલનેક્સ શોધવું
text
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?
text
Gateway ──┤ Orders ──┤ Payments ████████████ ← 80% of latency here
Inventory ─┤
સામાન્ય બોટલનેક્સ
text
⚠️ Chatty synchronous calls (fan-out per request)
⚠️ Shared/overloaded database
⚠️ Missing or cold cache
⚠️ Unbounded retries amplifying load
ગણતરી
સેવાને સ્કેલ કરવું જેનો બોટલનેક શેર કરેલો ડેટાબેસ હોય તે ફક્ત વધુ લોડને DB પર ખસેડે છે — વાસ્તવિક મર્યાદાને સ્કેલ કરો, લક્ષણ નહીં.
તેનું મહત્વ શું છે
સ્વતંત્ર સ્કેલિંગ તમને ક્ષમતા ચોક્કસ પ્રમાણે જ્યાં લોડ છે ત્યાં ખર્ચ કરવા દે છે, જે મોનોલિથને સમગ્ર રીતે સ્કેલ કરવા કરતાં વધુ સ્થુળ છે.
પરંતુ અંધ સ્કેલિંગ નાણાંનો બગાડ કરે છે અને વસ્તુઓને વધુ ખરાબ કરી શકે છે; દરેક સેવા મેટ્રિક્સ અને દરેક-હોપ ટ્રેસ માપવું તે છે જે તમને સુધારવાની વાસ્તવિક મર્યાદા કહે છે.
