Udhëzues

Çfarë është serverless? Llogaritja pa server e shpjeguar thjesht

Serverless është një mënyrë për të ekzekutuar kod pa konfiguruar ose menaxhuar vetë asnjë server. Ia jep kodin tënd një ofruesi cloud, dhe ai e ekzekuton vetëm kur diçka e nis — një kërkesë web, një skedar i ngarkuar, një njoftim pagese — pastaj ndalet. Zakonisht paguan për kohën që kodi yt është duke u ekzekutuar, jo për një makinë që qëndron e papunë.

Pse ka rëndësi serverless kur ndërton me AI

Kur shikon opsionet e hostimit ose kodin e një aplikacioni të ndërtuar me AI, do të hasësh termat “funksione serverless”, “edge functions” ose “cloud functions”. Shumë platforma hostimi i ofrojnë, dhe disa ndërtues me AI i vendosin backend-et kështu. Kuptimi i modelit të ndihmon me tre pyetje praktike:

  • Kosto. A do t’i kushtojë para aplikacionit tënd ndërkohë që askush nuk e përdor?
  • Shpejtësia. Përse kërkesa e parë pas një periudhe të qetë është më e ngadaltë?
  • Kufijtë. Përse një detyrë e gjatë — gjenerimi i një raporti të madh, përpunimi i një videoje — skadoi?

Ndihmon edhe të dish çfarë nuk është serverless: nuk është mungesë e backend-it. Ke ende kod në server; thjesht dikush tjetër i drejton makinat. Për bazat, shiko çfarë është një server.

Një analogji e përditshme

Një server tradicional është si të zotërosh një makinë. Është gjithmonë aty, gati për të lëvizur menjëherë, por e paguan — sigurim, parkim, mirëmbajtje — qoftë se e përdor apo jo.

Serverless është si të thërrasësh një taksi. Paguan vetëm për udhëtimet që bën, dhe nëse njëqind njerëz kanë nevojë për një udhëtim njëherësh, vijnë njëqind taksi. Por mund të ketë pak pritje që makina të vijë (një cold start), çdo udhëtim ka një gjatësi maksimale, dhe shoferi nuk të kujton nga udhëtimi i kaluar (funksionet janë stateless).

Si funksionojnë funksionet serverless

Në formën më të zakonshme, të quajtur functions as a service:

  1. Shkruan një funksion — një pjesë të vogël kodi që trajton një lloj ngjarjeje, si “trajto një POST te /api/bookings.”
  2. E vendos (deploy). Ofruesi e ruan dhe e lidh me një trigger: një URL, një orar, një skedar i ri në depozitim, një mesazh në një radhë.
  3. Vjen një ngjarje. Ofruesi nis një kopje të funksionit tënd (ose ripërdor një që është e ngrohtë), e ekzekuton dhe kthen rezultatin.
  4. Shkallëzohet vetë. Nëse vijnë njëmijë kërkesa njëherësh, ofruesi ekzekuton shumë kopje paralelisht, deri te kufijtë e llogarisë sate.
  5. Bëhet i papunë. Kur ndalon trafiku, kopjet mbyllen. Me asgjë që punon, nuk paguan për llogaritjen.

Një funksion i vogël serverless në JavaScript mund të duket kështu:

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

Nuk ka kod për të nisur një server, për të hapur një port ose për të mbajtur gjallë një proces. Platforma i trajton të gjitha këto.

"Serverless" përdoret edhe më lirshëm për shërbime të tjera të menaxhuara që shkallëzohen automatikisht dhe faturohen sipas përdorimit — për shembull bazat e të dhënave serverless, që pauzohen kur janë të papunë.

Termat kryesorë

