Serverless дегеніміз не? Serverless есептеу қарапайым түсіндірмесі
Serverless — кодты іске қосудың тәсілі, мұнда серверлерді өзіңіз орнатпайсыз да, басқармайсыз да. Кодыңызды бұлттық провайдерге бересіз, ал ол кодты тек бір нәрсе оны іске қосқанда — веб-сұраныс, жүктелген файл, төлем хабарламасы — іске қосады, содан кейін тоқтайды. Әдетте бос тұрған машинаға емес, кодыңыздың шынымен орындалған уақыты үшін ақы төлейсіз.
AI-мен құрғанда serverless неге маңызды
AI арқылы қолданба құрып, хостинг нұсқаларын немесе кодты қарасаңыз, «serverless функциялар», «edge функциялар» немесе «бұлттық функциялар» деген терминдермен кездесесіз. Көптеген хостинг платформалары оларды ұсынады, ал кейбір AI құрастырғыштар backend-ті осылай орналастырады. Бұл үлгіні түсіну үш практикалық сұраққа көмектеседі:
- Шығын. Ешкім пайдаланбаған кезде қолданбаңыз ақша тұра ма?
- Жылдамдық. Неге тыныш кезеңнен кейінгі бірінші сұраныс баяуырақ?
- Шектеулер. Неге ұзақ тапсырма — үлкен есеп жасау, бейнені өңдеу — уақыт асып кетті?
SERVERLESS еместігін білу де пайдалы: backend болмауы емес. Сізде әлі де сервер жағындағы код бар; машиналарды басқа біреу басқарады. Негіздер үшін сервер дегеніміз не бетін қараңыз.
Күнделікті салыстыру
Дәстүрлі сервер — көлік иелену сияқты. Ол әрдайым бар, бірден жүруге дайын, бірақ оны мінесіз бе, жоқ па, сақтандыру, тұрақ, жөндеу үшін ақы төлейсіз.
Serverless — такси шақыру сияқты. Тек сапарларыңызға ақы төлейсіз, ал жүз адам бір уақытта көлікке мұқтаж болса, жүз такси келеді. Бірақ көліктің келуі үшін қысқа күту болуы мүмкін (суық старт), әр сапардың ең ұзақ ұзындығы бар, ал жүргізуші соңғы сапардан сізді есте сақтамайды (функциялар stateless).
Serverless функциялары қалай жұмыс істейді
Ең кең таралған түрінде, functions as a service деп аталатын:
- Функцияны жазасыз — бір оқиғаның түрін өңдейтін шағын код, мысалы «
/api/bookings-ке POST сұранысын өңде». - Оны орналастырасыз. Провайдер оны сақтап, триггерге байланыстырады: URL, кесте, сақтауға жаңа файл, кезектегі хабарлама.
- Оқиға келеді. Провайдер функцияңыздың данасын бастайды (немесе жылы данаға қайта пайдаланады), оны орындайды және нәтижені қайтарады.
- Ол өздігінен масштабталады. Бір мезгілде мың сұраныс келсе, провайдер көп даналарды параллель іске қосады, сіздің есептік жазбаңыздың шектеулеріне дейін.
- Ол бос тұрады. Трафик тоқтаған кезде даналар өшіріледі. Ешнәрсе іске қосылмаған кезде есептеу үшін ештеңе төлемейсіз.
JavaScript-те шағын serverless функциясы мынадай болуы мүмкін:
export default async function handler(request) {
const { name } = await request.json();
return Response.json({ message: `Hello, ${name}` });
}
Серверді іске қосатын, портты ашатын немесе процесті жұмыс істеп тұрғызатын код жоқ. Платформа мұның бәрін өзі басқарады.
«Serverless» сөзі басқа да басқарылатын қызметтер үшін кеңірек қолданылады, олар өздігінен масштабталады және пайдалануға қарай төлем алады — мысалы, бос тұрғанда кідіретін serverless дерекқорлар.
Негізгі терминдер
| Термин | Мағынасы |
|---|---|
| Функция (FaaS) | Провайдер талап бойынша іске қосатын шағын код бірлігі. |
| Триггер / оқиға | Функцияны не іске қосады — HTTP сұранысы, файл жүктеу, таймер, кезек хабары. |
| Суық старт | Сұранысты өңдемес бұрын функцияның жаңа данасын бастау кезіндегі кідіріс. |
| Жылы | Бұрыннан жұмыс істеп тұрған және бірден жауап бере алатын дана. |
| Stateless | Функция іске қосулар арасында жадты сақтамайды. Сақталуы керек нәрсе дерекқорға немесе қоймаға салынады. |
| Timeout | Бір іске қосуға рұқсат етілген ең ұзақ уақыт. Мысалы, AWS Lambda-ның ең көп мәні — 15 минут; көп платформаның әдепкісі одан әлдеқайда аз. |
| Edge функция | Пайдаланушыларға жақын көптеген орында іске қосылатын функция, жиі қатаңырақ шектеулермен. |
| Scale to zero | Трафик болмағанда ештеңе іске қоспау және есептеу үшін ештеңе төлемеу. |
Жұмыс мысалы: шағын брондау сайты
Йога студиясының брондау сайтына жаңа кесте жарияланғанда әр жексенбі кеш бірден көп кіреді, ал апта басқа күндері өте аз.
- Әрқашан қосулы серверде студия машинаға 24/7 ақы төлейді, жексенбі кешінің шыңына сай өлшенген, басқа уақытта көбіне бос тұрады.
- Serverless функцияларымен
GET /api/classesжәнеPOST /api/bookingsфункциялар болады. Жексенбідегі асығыс уақытта көп дана автоматты түрде іске қосылады; сейсенбі таңертеңгі тыныш уақытта ештеңе дерлік жұмыс істемейді және шот нөлге жақын болады.
Айырбастар да байқалады. Сейсенбі таңертеңгі сайтты ашқан бірінші адам суық старт үшін қосымша сәт күтуі мүмкін. Дерекқор көп функция данасынан келетін көп қысқа байланысты өңдеуі керек, бұл байланыс пулері қажет етуі мүмкін. Ал студия кейін «барлық адамның жылдық қатысу PDF-ін жасау» тапсырмасын қосқысы келсе, ол функцияның уақыт шегінен асып, басқа жерде іске қосылуы керек болуы мүмкін.
Serverless қай жерде жарасады — және қай жерде жарамайды
| Жақсы сәйкес келеді | Аз сәйкес келеді |
|---|---|
| Трафигі аз, шұғыл өсетін немесе болжауға келмейтін | Үнемі ауыр трафик, мұнда әрқашан қосулы сервер арзанырақ болуы мүмкін |
| Қысқа сұраныс/жауап тапсырмалары: API, форма өңдегіштер, webhook-тар | Ұзақ жұмыстар: үлкен бейнені өңдеу, үлкен деректерді импорттау |
| Серверлерді басқаргысы келмейтін шағын командалар | Тірі байланыстарды ашық ұстайтын қолданбалар (кейбір чат немесе көп ойыншылық мүмкіндіктер), платформа қолдамаса |
| Оқиғаларды өңдеу: «файл жүктелгенде, кішкентай сурет жаса» | Сұраныстар арасында көп жадты ұстауы керек қолданбалар |
Жиі кездесетін түсініспеушіліктер
- «Serverless деген — backend жоқ». Ол басқаратын серверлер жоқ дегенді білдіреді. Backend кодын әлі жазасыз және қорғайсыз.
- «Serverless әрқашан арзан». Аз көлемде арзан, бірақ тұрақты жоғары көлемде сұраныс үшін төлем жиналып кетуі мүмкін.
- «Serverless шексіз масштабталады». Платформаларда параллельдік шектеулер бар, ал дерекқорыңыз функциялардан әлдеқайда бұрын тар жерге айналуы мүмкін.
- «Функцияда сақталған файлдар келесі жолы болады». Жергілікті сақтау уақытша. Дерекқорды немесе файл қоймасын пайдаланыңыз.
- «Scale-to-zero — serverless-пен бірдей». Байланысты, бірақ бірдей емес. Кейбір платформалар қолданбаны әдеттегі сервер ретінде іске қосады, ол бос тұрғанда ұйықтап, келесі сұраныста оянады — ұқсас үнемдеу және бірінші сұраныстағы ұқсас кідіріс, бірақ сұраныс сайын функция стиліндегі уақыт шектеусіз.
AI құрастырғыштан не сұрау керек
- «Бұл backend serverless функциялар ретінде жұмыс істей ме, әлде әрқашан қосулы немесе ұйықтайтын сервер ретінде ме? Бұл шығынға не береді?»
- «Кейбір тапсырмалар платформаның уақыт шегінен ұзаққа созылуы мүмкін бе? Олай болса, оларды қалай өңдейміз?»
- «Сақталуы керек барлық нәрсені дерекқорда немесе файл қоймасында сақта, жадта немесе жергілікті файлдарда емес.»
- «Көп данасы бір уақытта жұмыс істесе, дерекқор қосылымдары қалай басқарылуы керек?»
- «Қолданба бос тұрғаннан кейінгі бірінші сұраныстағы кідіріс қандай?»
Mythex қолданбаларды қалай хостайды
Mythex өз хостингін serverless функциялар ретінде сипаттамайды. Жариялаған кезде қолданбаңыз Mythex сіз үшін басқаратын қалыпты веб-қолданба немесе контейнер ретінде жұмыс істейді — ешқандай хостингті орнатудың қажеті жоқ. Бұл scale-to-zero: жарияланған қолданбалар мен олардың дерекқорлары бос тұрғанда ұйықтайды және келесі кіруде оянады; ұйықтап тұрған қолданба есептеу үшін ештеңе жұмсамайды, ал қосымша машиналар трафик көп болғанда ғана іске қосылады (Pro тарифі қызметке 3-ке дейін рұқсат береді). Қоса берілген Postgres дерекқоры да 5 минут бос тұрғаннан кейін ұйықтайды және ояу болған уақыты үшін төленеді. Сонымен «қолданғаныңызға ақы төлеу» артықшылығының көбін аласыз, тыныш кезеңнен кейінгі бірінші сұраныстағы кідіріспен бірге. Құжаттағы хостинг шектеулерін қараңыз, сондай-ақ веб-хостинг және хостинг шығынын азайту мақалаларымызды оқыңыз.
Сұрақтар
Қарапайым тілмен айтқанда, serverless нені білдіреді?
Serverless деген — кодыңызды бұлттық провайдерге беріп, оны тек қажет болғанда, мысалы сұраныс келгенде іске қосуы, ал серверлерді өзіңіз орнатпай немесе күтпей-ақ. Әдетте жұмыс істемей тұрған машинаға емес, кодыңыз шынымен орындалған уақыт үшін ақы төлейсіз.
Serverless-те шынымен серверлер жоқ па?
Серверлер бар; сіз оларды басқармайсыз. Провайдер кодыңызды өз машиналарында іске қосады, сұраныстар келгенде бастайды, жүктеме түскенде көбейтеді және бос тұрғанда өшіреді.
Суық старт деген не?
Суық старт — serverless функциясы бос тұрғаннан кейін іске қосылғандағы қосымша кідіріс, себебі провайдер алдымен оның жаңа данасын бастауы керек. Платформаға, тілге және код көлеміне байланысты ол байқалмайтындай болуы да, бір секунд немесе одан да көп болуы да мүмкін.
Serverless қалыпты серверге қарағанда арзан ба?
Трафигі аз немесе тең емес қолданбалар үшін жиі иә, себебі бос тұрғанда дерлік ешнәрсе төлемейсіз. Үнемі ауыр трафигі бар қолданбалар үшін әрқашан қосулы сервер арзанырақ шығуы мүмкін. Бұл пайдалану үлгісіне және провайдердің бағасына байланысты.
Serverless платформаларының мысалдары қандай?
Белгілі мысалдарға AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers, сондай-ақ Vercel және Netlify сияқты хостинг платформаларының функция мүмкіндіктері жатады.