Ուղեցույցներ

Ի՞նչ է serverless-ը։ Serverless computing-ի պարզ բացատրություն

Serverless-ը կոդ գործարկելու եղանակ է, երբ դուք ինքներդ որևէ սերվեր չեք կարգավորում և չեք կառավարում։ Ձեր կոդը տրամադրում եք cloud մատակարարին, և այն աշխատում է միայն այն ժամանակ, երբ ինչ-որ բան այն գործարկում է՝ վեբ հարցում, վերբեռնված ֆայլ, վճարման ծանուցում, և հետո կանգնում։ Սովորաբար վճարում եք այն ժամանակի համար, երբ ձեր կոդը իրականում աշխատում է, և ոչ թե պարապող մեքենայի համար։

Ինչու է serverless-ը կարևոր AI-ով կառուցելիս

Երբ AI-ով հավելված եք կառուցում և նայում եք հոսթինգի տարբերակներին կամ կոդին, կհանդիպեք «serverless ֆունկցիաներ», «edge ֆունկցիաներ» կամ «cloud ֆունկցիաներ» տերմիններին։ Շատ հոսթինգ հարթակներ դրանք առաջարկում են, և որոշ AI կառուցողներ backend-ներ այս կերպ են տեղակայում։ Մոդելը հասկանալը օգնում է երեք գործնական հարցում․

  • Ծախս։ Արդյո՞ք ձեր հավելվածը գումար կարժենա, երբ ոչ ոք չի օգտագործում այն։
  • Արագություն։ Ինչու է առաջին հարցումը հանգիստ ժամանակաշրջանից հետո ավելի դանդաղ։
  • Սահմաններ։ Ինչու երկար առաջադրանքը՝ մեծ հաշվետվության ստեղծումը կամ տեսանյութի մշակումը, ժամանակն ավարտվեց։

Օգտակար է նաև իմանալ, թե serverless-ը ինչ չէ․ այն backend-ի բացակայություն չէ։ Դուք դեռ ունեք սերվերային կոդ, պարզապես ուրիշն է աշխատեցնում մեքենաները։ Հիմունքների համար տե՛ս ինչ է սերվերը։

Ամենօրյա անալոգիա

Սովորական սերվերը նման է մեքենա ունենալուն։ Այն միշտ այնտեղ է, պատրաստ՝ անմիջապես գործելու, բայց դուք վճարում եք դրա համար՝ ապահովագրություն, կայանում, սպասարկում, անկախ նրանից՝ օգտագործում եք այն, թե ոչ։

Serverless-ը նման է տաքսի կանչելուն։ Վճարում եք միայն կատարած ուղևորությունների համար, և եթե հարյուր մարդ միաժամանակ է ուզում մեքենա, հարյուր տաքսի է գալիս։ Բայց մեքենայի գալու համար կարճ սպասում կարող է լինել (cold start), յուրաքանչյուր ուղևորություն ունի առավելագույն երկարություն, և վարորդը չի հիշում ձեզ նախորդ ուղևորությունից (ֆունկցիաները stateless են)։

Ինչպես են աշխատում serverless ֆունկցիաները

Պարզագույն ձևով, որ կոչվում է functions as a service․

  1. Գրում եք ֆունկցիա — փոքր կոդի կտոր, որ մշակում է իրադարձության մի տեսակ, օրինակ՝ «մշակել POST /api/bookings-ը»։
  2. Տեղակայում եք այն։ Մատակարարը պահում է այն և կապում է գործարկիչի հետ՝ URL, ժամանակացույց, նոր ֆայլ պահոցում, հաղորդագրություն հերթում։
  3. Գալիս է իրադարձություն։ Մատակարարը սկսում է ձեր ֆունկցիայի պատճենը (կամ օգտագործում է արդեն տաքացած մեկը), գործարկում այն և վերադարձնում արդյունքը։
  4. Ինքն է մասշտաբվում։ Եթե միաժամանակ հազար հարցում գա, մատակարարը շատ պատճեններ է գործարկում զուգահեռ՝ մինչև ձեր հաշվի սահմանները։
  5. Պարապում է։ Երբ թրաֆիկը դադարում է, պատճենները անջատվում են։ Եթե ոչինչ չի աշխատում, հաշվողականության համար ոչինչ չեք վճարում։

Փոքր serverless ֆունկցիան JavaScript-ով կարող է այսպիսի տեսք ունենալ․

export default async function handler(request) {
  const { name } = await request.json();
  return Response.json({ message: `Hello, ${name}` });
}

Սերվեր սկսելու, պորտ բացելու կամ գործընթաց պահելու կոդ չկա։ Հարթակը այդ ամենը անում է։

«Serverless»-ը ավելի ազատորեն օգտագործվում է նաև այլ կառավարվող ծառայությունների համար, որոնք ինքնուրույն մասշտաբվում են և վճարվում են օգտագործման համար՝ օրինակ՝ serverless տվյալների բազաները, որոնք պարապելիս դադարում են։

Բանալի տերմիններ

