Rokasgrāmatas

Kas ir serverless? Serverless datorēšana vienkārši paskaidrota

Serverless ir koda palaišanas veids, kur paši nekonfigurējat un nepārvaldāt nevienu serveri. Kodu nododat mākoņa pakalpojumu sniedzējam, un tas darbojas tikai tad, kad kaut kas to aktivizē — tīmekļa pieprasījums, augšupielādēts fails, maksājuma paziņojums — un pēc tam apstājas. Parasti maksājat par laiku, kad kods faktiski darbojas, nevis par mašīnu, kas stāv dīkstāvē.

Kāpēc serverless ir svarīgs, veidojot ar MI

Kad veidojat lietotni ar MI un skatāties hostinga iespējas vai kodu, noskriesiet pret „serverless funkcijām”, „edge funkcijām” vai „mākoņa funkcijām”. Daudzas hostinga platformas tās piedāvā, un daži MI veidotāji backend izvieto šādā veidā. Modeļa izpratne palīdz trīs praktiskos jautājumos:

  • Izmaksas. Vai jūsu lietotne maksās naudu, kamēr neviens to neizmanto?
  • Ātrums. Kāpēc pirmais pieprasījums pēc klusa perioda ir lēnāks?
  • Ierobežojumi. Kāpēc garš uzdevums — liela pārskata ģenerēšana, video apstrāde — pārsniedza laika limitu?

Tāpat noderīgi zināt, ko serverless nav: tas nenozīmē backend neesamību. Joprojām ir servera puses kods; vienkārši kāds cits darbina mašīnas. Pamatus skatiet kas ir serveris.

Ikdienas salīdzinājums

Tradicionāls serveris ir kā automašīnas īpašumtiesības. Tā vienmēr ir gatava, uzreiz var braukt, bet maksājat par to — apdrošināšanu, stāvvietu, uzturēšanu — neatkarīgi no tā, vai to izmantojat.

Serverless ir kā taksometra izsaukšana. Maksājat tikai par braucieniem, ko veicat, un ja simts cilvēkiem vienlaikus vajag braucienu, pienāk simts taksometru. Taču automašīnas ierašanās var prasīt īsu gaidīšanu (aukstais starts), katram braucienam ir maksimālais ilgums, un šoferis neatceras jūs no iepriekšējā brauciena (funkcijas ir stateless, t.i., bez stāvokļa).

Kā darbojas serverless funkcijas

Visbiežākajā formā, ko sauc par functions as a service:

  1. Jūs uzrakstāt funkciju — nelielu koda daļu, kas apstrādā vienu notikuma veidu, piemēram, „apstrādāt POST uz /api/bookings”.
  2. Jūs to izvietojat. Pakalpojumu sniedzējs to saglabā un piesaista aktivizētājam: URL, grafikam, jaunam failam glabātuvē, ziņojumam rindā.
  3. Ienāk notikums. Pakalpojumu sniedzējs sāk jūsu funkcijas kopiju (vai izmanto jau siltu), to palaiž un atgriež rezultātu.
  4. Tā mērogojas pati. Ja vienlaikus ienāk tūkstoš pieprasījumi, pakalpojumu sniedzējs palaiž daudzas kopijas paralēli, līdz jūsu konta ierobežojumiem.
  5. Tā pāriet dīkstāvē. Kad datplūsma apstājas, kopijas tiek izslēgtas. Ja nekas nedarbojas, par skaitļošanu nemaksājat neko.

Nelieliņa serverless funkcija JavaScript varētu izskatīties šādi:

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

Nav koda, kas startētu serveri, atvērtu portu vai uzturētu procesu darbībā. Platforma to visu apstrādā.

„Serverless” tiek lietots arī vaļīgāk citiem pārvaldītiem pakalpojumiem, kas mērogojas automātiski un norēķinās pēc lietojuma — piemēram, serverless datu bāzēm, kas dīkstāvē pauzējas.

Galvenie termini

