Leiðbeiningar

Hvað er serverless? Serverless-tölvun útskýrð einfaldlega

Serverless er leið til að keyra kóða þar sem þú setur hvorki upp né sérð um neina þjóna sjálfur. Þú afhendir kóðann þinn skýjaveitu og hún keyrir hann aðeins þegar eitthvað kveikir á honum, til dæmis vefbeiðni, innsend skrá eða greiðslutilkynning, og stöðvar hann svo. Yfirleitt borgar þú fyrir þann tíma sem kóðinn er í raun að keyra, ekki fyrir vél sem stendur aðgerðalaus.

Af hverju serverless skiptir máli þegar þú smíðar með gervigreind

Þegar þú skoðar hýsingarmöguleika eða kóða fyrir app sem smíðað er með gervigreind rekst þú á „serverless-föll“, „edge-föll“ eða „cloud functions“. Margar hýsingarveitur bjóða upp á þau og sum smíðatól gervigreindar setja bakenda upp á þann hátt. Að skilja líkanið hjálpar þér með þrjár hagnýtar spurningar:

  • Kostnaður. Mun appið kosta peninga á meðan enginn notar það?
  • Hraði. Af hverju er fyrsta beiðnin eftir rólegt tímabil hægari?
  • Takmörk. Af hverju rann langt verkefni út á tíma, til dæmis að búa til stóra skýrslu eða vinna úr myndbandi?

Það hjálpar líka að vita hvað serverless er ekki: það er ekki fjarvera bakenda. Þú ert enn með kóða á þjóninum; einhver annar rekur bara vélarnar. Til grunnatriðanna, sjá hvað er þjónn.

Hversdagslíking

Hefðbundinn þjónn er eins og að eiga bíl. Hann er alltaf til staðar og tilbúinn strax, en þú borgar fyrir hann, tryggingar, stæði og viðhald, hvort sem þú keyrir hann eða ekki.

Serverless er eins og að panta leigubíl. Þú borgar aðeins fyrir ferðirnar sem þú tekur, og ef hundrað manns þurfa far í einu koma hundrað bílar. En það getur verið stutt bið eftir bílnum (kaldræsing), hver ferð hefur hámarkslengd, og bílstjórinn man ekki eftir þér frá síðustu ferð (föll eru án stöðu, stateless).

Hvernig serverless-föll virka

Í algengustu útgáfunni, sem kallast functions as a service:

  1. Þú skrifar fall, lítinn kóðabút sem sér um eina tegund atburðar, til dæmis „taka á móti POST á /api/bookings“.
  2. Þú setur það út. Veitan geymir það og tengir það við kveikju: vefslóð, áætlun, nýja skrá í geymslu eða skilaboð í biðröð.
  3. Atburður berst. Veitan ræsir eintak af fallinu þínu (eða notar eintak sem er þegar heitt), keyrir það og skilar niðurstöðunni.
  4. Það skalar sjálft. Ef þúsund beiðnir berast í einu keyrir veitan mörg eintök samhliða, upp að takmörkum reikningsins þíns.
  5. Það verður aðgerðalaust. Þegar umferðin stoppar eru eintökin stöðvuð. Þegar ekkert keyrir borgar þú ekkert fyrir reikniaflið.

Einfalt serverless-fall í JavaScript gæti litið svona út:

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

Engin kóðalína þarf að ræsa þjón, opna gátt eða halda ferli gangandi. Vettvangurinn sér um allt það.

Hugtakið „serverless“ er líka notað lauslega um aðra stýrða þjónustu sem skalast sjálfkrafa og rukkar eftir notkun, til dæmis serverless-gagnagrunna sem leggjast í dvala þegar þeir eru aðgerðalausir.

Helstu hugtök