ՏերմինՆշանակություն
Ֆունկցիա (FaaS)Փոքր կոդի միավոր, որ մատակարարը գործարկում է պահանջով։
Գործարկիչ / իրադարձությունԱյն, ինչ սկսում է ֆունկցիան՝ HTTP հարցում, ֆայլի վերբեռնում, ժամացույց, հերթի հաղորդագրություն։
Cold startՀապաղում, երբ ֆունկցիայի նոր պատճենը պետք է սկսվի՝ նախքան հարցումը մշակելը։
Տաք (warm)Արդեն աշխատող պատճեն, որ կարող է անմիջապես պատասխանել։
StatelessՖունկցիան հիշողություն չի պահում աշխատանքների միջև։ Ամեն, ինչ պետք է մնա, գնում է տվյալների բազա կամ պահոց։
TimeoutՄեկ աշխատանքի առավելագույն թույլատրելի ժամանակը։ Օրինակ՝ AWS Lambda-ի առավելագույնը 15 րոպե է, շատ հարթակներ ունեն դրանից շատ ավելի փոքր լռելյայն։
Edge ֆունկցիաՖունկցիա, որ աշխատում է օգտատերերին մոտ գտնվող բազում վայրերում, հաճախ ավելի խիստ սահմաններով։
Scale to zeroՈչինչ չաշխատել և հաշվողականության համար ոչինչ չվճարել, երբ թրաֆիկ չկա։

Օրինակ՝ փոքր ամրագրման կայք

Յոգայի ստուդիայի ամրագրման կայքը ամեն կիրակի երեկոյան, երբ նոր ժամանակացույցը բացվում է, մեծ թվով այցեր է ունենում, իսկ մնացած շաբաթվա ընթացքում՝ շատ քիչ։

  • Միշտ միացված սերվերի վրա ստուդիան վճարում է մեքենայի համար 24/7, չափված կիրակի երեկոյան գագաթնակետի համար և հիմնականում պարապ մնում մնացած ժամանակ։
  • Serverless ֆունկցիաներով GET /api/classes-ը և POST /api/bookings-ը ֆունկցիաներ են։ Կիրակիի հեղեղը ինքնաբերաբար գործարկում է շատ պատճեններ․ հանգիստ երեքշաբթի առավոտյան գրեթե ոչինչ չի աշխատում, և հաշիվը մոտ զրոյի է։

Փոխզիջումները նույնպես երևում են։ Երեքշաբթի առավոտյան կայքը առաջին բացող անձը կարող է լրացուցիչ մի պահ սպասել cold start-ի պատճառով։ Տվյալների բազան պետք է գործ ունենա շատ ֆունկցիայի պատճենների կարճատև միացումների հետ, ինչը կարող է պահանջել connection pooler։ Եթե ստուդիան հետագայում ուզի «ստեղծել բոլորի տարեկան մասնակցության 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-ը նշանակում է, որ ձեր կոդը տրամադրում եք cloud մատակարարին, և այն գործարկվում է միայն անհրաժեշտության դեպքում՝ օրինակ, երբ գալիս է հարցում, առանց դուք որևէ սերվեր կարգավորելու կամ հսկելու։ Սովորաբար վճարում եք այն ժամանակի համար, երբ ձեր կոդը իրականում աշխատում է, այլ ոչ թե միշտ միացված մեքենայի համար։

Իսկապես սերվեր չկա՞ serverless-ում

Սերվերներ կան, պարզապես դուք դրանք չեք կառավարում։ Մատակարարը ձեր կոդն աշխատեցնում է իր մեքենաների վրա, սկսում է այն, երբ գալիս են հարցումներ, մեծացնում է բեռի տակ և անջատում, երբ պարապ է։

Ի՞նչ է cold start-ը

Cold start-ը լրացուցիչ հապաղումն է, երբ serverless ֆունկցիան աշխատում է պարապելուց հետո, քանի որ մատակարարը նախ պետք է նոր պատճեն սկսի։ Այն կարող է լինել գրեթե աննկատ կամ մեկ վայրկյան և ավելի՝ կախված հարթակից, լեզվից և կոդի չափից։

Serverless-ը ավելի էժա՞ն է, քան սովորական սերվերը

Քիչ կամ անհավասարաչափ թրաֆիկ ունեցող հավելվածների համար հաճախ այո, քանի որ պարապի ժամանակ գրեթե ոչինչ չեք վճարում։ Մշտական և ծանր թրաֆիկ ունեցող հավելվածների համար միշտ միացված սերվերը կարող է ավելի էժան ստացվել։ Ամեն ինչ կախված է օգտագործման ձևից և մատակարարի գներից։

Ո՞րն են serverless հարթակների օրինակները

Հայտնի օրինակներն են AWS Lambda-ն, Google Cloud Run functions-ը, Azure Functions-ը, Cloudflare Workers-ը և հոսթինգ հարթակների ֆունկցիաների հնարավորությունները, ինչպիսիք են Vercel-ը և Netlify-ը։

Mythex · Pricing · Կառուցեք ամեն ինչ AI-ով · Կաղապարներ կայքերի և հավելվածների համար · Mythex-ի համեմատությունները · AI-ով հավելվածների ստեղծման բառարան · Անվճար գործիքներ AI-ով հավելվածներ ստեղծելու համար · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)