TerminsNozīme
Funkcija (FaaS)Neliela koda vienība, ko pakalpojumu sniedzējs palaiž pēc pieprasījuma.
Aktivizētājs / notikumsKas palaiž funkciju — HTTP pieprasījums, faila augšupielāde, taimeris, rindas ziņojums.
Aukstais startsAizkave, kad jaunai funkcijas kopijai pirms pieprasījuma apstrādes jāsāk darboties.
SiltsKopija, kas jau darbojas un var atbildēt tūlīt.
Stateless (bez stāvokļa)Funkcija starp izpildēm neglabā atmiņu. Viss, kam jāsaglabājas, iet datu bāzē vai glabātuvē.
Laika limitsMaksimālais laiks vienai izpildei. Piemēram, AWS Lambda maksimums ir 15 minūtes; daudzas platformas noklusē daudz mazāk.
Edge funkcijaFunkcija, kas darbojas daudzās vietās tuvu lietotājiem, bieži ar stingrākiem ierobežojumiem.
Mērogošana līdz nullei (scale to zero)Nekas nedarbojas un par skaitļošanu nemaksājat, kad nav datplūsmas.

Darba piemērs: neliela rezervēšanas vietne

Jogas studijas rezervēšanas vietnē katru svētdienas vakaru notiek apmeklējumu uzplūdums, kad tiek publicēts jaunais grafiks, bet pārējā nedēļā gandrīz nekā.

  • Ar serveri, kas darbojas vienmēr, studija maksā par mašīnu 24/7, kas izmērīta svētdienas vakara maksimumam, un citādi lielākoties stāv dīkstāvē.
  • Ar serverless funkcijām GET /api/classes un POST /api/bookings ir funkcijas. Svētdienas steigu automātiski palaiž daudzas kopijas; agrā otrdienas rītā gandrīz nekas nedarbojas un rēķins ir gandrīz nulle.

Parādās arī kompromisi. Pirmais cilvēks, kas otrdienas rītā atver vietni, var uz aukstā starta gaidīt nedaudz ilgāk. Datu bāzei jātiek galā ar daudziem īslaicīgiem savienojumiem no daudzām funkciju kopijām, kam var vajadzēt savienojumu pūlu. Un, ja studija vēlāk vēlēsies uzdevumu „ģenerēt visu dalībnieku gada apmeklējuma PDF”, tas var pārsniegt funkcijas laika limitu un prasīt palaišanu citur.

Kad serverless der — un kad ne

Labi piemērotsMazāk piemērots
Datplūsma, kas ir zema, ar uzplūdiem vai neparedzamaPastāvīga liela datplūsma, kur serveris, kas darbojas vienmēr, var būt lētāks
Īsi pieprasījuma/atbildes uzdevumi: API, veidlapu apstrādātāji, webhookIlgi darbi: liela video apstrāde, lieli datu importi
Mazas komandas, kas nevēlas pārvaldīt serverusLietotnes, kas uztur aktīvus savienojumus (dažas tērzēšanas vai daudzspēlētāju funkcijas), ja platforma to neatbalsta
Notikumu apstrāde: „kad augšupielādē failu, izveido sīktēlu”Lietotnes, kam vajag daudz atmiņas starp pieprasījumiem

Biežākie nepareizi priekšstati

  • „Serverless nozīmē, ka nav backend.” Tas nozīmē, ka nav serveru, ko pārvaldīt. Joprojām rakstāt un nodrošināt backend kodu.
  • „Serverless vienmēr ir lētāks.” Lēts ir mazā apjomā, bet cena par pieprasījumu var pieaugt ar lielu, stabilu apjomu.
  • „Serverless mērogojas bezgalīgi.” Platformām ir vienlaicīguma ierobežojumi, un datu bāze var kļūt par sastrēgumu daudz agrāk nekā funkcijas.
  • „Failus, ko saglabā funkcijā, atradīs nākamreiz.” Lokālā glabātuve ir īslaicīga. Izmantojiet datu bāzi vai failu glabātuvi.
  • „Mērogošana līdz nullei ir tas pats, kas serverless.” Saistīts, bet nav identisks. Dažas platformas darbina jūsu lietotni kā parastu serveri, kas guļ dīkstāvē un pamostas nākamajā pieprasījumā — līdzīgs ietaupījums un līdzīga pirmā pieprasījuma aizkave, bet bez funkciju stila laika limitiem katram pieprasījumam.