HugtakMerking
Fall (FaaS)Lítil kóðaeining sem veitan keyrir eftir þörfum.
Kveikja / atburðurÞað sem ræsir fallið: HTTP-beiðni, innsend skrá, tímamælir, skilaboð í biðröð.
Kaldræsing (cold start)Bið þegar nýtt eintak fallsins þarf að ræsa áður en beiðni er svarað.
Heitt (warm)Eintak sem er þegar í gangi og getur svarað strax.
Án stöðu (stateless)Fallið geymir ekkert minni milli keyrslna. Allt sem þarf að vera varanlegt fer í gagnagrunn eða geymslu.
Tímamörk (timeout)Hámarkstími sem ein keyrsla fær. Til dæmis er hámark AWS Lambda 15 mínútur; margar veitur hafa mun styttri sjálfgefin mörk.
Edge-fallFall sem keyrir á mörgum stöðum nálægt notendum, oft með þrengri takmörkum.
Skölun niður í núll (scale to zero)Að keyra ekkert og borga ekkert fyrir reikniafl þegar engin umferð er.

Dæmi: lítil bókunarsíða

Bókunarsíða jógastúdíós fær skyndilega umferð hvert sunnudagskvöld þegar nýja stundaskráin er birt, og mjög litla umferð restina af vikunni.

  • Á þjóni sem er alltaf í gangi borgar stúdíóið fyrir vél allan sólarhringinn, stærð fyrir sunnudagskvöldið, sem er að mestu aðgerðalaus restina af tímanum.
  • Með serverless-föllum eru GET /api/classes og POST /api/bookings föll. Sunnudagsálagið ræsir mörg eintök sjálfkrafa; á rólegum þriðjudagsmorgni keyrir nánast ekkert og reikningurinn er nálægt núlli.

Málamiðlanirnar koma líka fram. Fyrsti einstaklingurinn sem opnar síðuna á þriðjudagsmorgni gæti þurft að bíða aðeins lengur vegna kaldræsingar. Gagnagrunnurinn þarf að takast á við margar stuttar tengingar frá mörgum eintökum falla, sem gæti kallað á tengjasafnara (connection pooler). Og ef stúdíóið vill síðar verkefni eins og „búa til árlega mætingarskýrslu fyrir alla“ gæti það farið fram úr tímamörkum fallsins og þurft að keyra annars staðar.

Hvenær serverless hentar, og hvenær ekki

Hentar velHentar síður
Lítil, hrinukennd eða óútreiknanleg umferðStöðug mikil umferð, þar sem þjónn í gangi getur verið ódýrari
Stuttar beiðnir og svör: API, eyðublaðsvinnsla, vefkrókarLöng verkefni: stór myndbandsvinnsla, stórir gagnainnflutningar
Lítil teymi sem vilja ekki sjá um þjónaÖpp sem halda lifandi tengingum opnum (sum spjall- eða fjölspilunareiginleikar), nema veitan styðji það
Atburðavinnsla: „þegar skrá er hlaðin upp, búðu til smámynd“Öpp sem þurfa mikið minni sem er haldið á milli beiðna

Algengar ranghugmyndir

  • „Serverless þýðir enginn bakendi.“ Það þýðir enga þjóna sem þú sér um. Þú skrifar og verndar enn bakendakóðann.
  • „Serverless er alltaf ódýrara.“ Ódýrt við litla notkun, en gjald á hverja beiðni getur safnast saman við mikla, stöðuga notkun.
  • „Serverless skalast endalaust.“ Veitur hafa takmörk á samhliða keyrslum, og gagnagrunnurinn þinn getur orðið flöskuhálsinn löngu áður en föllin verða það.
  • „Skrár sem föll vista verða þar næst.“ Staðbundin geymsla er tímabundin. Notaðu gagnagrunn eða skráageymslu.
  • „Skölun niður í núll er það sama og serverless.“ Tengt en ekki eins. Sum vettvangar keyra appið þitt sem venjulegan þjón sem sefur þegar hann er aðgerðalaus og vaknar við næstu beiðni. Sparnaðurinn og seinkun fyrstu beiðnarinnar er svipuð, en án tímamarka á hverja beiðni eins og í föllum.

