Cloudflare Workers eða Vercel Functions: 4,5 MB mörkin geta ráðið valinu

|Höfundur: Ritstjórn QUASA|6 mín. lestur
Cloudflare Workers eða Vercel Functions: 4,5 MB mörkin geta ráðið valinu

Cloudflare Workers hentar vel léttum vef-API og aðgerðum sem þurfa að skila stórum svörum. Vercel Functions getur hentað betur þegar Node.js-aðgerð þarf meira vinnsluminni. Í takmörkunum Vercel Functions eru meginmál beiðni og svars takmörkuð við 4,5 MB hvort um sig; sjálfgefið minni er 2 GB og á Pro má hækka það í 4 GB.

Þetta setur gagnastærð fremst í valið. Samkvæmt mörkum Cloudflare Workers er ekkert framfylgt hámark á stærð svarmeginmáls, en hver einangruð keyrslueining hefur 128 MB minni og leyfileg stærð innkominnar beiðni fer eftir Cloudflare-reikningsáætlun. Stórt svar og stór vinnslugögn eru því tvö ólík verkefni.

Stórt svar þarf ekki stórt minni

Ef API býr til eða sækir stóra skrá getur stærð HTTP-svars ráðið valinu áður en verð eða svartími kemur til álita. Vercel-aðgerð sem tekur við of stóru meginmáli skilar villu; þegar stór skrá þarf að fara til notanda er önnur afhendingarleið, svo sem bein sókn úr skráageymslu, möguleg lausn. Hún færir þó afhendinguna út úr aðgerðinni og breytir því hvaða þjónusta ber kostnaðinn.

Hjá Workers þýðir óheft stærð svarmeginmáls ekki að hægt sé að hlaða hvaða skrá sem er í minni. Aðgerð sem les allt efnið inn áður en hún svarar getur rekist á minnismörkin. Streymi leyfir henni að vinna með gögn í hlutum þegar uppspretta og vinnsla styðja það. Ef verkefnið þarf hins vegar að afkóða stóra mynd eða halda umfangsmiklu gagnasafni í minni samtímis skiptir meira minnisrými Vercel máli en stærð svarsins.

Minni er líka skilgreint með ólíkum hætti. Workers-mörkin eiga við einangraða keyrslueiningu sem getur sinnt fleiri en einni beiðni. Hjá Vercel er minni úthlutað keyrslutilviki aðgerðarinnar. Því er hvorki rétt að lesa tölurnar sem minni fyrir hverja beiðni né gera ráð fyrir að sjálfgefið úthlutað minni Vercel sé allt notað af kóðanum.

CPU-tími og biðtími fara ólíkar leiðir inn á reikninginn

Báðar leiðir greina á milli virkrar örgjörvavinnu og biðar eftir ytri þjónustu. Fyrir aðgerð sem sannvottar beiðni og bíður síðan eftir gagnagrunni getur heildartíminn verið miklu lengri en CPU-tíminn. Workers rukkar greidda notkun eftir beiðnum og CPU-tíma, án gjalds fyrir sjálfa keyrslulengdina.

Vercel Fluid Compute tekur einnig mið af virkum CPU-tíma, en gjald fyrir úthlutað minni safnast á meðan keyrslutilvik sinnir beiðnum, líka meðan það bíður eftir gagnagrunni eða öðru I/O. Fleiri samhliða beiðnir geta samnýtt tilvikið og þar með minnistímann. Samanburður sem margfaldar lengd hverrar beiðni með minni hennar er því aðeins skýrt afmörkuð reikniforsenda, ekki spá um raunverulegan Vercel-reikning.

Keyrslumörk skipta sömuleiðis máli fyrir þunga vinnslu. Á greiddri Workers-leið er sjálfgefið CPU-hámark fyrir HTTP-beiðni styttra en hægt er að stilla það hærra innan skráðra marka. Vercel setur hins vegar hámark á heildarlengd aðgerðar, þar sem vinnsla og bið teljast saman. Hvor takmörkunin verður ráðandi fer því eftir því hvort aðgerðin reiknar samfellt eða bíður lengi eftir öðrum kerfum.

Svæði aðgerðarinnar þarf að passa við gagnagrunninn

Fyrir API sem þjónar Íslandi er stysta leið notandans að aðgerðinni ekki endilega stysta leiðin að fullbúnu svari. Ef aðgerðin sækir gögn í gagnagrunn í öðru landi geta endurteknar ferðir þangað ráðið meiri tíma en fyrsta tengingin frá notandanum. Þetta á sérstaklega við þegar ein beiðni kallar á margar fyrirspurnir í röð.

Workers keyrir sjálfgefið nærri staðnum þar sem beiðni berst. Staðsetningarstillingar Cloudflare bjóða einnig Smart Placement, sem metur hvort betra sé að færa keyrsluna, og vísbendingu um svæði eða bakenda þegar staðsetning hans er þekkt. Vercel-aðgerð keyrir á skilgreindu svæði sem teymi getur breytt. Íslenskt teymi með gagnagrunn í Evrópu þarf því að bera saman alla leiðina frá notanda, gegnum aðgerðina og að gagnagrunninum, ekki aðeins landfræðilega nálægð við Ísland.

