Function as a Service (FaaS) — dasturchi alohida funksiyalarni joylashtiradigan, provayder esa serverlarni ajratish, ishga tushirish va yuk bo‘yicha ko‘paytirishni boshqaradigan cloud execution modeli. Funksiya HTTP so‘rovi, queue xabari, fayl yuklanishi yoki jadval hodisasi bilan chaqiriladi. “Serverless” nomi server yo‘qligini emas, server lifecycle’i iste’molchidan yashirilishini anglatadi.
Bajarilish modeli
Deployment paketi funksiya kodi, dependency va konfiguratsiyadan iborat. Hodisa kelganda platforma mos runtime muhitini tanlaydi, handler’ga event va execution context beradi, natijani qaytaradi yoki keyingi xizmatga uzatadi. Bir instance bir yoki bir nechta chaqiruvni qayta ishlashi platformaga bog‘liq.
Funksiya instance’i doimiy server deb qaralmaydi. Uning lokal xotirasi keyingi chaqiruvda saqlanishi mumkin, ammo bunga kafolat yo‘q. Doimiy ma’lumot object storage, database yoki boshqa tashqi xizmatda saqlanadi. Global o‘zgaruvchidagi cache optimizatsiya bo‘lishi mumkin, correctness talabi emas.
Hodisa va yetkazib berish
Sinxron chaqiruvda mijoz javobni kutadi. Asinxron chaqiruvda platforma hodisani navbatga qo‘yadi va retry qilishi mumkin. Queue trigger odatda at-least-once yetkazishni anglatadi, shuning uchun bir hodisa takror bajarilishi ehtimoli bor.
Handler idempotent bo‘lishi yoki event identifikatorini saqlab deduplication qilishi kerak. “To‘lov yarat” amali retry’da ikkinchi to‘lovni hosil qilmasligi zarur. Dead-letter queue qayta-qayta xato bergan hodisani alohida tekshiruvga chiqaradi.
Masshtablash va concurrency
Platforma parallel hodisalar uchun instance’larni ko‘paytiradi. Bu tez o‘sish downstream database connection limiti yoki uchinchi tomon API kvotasini bosib ketishi mumkin. Reserved concurrency, queue backpressure va rate limit dependency’ni himoya qiladi.
| Xususiyat | Amaliy ta’sir |
|---|---|
| Avtomatik scale-out | Burst trafikni instance’larga bo‘ladi |
| Execution timeout | Uzoq vazifani cheklaydi |
| Memory/CPU konfiguratsiyasi | Tezlik va narxga ta’sir qiladi |
| Concurrency limiti | Parallel bajarilishni boshqaradi |
| Retry siyosati | Vaqtinchalik xatoni qayta ishlaydi |
FaaS uzoq davom etadigan, doimiy socket yoki maxsus hardware talab qiladigan ishga har doim mos emas. Workflow bir nechta qisqa funksiyaga bo‘linsa orchestration xizmati holat va retry’ni boshqaradi.
Cold start
Tayyor instance bo‘lmasa platforma runtime va kodni yuklaydi; bu cold start latency’sini qo‘shadi. Paket hajmi, runtime, virtual network ulanishi va initialization kodi unga ta’sir qiladi. Provisioned concurrency yoki minimal instance soni kechikishni kamaytiradi, lekin idle xarajat keltiradi.
Initialization’da database client yaratish foydali, ammo har chaqiruv uchun cheksiz yangi connection ochish xavfli. Connection reuse va platformaning freeze/thaw xususiyatlari provayder hujjatiga muvofiq boshqariladi.
Xavfsizlik va konfiguratsiya
Har funksiya faqat zarur resurslarga kiradigan identity bilan ishlaydi. Barcha funksiyaga umumiy administrator roli berish buzilgan handler ta’sirini kengaytiradi. Secret kod yoki deployment archive ichida saqlanmaydi; secret manager’dan runtime’da olinadi va logga chiqarilmaydi.
Event payload ishonchsiz kirish sifatida validatsiya qilinadi. Object-storage hodisasidagi fayl nomi, HTTP header yoki queue xabari command injection va parser zaifligiga olib kelmasligi kerak. Dependency image scanning va imzolangan artefakt supply-chain nazoratini kuchaytiradi.
Kuzatuv va narxlash
Tarif odatda chaqiruv soni va bajarilish davomiyligi, ajratilgan xotira yoki CPU asosida hisoblanadi. Juda ko‘p mayda chaqiruv, network egress va managed dependency xarajati umumiy narxga kiradi. O‘rtacha arzonlik har workload uchun kafolat emas.
Distributed tracing event manbasi, funksiya va downstream xizmatlar orasidagi correlation ID’ni saqlaydi. Loglar bir instance’ga emas, invocation identifikatoriga bog‘lanadi. Error rate, duration percentile, throttling, retry va queue age operatsion holatni ko‘rsatadi.
Bog‘liq tushunchalar
Serverless computing, Event-driven architecture, Cold start, Auto scaling, Managed service, Idempotency, Cloud function