Það sem þú getur beðið smíðatólið þitt um

  • „Mun þessi bakendi keyra sem serverless-föll eða sem þjónn sem er alltaf í gangi eða sefur? Hvað þýðir það fyrir kostnað?“
  • „Eru einhver verkefni líkleg til að taka lengri tíma en tímamörk vettvangsins? Ef svo er, hvernig eigum við að takast á við þau?“
  • „Geymdu allt sem þarf að vera varanlegt í gagnagrunninum eða skráageymslu, ekki í minni eða staðbundnum skrám.“
  • „Hvernig eigum við að stýra gagnagrunnstengingum ef mörg eintök keyra í einu?“
  • „Hver er tafin á fyrstu beiðninni eftir að appið hefur verið aðgerðalaust?“

Hvernig Mythex hýsir öpp

Mythex lýsir ekki hýsingu sinni sem serverless-föllum. Þegar þú birtir keyrir appið þitt sem venjulegt vefapp eða gámur sem Mythex sér um fyrir þig. Engin hýsing þarf að setja upp. Það er skölun niður í núll (scale-to-zero): birt öpp og gagnagrunnar þeirra sofna þegar þau eru aðgerðalaus og vakna við næstu heimsókn. Sofandi app kostar ekkert í reikniafli, og aukavélar ræsast aðeins þegar umferðin er mikil (Pro leyfir allt að 3 á hverja þjónustu). Tengdi Postgres-gagnagrunnurinn sefur einnig eftir 5 mínútur án virkni og er rukkaður fyrir þann tíma sem hann var vakandi. Þú færð því mikið af ávinningi „borgaðu fyrir það sem þú notar“, með sömu tegund af seinkun á fyrstu beiðni eftir rólegt tímabil. Sjá takmörk hýsingar í skjölunum, og greinarnar okkar um vefhýsingu og hvernig lækka má hýsingarkostnað.

Spurningar

Hvað þýðir serverless í einföldu máli?

Serverless þýðir að þú afhendir skýjaveitu kóðann þinn og hún keyrir hann aðeins þegar þörf er á, til dæmis þegar beiðni berst, án þess að þú setjir upp eða sjáir um neina þjóna. Yfirleitt borgar þú fyrir þann tíma sem kóðinn keyrir í raun, í stað vélar sem er alltaf í gangi.

Eru engir þjónar í serverless?

Það eru þjónar; þú sérð bara ekki um þá. Veitan keyrir kóðann þinn á eigin vélum, ræsir hann þegar beiðnir berast, skalar hann upp undir álagi og slekkur á honum þegar hann er aðgerðalaus.

Hvað er kaldræsing (cold start)?

Kaldræsing er aukabiðin þegar serverless-fall er keyrt eftir að hafa verið aðgerðalaust, því veitan þarf fyrst að ræsa nýtt eintak. Hún getur verið varla merkjanleg eða eina sekúndu eða meira, eftir veitu, forritunarmáli og stærð kóðans.

Er serverless ódýrara en venjulegur þjónn?

Fyrir öpp með lítla eða ójafna umferð oft já, því þú borgar nánast ekkert á meðan þau eru aðgerðalaus. Fyrir öpp með mikla og stöðuga umferð getur þjónn sem er alltaf í gangi reynst ódýrari. Það fer eftir notkunarmynstri þínu og verðlagningu veitunnar.

Hver eru dæmi um serverless-veitur?

Þekktustu dæmin eru AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers og fallaeiginleikar hýsingarveitna eins og Vercel og Netlify.

Mythex · Pricing · Smíðaðu hvað sem er með gervigreind · Sniðmát fyrir vefsíður og forrit · Mythex í samanburði · Orðasafn um forritasmíði með gervigreind · Ókeypis verkfæri fyrir forritasmíði með gervigreind · 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 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 简体中文 繁體中文(香港) 繁體中文(台灣)