Το κύριο πλεονέκτημα των μικρουπηρεσιών είναι η ανεξάρτητη κλιμάκωση κάθε υπηρεσίας ώστε να ταιριάζει με το δικό της φορτίο, αντί να κλιμακώνουμε ολόκληρη την εφαρμογή. Η εύρεση σημείων πνιγμού είναι τότε θέμα μέτρησης ανά υπηρεσία και ανά hop.
Το κύριο πλεονέκτημα των μικρουπηρεσιών είναι η ανεξάρτητη κλιμάκωση κάθε υπηρεσίας ώστε να ταιριάζει με το δικό της φορτίο, αντί να κλιμακώνουμε ολόκληρη την εφαρμογή. Η εύρεση σημείων πνιγμού είναι τότε θέμα μέτρησης ανά υπηρεσία και ανά hop.
# 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
Η κλιμάκωση μιας υπηρεσίας της οποίας το σημείο πνιγμού είναι μια κοινή βάση δεδομένων απλώς μεταφέρει περισσότερο φορτίο στη BD — κλιμακώστε τον πραγματικό περιορισμό, όχι το σύμπτωμα.
Η ανεξάρτητη κλιμάκωση σας επιτρέπει να δαπανάτε χωρητικότητα ακριβώς όπου υπάρχει το φορτίο, το οποίο είναι πολύ φθηνότερο από την κλιμάκωση ενός monolith χονδρικά.
Αλλά η τυφλή κλιμάκωση σπαταλά χρήματα και μπορεί να επιδεινώσει τα πράγματα· η μέτρηση των μετρικών ανά υπηρεσία και των ιχνών ανά hop είναι αυτό που σας λέει τον πραγματικό περιορισμό που πρέπει να διορθώσετε.