Verðið ræðst af mismunandi mælieiningum

Gjaldskrá Cloudflare Workers setur lágmark greiddu leiðarinnar við 5 Bandaríkjadali á mánuði. Innifaldar eru 10 milljón beiðnir og 30 milljón CPU-millisekúndur á mánuði; umfram það bætast við 0,30 dalir fyrir hverja milljón beiðna og 0,02 dalir fyrir hverja milljón CPU-millisekúndna. Workers ber ekki sérstakt gjald fyrir gagnaútflutning eða bandbreidd, en tengd geymsla eða aðrar þjónustur geta haft eigin gjöld.

Verðskrá Vercel fyrir Fluid Compute skiptir Pro-notkun í köll, virkan CPU-tíma og úthlutaðan minnistíma. Fyrir Dublin eru einingarverðin 0,168 dalir á CPU-klukkustund, 0,0139 dalir á GB-klukkustund minnis og 0,60 dalir á hverja milljón kalla. CPU- og minnisverð breytist eftir svæði. Mánaðarleg Pro-inneign getur lækkað gjaldfærða notkun; áskrift og aðrir liðir þjónustunnar eru ekki hluti af þessum einingarverðum.

Þrjú skilyrt dæmi sýna hvar munurinn liggur

Dæmin hér eru reiknuð út frá birtum einingarverðum, ekki mælingar á hraða eða raunreikningum. Öll Vercel-dæmin gera ráð fyrir Pro-notkun í Dublin, 2 GB úthlutuðu minni, einni beiðni í einu á hverju keyrslutilviki og engum viðbótartíma utan þess sem tilgreindur er. Þau sýna notkunargjöld fyrir inneign, áskrift og aðra þjónustu. Samhliða keyrsla getur minnkað minnistímann sem fellur á hverja beiðni.

API sem bíður eftir gögnum: Gerum ráð fyrir tveimur milljónum beiðna á mánuði, 5 ms CPU-vinnu og hálfrar sekúndu heildartíma fyrir hverja beiðni. Workers notar þá 10 milljón CPU-millisekúndur og rúmast innan greiddu lágmarksleiðarinnar, samtals 5 dalir. Hjá Vercel gefa sömu forsendur um 2,78 CPU-klukkustundir, 555,56 GB-klukkustundir minnis og tvær milljónir kalla. Það jafngildir um 0,47 dölum fyrir CPU, 7,72 fyrir minni og 1,20 fyrir köll, eða 9,39 dölum í einfölduðum notkunargjöldum. Biðin gerir minnisliðinn stærstan þótt örgjörvavinnan sé stutt.

Örstutt jaðaraðgerð: Gerum ráð fyrir 20 milljónum beiðna, 1 ms CPU-vinnu og 10 ms heildartíma í hvert sinn. Workers notar 20 milljón CPU-millisekúndur, en beiðnir umfram innifalið magn bæta 3 dölum við lágmarkið; niðurstaðan er 8 dalir. Einfaldaða Vercel-dæmið gefur um 0,93 dali fyrir CPU, 1,54 fyrir minni og 12 fyrir köll, samtals 14,48 dali. Hér vegur fjöldi kalla mest. Vercel-útreikningurinn á við Node.js-aðgerð á Fluid Compute og felur ekki í sér sérstakt mat á Edge-keyrsluumhverfi.

Stærri Node.js-aðgerð: Hugsum okkur 100 þúsund köll, 2 sekúndur af CPU-vinnu og 5 sekúndna heildartíma í hvert sinn. Ef vinnslan þarf um 1 GB vinnsluminni fer hún yfir mörk Workers, óháð því hversu hagstætt reikningslíkanið væri. Með sjálfgefnu minni Vercel verða reiknaðir liðir um 9,33 dalir fyrir CPU, 3,86 fyrir minni og 0,06 fyrir köll, alls 13,25 dalir fyrir inneign og áskrift. Forsendan er jafnframt að beiðnir og svör rúmist innan gagnastærðarmarkanna.

Hvaða álag ræður valinu?

Workers er sterkt val þegar kóðinn notar lítið minni, afgreiðir mörg köll eða þarf að miðla stóru svari án þess að halda því öllu í minni. Vercel Functions hentar frekar þegar aðgerðin þarf meira minni og nýtur fulls Node.js-stuðnings, svo lengi sem gagnastærð við inn- og útgang rúmast innan markanna. Fyrir gagnagrunnstengt API bætist staðsetning við: svæðið sem þjónar heildarleið beiðninnar best getur skipt meira máli en lægsta einingarverðið eitt og sér.

Lestu einnig:

Deila:

Gerstu áskrifandi að fréttabréfinu okkar

Fáðu nýjustu fréttir af Web3, gervigreind og rafmyntum beint í pósthólfið.

0