TermiKuptimi
Funksion (FaaS)Një njësi e vogël kodi që ofruesi e ekzekuton sipas kërkesës.
Trigger / ngjarjeÇfarë e nis funksionin — një kërkesë HTTP, një ngarkim skedari, një kohëmatës, një mesazh në radhë.
Cold startVonesa kur një kopje e re e funksionit duhet të nisë para se të trajtojë një kërkesë.
WarmNjë kopje që është tashmë në punë dhe mund të përgjigjet menjëherë.
StatelessFunksioni nuk mban memorie mes ekzekutimeve. Çdo gjë që duhet të qëndrojë shkon në një bazë të dhënash ose depozitim.
TimeoutKoha maksimale e lejuar për një ekzekutim. Për shembull, maksimumi i AWS Lambda është 15 minuta; shumë platforma kanë parazgjedhje shumë më të shkurtër.
Edge functionNjë funksion që ekzekutohet në shumë vende afër përdoruesve, shpesh me kufij më të ngushtë.
Shkallëzim në zeroTë mos ekzekutosh asgjë, dhe të mos paguash asgjë për llogaritjen, kur nuk ka trafik.

Një shembull i punuar: një faqe e vogël rezervimesh

Faqja e rezervimeve e një studioje yoga merr një valë vizitash çdo mbrëmje të së dielës, kur publikohet orari i ri, dhe shumë pak pjesën tjetër të javës.

  • Me një server gjithmonë të ndezur, studioja paguan për një makinë 24/7, e përshtatur për pikën e së dielës në mbrëmje, dhe kryesisht e papunë gjatë gjithë kohës tjetër.
  • Me funksione serverless, GET /api/classes dhe POST /api/bookings janë funksione. Rushi i së dielës ngre automatikisht shumë kopje; një të martë të qetë në mëngjes, pothuajse asgjë nuk ekzekutohet dhe fatura është afër zeros.

Kompromiset shfaqen gjithashtu. Personi i parë që hap faqen të martën në mëngjes mund të presë pak më shumë për një cold start. Baza e të dhënave duhet të trajtojë shumë lidhje të shkurtra nga shumë kopje funksionesh, gjë që mund të kërkojë një pooler lidhjesh. Dhe nëse studioja më vonë dëshiron një detyrë “gjenero PDF-në vjetore të frekuentimit për të gjithë”, mund të kalojë kufirin kohor të funksionit dhe të duhet të ekzekutohet diku tjetër.

Kur përshtatet serverless — dhe kur jo

Përshtatje e mirëPërshtatje më pak e mirë
Trafik i ulët, me pika ose i paparashikueshëmTrafik i rëndë dhe i vazhdueshëm, ku një server gjithmonë i ndezur mund të jetë më i lirë
Detyra të shkurtra kërkesë/përgjigje: API, trajtues formularësh, webhook-ePunë të gjata: përpunim i madh videoje, importe të mëdha të dhënash
Ekipe të vogla që nuk duan të menaxhojnë serverëAplikacione që mbajnë lidhje të hapura (disa veçori chat ose multiplayer), përveç nëse platforma e mbështet
Trajtim ngjarjesh: “kur ngarkohet një skedar, bëj një miniaturë”Aplikacione që kanë nevojë për shumë memorie të mbajtur mes kërkesave

Keqkuptime të zakonshme

  • “Serverless do të thotë pa backend.” Do të thotë pa serverë për t’u menaxhuar. Ende shkruan dhe siguron kod backend.
  • “Serverless është gjithmonë më i lirë.” I lirë në volum të ulët, por çmimi për kërkesë mund të shtohet në volum të lartë dhe të qëndrueshëm.
  • “Serverless shkallëzohet pa kufi.” Platformat kanë kufij njëkohësie, dhe baza jote e të dhënave mund të bëhet pengesa shumë përpara funksioneve.
  • “Skedarët e ruajtur në një funksion do të jenë aty herën tjetër.” Depozitimi lokal është i përkohshëm. Përdor një bazë të dhënash ose depozitim skedarësh.
  • “Shkallëzimi në zero është e njëjta gjë me serverless.” Janë të lidhura, por jo identike. Disa platforma e ekzekutojnë aplikacionin tënd si server të zakonshëm që fle kur është i papunë dhe zgjohet te kërkesa e radhës — kursim i ngjashëm dhe vonesë e ngjashme e kërkesës së parë, por pa kufij kohorë për kërkesë si te funksionet.