Ko prasīt no sava MI veidotāja

  • „Vai šis backend darbosies kā serverless funkcijas vai kā serveris, kas darbojas vienmēr vai guļ? Ko tas nozīmē izmaksām?”
  • „Vai kādi uzdevumi, visticamāk, ilgs ilgāk par platformas laika limitu? Ja jā, kā tos apstrādāt?”
  • „Glabā visu, kam jāsaglabājas, datu bāzē vai failu glabātuvē, nevis atmiņā vai lokālos failos.”
  • „Kā pārvaldīt datu bāzes savienojumus, ja vienlaikus darbojas daudzas kopijas?”
  • „Cik ilga ir aizkave pirmajam pieprasījumam pēc tam, kad lietotne bija dīkstāvē?”

Kā Mythex hosto lietotnes

Mythex savu hostingu neapraksta kā serverless funkcijas. Kad publicējat, jūsu lietotne darbojas kā parasta tīmekļa lietotne vai konteiners, ko Mythex pārvalda jūsu vietā — nekas nav jāuzstāda. Tā ir mērogošana līdz nullei: publicētās lietotnes un to datu bāzes dīkstāvē guļ un pamostas nākamajā apmeklējumā, guļoša lietotne neko nemaksā par skaitļošanu, un papildu mašīnas startē tikai tad, kad datplūsma ir liela (Pro plānā līdz 3 uz pakalpojumu). Pievienotā Postgres datu bāze arī guļ pēc 5 minūtēm dīkstāvē un tiek norēķināta par laiku, kad bija nomodā. Tādējādi jūs iegūstat lielu daļu no ieguvuma „maksājiet par to, ko lietojat”, ar tādu pašu veidu pirmā pieprasījuma aizkavi pēc klusa perioda. Skatiet hostinga ierobežojumus dokumentācijā un mūsu ceļvežus par tīmekļa hostingu un hostinga izmaksu samazināšanu.

Jautājumi

Ko nozīmē serverless vienkāršos vārdos?

Serverless nozīmē, ka mākoņa pakalpojumu sniedzējam nododat savu kodu, un tas darbojas tikai tad, kad nepieciešams — piemēram, kad ienāk pieprasījums —, bez jūsu serveru uzstādīšanas vai uzraudzības. Parasti maksājat par laiku, kad kods faktiski darbojas, nevis par mašīnu, kas ir ieslēgta vienmēr.

Vai serverless tiešām nav serveru?

Serveri ir, jūs tos tikai nepārvaldāt. Pakalpojumu sniedzējs palaiž jūsu kodu savās mašīnās, sāk to, kad ienāk pieprasījumi, palielina jaudu zem slodzes un to izslēdz, kad tas ir dīkstāvē.

Kas ir aukstais starts (cold start)?

Aukstais starts ir papildu aizkave, kad serverless funkcija darbojas pēc dīkstāves, jo pakalpojumu sniedzējam vispirms jāsāk jauna kopija. Tā var būt gandrīz nemanāma vai ilgāka par sekundi atkarībā no platformas, valodas un koda apjoma.

Vai serverless ir lētāks par parastu serveri?

Lietotnēm ar nelielu vai nevienmērīgu datplūsmu bieži jā, jo dīkstāvē maksājat gandrīz neko. Lietotnēm ar lielu, pastāvīgu datplūsmu serveris, kas darbojas vienmēr, var izrādīties lētāks. Tas ir atkarīgs no jūsu lietošanas modeļa un pakalpojumu sniedzēja cenām.

Kādas ir serverless platformu piemēri?

Zināmi piemēri ir AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers un hostinga platformu, piemēram, Vercel un Netlify, funkciju iespējas.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar 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ų Македонски മലയാളം Монгол मराठी 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 简体中文 繁體中文(香港) 繁體中文(台灣)