
Vercel või Netlify: külmkäivitus võib vastuse kolmekordistada

Väikese liiklusega dünaamilise Next.js-i lehe jaoks on Vercel tugevam lähtevalik: 48 tunni ja 3044 päringu võrdluskatses võttis Netlify külmalt käivitatud vastus üle kolme sekundi, Verceli oma ligikaudu sekundi; Netlify külm vastus oli üle kolme korra aeglasem kui soe. See oli tasuta pakettide ja hõreda liiklusega katse, mitte lubadus iga rakenduse vastamisaja kohta.
Staatilise saidi puhul ei pruugi serverifunktsiooni külmkäivitus üldse valikut mõjutada. API-rikka rakenduse puhul ei piisa omakorda lehe kiirusest: tähtis on ka see, kui sageli API-päring külma täitmiskeskkonda satub. Meeskonnakoha kuutasu aitab hinnata koostöökulu, kuid ei näita kummagi platvormi tegelikku vastamisviivitust.
Staatilise saidi valik algab avaldamisest

Kui lehed saab ehitamise ajal valmis teha, ei pea iga külastus uut Next.js-i serverikoodi käivitama. Next.js-i staatilise ekspordi juhend kirjeldab valmis HTML-, CSS- ja JavaScripti failide majutamist staatilisi faile teenindavas keskkonnas. Sellise projekti puhul on asjakohasem võrrelda avaldamise sagedust, eelvaateid, liiklust ja paketi kulupiiri kui serverifunktsiooni külmkäivitust.
Piir läheb sealt, kus lehe sisu peab sõltuma saabuvast päringust. Küpsise põhjal serveris koostatav vaade ja päringut töötlev API-marsruut ei muutu staatiliseks pelgalt seetõttu, et ülejäänud sait eksporditakse failidena. Kliendis pärast lehe laadimist tehtud päring on teine lahendus: leht võib olla staatiline, kuid andmete saabumise kiirus jääb kasutajale nähtavaks.
Mida külmkäivitustest tegelikult mõõtis?
Külmkäivitus tekib siis, kui platvorm peab päringu teenindamiseks täitmiskeskkonna käivitama. Võrdluses oli sama Next.js-i projekt paigaldatud eri platvormidele, lehed sunniti dünaamiliseks ning andmepäring kasutas projektiga kaasas olnud andmeid. Seetõttu kirjeldavad tulemused kindlat rakendust ja majutusseadistust, mitte näiteks välise andmebaasi viivitust.
Päringute vahele jäeti pikk paus, et näha hõreda liikluse mõju. Lehtede puhul mõõdeti aega, millal dokument muutus brauseris kasutatavaks; API puhul mõõdeti aega vastuse esimese baidini. Neid näitajaid ei saa üheks üldiseks Next.js-i kiirusnumbriks liita. Lehe saabumine, serveris tehtav töö, võrguteekond ja hilisem andmelaadimine mõjutavad kasutajat eri viisil.
Lehtedel läks Vercelil selles katses hästi, kuid tema API-päringud sattusid külmkäivitusele sageli ning Verceli ja Netlify API vastamisajad käitusid sarnaselt. Katse toimus tasuta pakettidel, vaikeseadetega ja väikese koormuse juures. Suure samaaegse liikluse, tasulise paketi või Eestist lähtuvate päringute tulemust sellest otse tuletada ei saa. API puhul võib sage mõõdukas viivitus olla olulisem kui ühe külma vastuse suur erinevus.
Meeskonnakohad ja kasutuskrediit on eri arved
Netlify hinnakirjas on tasuta paketil 300 krediidi kuupiir, tootmiskeskkonda avaldamise hind 15 krediiti ning Pro-paketi alghind 20 dollarit kuus koos 3000 krediidi ja piiramatute liikmekohtadega. Krediit kulub ka arvutustööle, andmeedastusele ja veebipäringutele. Seetõttu ei tähenda tasuta paketi jääk lihtsalt kindlat arvu võimalikke avaldamisi: elava saidi liiklus kasutab sama eelarvet.
Netlify piiramatud liikmekohad võivad olla väärtuslikud meeskonnale, kus paljud inimesed peavad projekti haldama ja avaldama. Need ei muuda serverikoodi käivitumist kiiremaks. Harva avaldatava, kuid päringurohke rakenduse kulu kujuneb teisiti kui sageli uuendatava staatilise saidi oma. Vanemate Netlify kontode paketitingimused võivad erineda uuest krediidipõhisest hinnastusest.
Verceli hinnakirjas maksab Pro-pakett alates 20 dollarist kuus, sisaldab 20 dollari väärtuses kasutuskrediiti, tasuta vaatamiskohti, täiustatud kulude juhtimist ja külmkäivituse vältimist; täiendav arendajakoht maksab 20 dollarit kuus. Vaatamiskoht ja juurutusõigusega arendajakoht täidavad eri ülesandeid. Samuti ei saa tasuta pakettidega tehtud kiiruskatse põhjal arvutada tasulise külmkäivituse vältimisega paketi vastamisaega.
Kulupiir mõjutab ka teenuse kättesaadavust

