Webfejlesztés
Vercel
A Vercel felügyelt platform: git pushból épít és telepít, áganként előnézeti környezetet ad, a szerveroldali kódot pedig függvényként futtatja.
A Vercel felügyelt platform, amelyre a projekt a git előzményéhez kötve épül és települ: minden push új deployt indít, a nem produkciós ágak pedig saját előnézeti környezetet kapnak. A platform felismeri a használt keretrendszert, és magától alkalmazza a hozzá tartozó build- és futtatási beállításokat.
A kiszolgálás a platform saját hálózatán keresztül történik: a statikus kimenet a cache-rétegből megy ki, a szerveroldali kód pedig függvényként fut, amely kérésre indul és a forgalomhoz igazodva skálázódik.
A deploy modell
A leggyakoribb deployforrás egy csatolt git repó: minden commit és pull request új deployt indít, a produkciós ágra (jellemzően main) kerülő változás pedig produkciós deployt hoz létre. A platform három alapértelmezett környezetet tart nyilván: Local, Preview és Production, és minden deploy egyedi URL-t kap, amelyet meg lehet osztani ellenőrzésre. Deploy készülhet a CLI-vel (vercel előnézeti, vercel --prod produkciós módban), a dashboardról commit vagy ág megadásával, Deploy Hook URL meghívásával vagy a REST API-ból is; egy hibás kiadás újraépítés nélkül visszaállítható egy korábbi deployra.
- A támogatott git szolgáltatók köre a GitHub, a GitLab, a Bitbucket, az Origin és az Azure DevOps Pipelines.
- Az előnézeti környezetbe tetszőleges ág telepíthető, a produkciós ág pedig átállítható a
mainhelyett másra.
Nálunk a deployok egy része git repóból, ágankénti előnézeti környezettel fut ezen a platformon, ez az oldal viszont klasszikus tárhelyről megy ki, ugyanabból a statikus buildből; a Git repó mindkét esetben ugyanaz.
Build és keretrendszer-felismerés
A build minden deploynál lefut, tiszta és elkülönített környezetben. A népszerű keretrendszereket a platform automatikusan felismeri, és kipótolja a build paranccsal, a kimeneti könyvtárral és a telepítési paranccsal kapcsolatos beállításokat, amelyek a projekt beállításaiban felülírhatók.
- Tisztán statikus oldalnál nincs build lépés: a preset Other, a build parancs üresen marad, a kimeneti könyvtár felülírható.
- A repót a build alapértelmezés szerint sekély klónnal (
git clone --depth=10) húzza be. - Monorepóban azok a projektek kihagyhatók, amelyeknek nem változott a fájlja és a függősége.
Függvények és futtatókörnyezetek
A Vercel Functions szerveroldali kód: minden kérés új invokáció, a forgalom szerint skálázódik, és amikor nincs kérés, nullára csökken. Statikus fájl kiszolgálásához nem kell függvény. A hivatalos futtatókörnyezetek köre a Node.js, a Bun, a Python, a Go, a Ruby, a Rust, a Wasm és az Edge runtime, amely a V8 motorra épül és konténer nélkül fut; egyedi OCI image is telepíthető.
Ez a felállás kevesebb saját üzemeltetést kíván, mint amikor ugyanezt a réteget Docker konténerekből és egy nginx proxyból építjük fel magunknak.
- A függvények alapértelmezés szerint egyetlen régióban futnak (
iad1), és a régió beállítható; több régiót a Pro és az Enterprise csomag enged. - A fluid compute ugyanazt a példányt használja újra a következő kérésnél, és egy példányon belül párhuzamos invokációkat is enged.
- A futásidő felső korlátja beállítható, és a platform a hosszabb invokációt megszakítja.
Környezeti változók és korlátok
A környezeti változó kulcs-érték pár, amely a forráskódon kívül él, és környezetenként más értéket vehet fel; az értékek titkosítva tárolódnak, de a projekthez hozzáférő felhasználók láthatják őket. Az erőforrás-korlátok csomagfüggők, és a dokumentációban nyilvánosak.
- Egy változó Config vagy Secret típusú: a Secret mentés után csak írható, és egy deploy összes változója együtt legfeljebb 64 KB lehet.
- A módosítás csak az új deployokra hat, a már megépültekre nem.
- A build lépés deployonként 45 perc, a napi deployok száma és az egyidejű deployok száma pedig csomagfüggő.
- A függvények alapértelmezett maximális futásideje 300 másodperc, a Pro és az Enterprise csomagon 800 másodpercig emelhető; a memória 2 GB, illetve 4 GB, a tömörítetlen csomag pedig 250 MB, Pythonnál 500 MB.
- A Build Output API és a
vercel.jsona platform saját formátuma, ezért az ezekre épülő megoldás kevésbé hordozható más szolgáltató felé; mivel a függvény egy régióban fut, érdemes az adatforráshoz közeli régiót választani.
Tovább olvasás
A CyberElectrónál a Vercel az egyik deploycél: git repóból, ágankénti előnézettel telepítünk rá projekteket, miközben ez az oldal klasszikus tárhelyről szolgálja ki ugyanazt a statikus buildet.