Autoscaling — tizim resurslarini kuzatilgan talabga qarab avtomatik ko‘paytirish yoki kamaytirish jarayoni. U virtual mashina, container replica, database capacity yoki worker soniga qo‘llanishi mumkin. Maqsad yuk oshganda xizmat darajasini saqlash, kamayganda esa foydalanilmayotgan resurs xarajatini cheklashdir.
Masshtablash yo‘nalishlari
Horizontal autoscaling instance sonini o‘zgartiradi. Stateless HTTP server yoki queue worker bunga mos: qo‘shimcha nusxa ishni bo‘lib oladi. Vertical autoscaling instance CPU va memory request yoki o‘lchamini o‘zgartiradi. U qayta ishga tushirish talab qilishi va platforma maksimal hajmiga bog‘liq bo‘lishi mumkin.
Cluster autoscaler workload uchun node yetishmasa node pool’ni kengaytiradi. Workload autoscaler pod sonini oshirsa, lekin clusterda joy bo‘lmasa pod Pending qoladi; ikki boshqaruv sikli shu sabab bir-birini to‘ldiradi.
Signallar
CPU utilization eng tanish signal, ammo barcha yukni ifodalamaydi. Network I/O kutayotgan xizmat CPU past holatda ham saturationga yetishi mumkin. Queue worker uchun navbat yoshi, web server uchun faol request, stream processor uchun consumer lag ma’noliroq.
| Signal | Mos holat |
|---|---|
| CPU foizi | Hisoblashga bog‘liq vazifa |
| Request rate | Har so‘rov narxi barqaror API |
| Concurrency | Uzoq ulanish yoki parallel request |
| Queue age | Deadline’li asinxron ish |
| Jadval | Oldindan ma’lum peak davri |
Application latency foydalanuvchi ta’siriga yaqin, lekin dependency ishlamayotganda instance ko‘paytirish muammoni hal qilmaydi. Signal sabab bilan natijani farqlashi kerak.
Boshqaruv sikli
Autoscaler metricni o‘qiydi, maqsad bilan solishtiradi va desired capacity hisoblaydi. Keyin platforma yangi instance yaratadi, readiness’dan o‘tkazadi va trafikga qo‘shadi. Metric interval, startup va load-balancer propagation sabab qaror darhol natija bermaydi.
Scale-out odatda tezroq, scale-in ehtiyotkor bajariladi. Stabilization window qisqa metric pasayishida podlarni o‘chirib yubormaydi. Cooldown ketma-ket qarorlar orasida tizimga javob berish vaqti beradi. Noto‘g‘ri parametr threshold atrofida doimiy tebranishga olib keladi.
Minimum, maximum va headroom
Minimum capacity bazaviy trafik hamda cold start talabini qoplaydi. Maximum moliyaviy xavf va downstream limitni cheklaydi. Maximumga yetib, backlog yoki latency o‘sishda davom etsa alohida alert zarur.
N+1 yoki zone failure’dan keyin qolgan capacity yetarli bo‘lishi uchun normal holatda headroom saqlanadi. 90% doimiy utilization samarali ko‘rinsa ham bitta node yo‘qolganda overload paydo qilishi mumkin.
Stateful tizimlar
Stateless replica tez qo‘shiladi, lekin database shard yoki storage node data ko‘chirishni talab qiladi. Rebalance network va diskni band qilib, scale-out vaqtida ishlashni vaqtincha yomonlashtirishi mumkin. Read replica yozuv capacity’sini oshirmaydi.
Session lokal xotirada bo‘lsa yangi replica oldingi foydalanuvchi holatini bilmaydi. External session store yoki stateless token ishlatiladi. Long-running job scale-in’dan oldin drain qilinadi va lease boshqa workerga xavfsiz qaytariladi.
Overload va dependency
Cheksiz autoscaling database connection pool, uchinchi tomon API quota yoki broker partition sonidan o‘ta olmaydi. Har instance o‘nta connection ochsa yuzta yangi instance database’ni bosib ketadi. Concurrency limit, backpressure va connection proxy bilan birgalikda scaling qo‘llanadi.
Zararli trafik ham scale-out signalini oshirishi mumkin. WAF, rate limit va DDoS himoyasi autoscalingdan alohida qatlam; resurs qo‘shish hujumni to‘xtatmaydi.
Tekshirish va kuzatuv
Load test signal oshishi, desired capacity, real Ready capacity va latency’ni bir grafikda ko‘rsatadi. So‘ng yuk tushirilganda graceful scale-in tekshiriladi. Faqat replica soni o‘zgargani emas, foydalanuvchi SLOsi saqlangani mezon bo‘ladi.
Metric yo‘qolishi uchun fallback aniqlanadi. “Nol qiymat” bilan “ma’lumot kelmadi” bir xil emas; telemetry uzilganda barcha instance’ni o‘chirish xavfli.
Bog‘liq tushunchalar
Horizontal scaling, Vertical scaling, Cluster autoscaler, Capacity planning, Backpressure, Cold start, Load balancing