Netlify tasuta paketi kuupiir seab kulule lae. Kui krediidipiir täitub, võidakse sama konto saidid järgmise arveldusperioodini peatada; tasulisel paketil sõltub jätkamine muu hulgas automaatse krediidilisamise seadest. See on oluline nii staatilise saidi avaldamiste kui dünaamilise rakenduse liikluse puhul. Kui tasuta pakett näib meeskonna jaoks piisav, tuleb hinnata ka seda, kui kaua krediidist päris kasutuse juures jätkub.
Verceli kulude juhtimise juhend selgitab, et kulusumma määramine üksi kasutust ei peata: selleks tuleb sisse lülitada tootmisavalduste peatamine. Kontroll toimub mõneminutiliste vahedega, nii et enne peatamist võib lisakulu tekkida. Peatatud tootmisavaldus ei teeni enam veebilehe ega API päringuid. Eelarve kaitsmise ja teenuse kättesaadavuse vahel on seega otsene valik.
Millise töökoormuse jaoks kumb valida?
- Staatiline sait: võrrelge avaldamise töövoogu, eelvaateid, liiklust ja liikmete õigusi. Külmkäivituse katsetulemus ei kirjelda valmis failina serveeritava lehe tavapärast vastust.
- Dünaamiline leht: hõreda liikluse korral annab võrdluskatse põhjuse kaaluda esmalt Vercelit. Lõplik viivitus sõltub siiski marsruudi tööst, vahemälust, paketi seadistusest ja kasutaja asukohast.
- API-rikas rakendus: eristage külma vastuse kestus selle esinemissagedusest ning arvestage päringute, arvutustöö ja andmeedastuse kulu. Lehtede kiirem kuvamine ei otsusta automaatselt API võitjat.
Majutusvalikuks on vaja teada, millised marsruudid on ette valmistatud ja millised käivitavad serverikoodi iga päringu ajal. See eristus näitab, kas määravamaks saab avaldamise hind, meeskonna ligipääs või kasutajale nähtav vastamisaeg.
Loe ka:
Seotud artiklid


Cloudflare R2 või Backblaze B2: allalaadimismaht pöörab hinnavõitja

Hugging Face’i demo tootmisse: Space ei ole vaikimisi SLA-ga teenus

Copilot Studio: 25 000 krediiti ei tähenda 25 000 vastust

Langfuse või LangSmith: tasuta majutus võib tuua ClickHouse’i arve

Mistral Large 4 jõudis eelvaatesse — avatud kaalud tulevad hiljem
Telli meie uudiskiri
Saa värskeimad Web3, AI ja krüptouudised otse oma postkasti.