Çfarë t’i kërkosh ndërtuesit tënd të AI-së

  • “A do të ekzekutohet ky backend si funksione serverless, apo si server gjithmonë i ndezur ose që fle? Çfarë do të thotë kjo për koston?”
  • “A ka gjasa që ndonjë detyrë të zgjasë më shumë se kufiri kohor i platformës? Nëse po, si duhet t’i trajtojmë?”
  • “Ruaj gjithçka që duhet të qëndrojë në bazën e të dhënave ose depozitimin e skedarëve, jo në memorie ose në skedarë lokalë.”
  • “Si duhet të menaxhohen lidhjet me bazën e të dhënave nëse ekzekutohen shumë kopje njëherësh?”
  • “Sa vonon kërkesa e parë pasi aplikacioni ka qenë i papunë?”

Si i hoston Mythex aplikacionet

Mythex nuk e përshkruan hostimin e vet si funksione serverless. Kur publikon, aplikacioni yt ekzekutohet si një aplikacion web ose container i zakonshëm që Mythex e menaxhon për ty — nuk ka hostim për të konfiguruar. Është shkallëzim në zero: aplikacionet e publikuara dhe bazat e tyre të të dhënave fjetin kur janë të papunë dhe zgjohen te vizita e radhës; një aplikacion që fle nuk shpenzon asgjë për llogaritjen, dhe makina shtesë nisen vetëm kur trafiku është i rëndë (Pro lejon deri në 3 për shërbim). Baza e bashkangjitur e Postgres gjithashtu fle pas 5 minutash të papunësisë dhe faturohet për kohën që ka qenë e zgjuar. Kështu merr shumë nga përfitimi “paguaj për atë që përdor”, me të njëjtin lloj vonese të kërkesës së parë pas një periudhe të qetë. Shiko kufijtë e hostimit në dokumentacion, dhe udhëzuesit tanë për hostimin web dhe uljen e kostove të hostimit.

Pyetje

Çfarë do të thotë serverless me fjalë të thjeshta?

Serverless do të thotë t’i jep kodin tënd një ofruesi cloud dhe ai e ekzekuton vetëm kur nevojitet — për shembull, kur vjen një kërkesë — pa që ti të konfigurosh ose të kujdesesh për ndonjë server. Zakonisht paguan për kohën që kodi yt ekzekutohet, jo për një makinë që është gjithmonë e ndezur.

A ka vërtet serverë në serverless?

Ka serverë; thjesht ti nuk i menaxhon. Ofruesi ekzekuton kodin tënd në makinat e veta, e nis kur vijnë kërkesa, e shton kur ka ngarkesë të madhe dhe e mbyll kur është i papunë.

Çfarë është një cold start?

Cold start është vonesa shtesë kur një funksion serverless ekzekutohet pasi ka qenë i papunë, sepse ofruesi duhet të nisë fillimisht një kopje të re. Mund të variojë nga pothuajse e pakonsiderueshme deri në një sekondë ose më shumë, varësisht nga platforma, gjuha dhe madhësia e kodit.

A është serverless më lirë se një server i zakonshëm?

Për aplikacionet me trafik të vogël ose të pabarabartë, shpesh po, sepse pothuajse nuk paguan asgjë kur është i papunë. Për aplikacionet me trafik të madh dhe të vazhdueshëm, një server gjithmonë i ndezur mund të dalë më lirë. Varet nga modeli i përdorimit dhe nga çmimi i ofruesit.

Cilat janë shembuj platformash serverless?

Shembuj të njohur janë AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers, dhe veçoritë e funksioneve të platformave të hostimit si Vercel dhe Netlify.

Mythex · Pricing · Ndërtoni çdo gjë me AI · Shablone faqesh dhe aplikacionesh · Mythex në krahasim · Fjalori i ndërtimit të aplikacioneve me AI · Mjete falas për ndërtimin e aplikacioneve me 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 Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)