Serverless i edge computing pokreće kod blizu posjetioca, spušta se na nulu kad nikog nema i naplaćuje posao koji je stvarno urađen. To odgovara redirectima, API-jima, personalizaciji, obradi slika i malim čitanjima podataka mnogo bolje nego server koji cijelu noć stoji besposlen. Velikoj bazi i dugom PHP zahtjevu slabo odgovara, a pretvaranje da ipak odgovara čini projekte skupima.
Sadržaj
U CodeWizu taj raspored i crtamo. Cloudflare Workers za logiku na edgeu, AWS Lambda tamo gdje je ostatak sistema već na AWS-u, i KV, D1 ili R2 kad su podaci dovoljno mali da žive pored koda. Origin server, kad vam i dalje treba, ostaje dosadan i mali.
Ovo je za timove koji plaćaju kapacitet koji miruje, sajtove kojima treba drugačije ponašanje po državi ili cookieju, i proizvode koji skoče pa utihnu. Ako je svaki zahtjev teško renderovanje stranice uz veliku bazu, to ćemo reći i zadržati server.
Kod teme edge computing alati otvorenog koda su prvi izbor kada odgovaraju poslu.

Cloudflare Workers na edgeu
Worker je funkcija u JavaScriptu, TypeScriptu ili WebAssemblyju koja radi u Cloudflareovoj mreži, na istim mjestima na koja se vaši posjetioci već povezuju. Nema servera koji treba održavati i nema računa dok niko ne dolazi. Granica je model: kratko CPU vrijeme, nema lokalnog diska, i zahtjev koji treba brzo da se završi. Sve što traži fajl sistem, dugu obradu ili lokalnu bazu ostaje na originu.
Edge Computing kreće od sistema koji već radi, a ne od praznog šablona.
Gdje Worker zasluži mjesto
- Redirecti, lijepi URL-ovi i A/B usmjeravanje prije nego što zahtjev uopšte stigne do origina.
- Provjere autentikacije, geolokacije i botova na putanjama kojima ne treba cijela aplikacija.
- HTML transformacije, personalizacija po cookieju i mali JSON API-ji.
- Spajanje nekoliko poziva prema backendu, tako da browser napravi jedan zahtjev umjesto šest.
Worker koji samo odluči kuda zahtjev ide često stane u nekoliko desetina linija. Zvanična Workers dokumentacija pokriva runtime. Minimalan prolaz sa jednim ranim izlazom izgleda ovako:
Rad na temi edge computing ostaje u vašem repozitoriju i na vašoj infrastrukturi.
export default {
async fetch(request, env) {
const url = new URL(request.url);
if (url.pathname === "/health") {
return new Response("ok");
}
return fetch(request);
},
};Deploy ide preko Wranglera, tajne ostaju u okruženju Workera, a ne u repozitoriju, i staging je na zasebnoj ruti. Keš i WAF oko te rute isti su zanat kao ostatak Cloudflare zone, što smo opisali u vodiču za profesionalnu Cloudflare konfiguraciju. Worker je novi dio. Zona oko njega treba već biti uredna.
AWS Lambda i druge serverless funkcije
AWS Lambda pokrene funkciju kad se nešto desi: HTTP zahtjev kroz API Gateway ili Function URL, fajl koji sleti u bucket, poruka na redu, raspored. Odgovara kad događaj već živi na AWS-u, ili kad je posao nalet i ne želite proces koji ga čeka.
| Cloudflare Workers | AWS Lambda | Mali VPS | |
|---|---|---|---|
| Gdje radi | Stotine edge lokacija | Jedan region koji izaberete | Jedna mašina, jedno mjesto |
| Cold start | Zanemariv za uobičajene skripte | Stvaran, posebno uz velike runtimeove | Nema ga, proces je već dignut |
| Najbolji posao | Usmjeravanje, personalizacija, mali API-ji | Događaji, naleti, ljepilo između AWS servisa | Dugi zahtjevi, velike baze, PHP aplikacije |
| Trošak u mirovanju | Nula | Nula, plus sve što ostavite prikačeno | Server, svaki sat |
| Tvrda granica | CPU vrijeme i nema lokalnog diska | Timeout, memorija, concurrency | Vi vodite mašinu |
Kako Lambda ne postane iznenađenje
- Jedna funkcija, jedan posao. Handler koji uvlači cijelu aplikaciju je način da cold start potraje, a račun postane čudan.
- Memorija po onome što funkcija troši, a ne po maksimumu, jer se trajanje i memorija naplaćuju zajedno.
- Idempotentni handleri za redove i webhookove, da ponovni pokušaj ne naplati kupca dvaput i ne pošalje dva mejla.
- Logovi i granica concurrencyja, da bug ne raspe hiljade paralelnih poziva.
Lambda vodič je referenca za oblike događaja i limite. Izbor Lambde, Workera ili običnog servera ista je procjena koju koristimo kad slažemo ostatak sistema, opisana u vodiču za multi-cloud deployment. Region, egress i ko će to voditi važniji su od logotipa.

Edge storage: KV, D1 i R2
Kod na edgeu vrijedi samo ako su i podaci koji mu trebaju blizu. Cloudflare nudi tri skladišta vrlo različitog oblika, i pogrešan izbor je uobičajena greška u dizajnu.
- KV je key-value skladište, čitljivo svuda, sa upisima kojima treba trenutak da se vide širom svijeta. Odgovara konfiguraciji, feature flagovima, mapama redirecta i brzim lookupima. Ne odgovara brojaču koji mora biti tačan, niti upitu.
- D1 je SQLite na edgeu. Odgovara malim relacionim podacima koje radije pitati nego trpati u ključeve: imenik, lagani CMS, allow-list. Nije zamjena za veliki Postgres o kojem shop već zavisi.
- R2 je object storage sa S3-kompatibilnim API-jem i bez egress naknade prema internetu. Odgovara javnim medijima i exportima koje će servirati Worker ili CDN. Aplikacija i dalje odlučuje šta je javno.
Za svaku vrstu podataka biramo jedno skladište i zapišemo zašto. Worker koji na svakom zahtjevu čita KV, pa D1, pa origin, biće sporiji i skuplji od samog origina. Bindingi, a ne upisani ID-jevi naloga, drže staging i produkciju odvojeno. Isti obrazac vrijedi i kad podatke kasnije preselimo: ključ u kodu se ne mijenja, mijenja se binding.
Edge keš i personalizacija
Najjeftiniji zahtjev je onaj koji origin nikad ne vidi. Keš na edgeu i malo personalizacije često jesu cijeli projekat: HTML koji je isti za sve ostaje u kešu, a Worker mijenja samo dio koji zavisi od cookieja, države ili eksperimenta.
Obrasci koje koristimo
- Keširati anonimnu stranicu i zaobići keš za korpe, naloge i sve što nosi session cookie.
- HTML rewriting za baner, blok cijene ili prevedeni isječak, bez posebnog origina za svaku varijantu.
- Geolokacija i jezik iz zahtjeva koji Cloudflare već označi, a ne iz upita koji udara u vašu bazu.
- Stale-while-revalidate da spor origin ne postane spor sajt čim keš istekne.
Personalizacija koja mijenja cijeli HTML za svakog posjetioca poništi keš. Varirani dio držimo malim. Kad je pravi odgovor podešen origin, a ne funkcija, to i predložimo, uključujući open-source panel koji smo opisali za pristupačan produkcijski hosting.

Serverless i edge computing: troškovi
Skaliranje na nulu je stvarno, a stvaran je i račun koji prati petlju. Optimizacija troškova serverless i edge computinga počinje time da znate koji brojač radi.
- Zahtjevi i CPU vrijeme na Workersima. Funkcija koja radi na svakom assetu, uključujući slike i fontove, množi broj bez koristi. Rute treba da budu uske.
- KV čitanja i D1 upiti na vrućoj putanji. Keširati odgovor na minut često je cijela ušteda.
- Trajanje i memorija Lambde, i dodaci koje ljudi zaborave: API Gateway, NAT gatewayi, logovi i podaci koji izađu iz regiona.
- R2 operacije naspram CDN keša. Servirati isti objekat sa R2 pri svakom pregledu nepotrebno je čim ga edge može keširati.
- Poređenje sa malim serverom. Ujednačen saobraćaj na previše glasnoj funkciji umije koštati više od VPS-a. Oba broja stavimo jedno pored drugog prije nego što se obavežete.
Na nalogu uključimo upozorenja za naplatu i budžet za Worker ili funkciju. Lansiranje koje uspije ne treba da bude ono što iznenadi račun.
Kad je server bolji alat
Serverless i edge computing je sloj, a ne vjera. Običan server zadržimo, ili ga predložimo, kad posao ne staje u limite.
- WordPress, WooCommerce, Laravel i druge PHP aplikacije koje očekuju proces, fajl sistem i lokalnu bazu.
- Zahtjevi koji traju mnogo sekundi: izvještaji, importi, video, veliki PDF.
- Relaciona baza sa pravim transakcijama, joinovima i backupom kojem već vjerujete.
- Pozadinski poslovi koji su jednostavniji kao queue worker pored aplikacije nego kao mreža funkcija.
Koristan dizajn je obično mješavina. Origin renderuje ili čuva. Edge kešira, usmjerava, provjerava putanju i drži ono malo stanje koje mora biti brzo svuda. Cijeli monolit u funkciju rijetko je jeftina opcija kakvom zvuči na slajdu. Zato u planu stoji i šta namjerno ostaje na serveru, ne samo šta ide na edge.
Serverless i edge computing: česte greške
- Worker na
/*koji radi i za statičke fajlove i tiho preuzme račun. - Tajne u repozitoriju, ili jedno okruženje koje dijele staging i produkcija.
- KV korišten kao baza, sa vrijednošću koja se prepisuje na svaki zahtjev i pretpostavkom da je upis odmah vidljiv širom svijeta.
- Nema idempotentnosti na Lambdi iza reda, pa ponavljanja dupliraju narudžbe ili mejlove.
- Logovi toliko opširni da njihovo čuvanje košta više od funkcije.
- Nema puta za povratak. Loš deploy Workera je trenutan i globalan, što je divno dok nije pogrešan.
Kako radimo
- Upoznavanje: šta zahtjev danas radi, gdje su korisnici i koji je posao usmjeravanje, a koji prava logika aplikacije.
- Plan: Worker, Lambda ili server, koji podaci smiju živjeti na edgeu i kako bi mjesečni brojači trebalo da izgledaju.
- Izgradnja: funkcija, bindingi ili IAM, rute i staging koji nije produkcija.
- Test: putanje koje moraju ostati u kešu, putanje koje ne smiju, i pad origina dok edge i dalje odgovara.
- Puštanje: prvo uska ruta, pa šira, uz povratak u jednom koraku.
- Praćenje: broj zahtjeva, greške i prvi računi, pa sužavanje ruta i keša.
Zašto CodeWiz
- Pišemo i aplikaciju. Laravel, Node.js, WordPress i shopovi, pa je edge složen oko onoga kako kod zaista radi.
- Prvo open-source, i prenosivo tamo gdje je bitno. Standardni API-ji, bez frameworka koji ne možete napustiti.
- Iskreni o uklapanju. Ako je mali server jeftiniji i jednostavniji, to je prijedlog.
- Performanse u istim rukama kao ostatak stacka. Više o CodeWizu.
- Pristupačne cijene. Osnovani u Banjoj Luci 2023, radimo udaljeno sa klijentima lokalno i u inostranstvu.
Često postavljana pitanja
Koliko košta serverless i edge computing?
Worker koji radi redirecte i pravila keša mali je projekat. Nekoliko funkcija, edge storage i pažljiva selidba API-ja traju duže. Procjenu dajemo kad vidimo saobraćaj i kod. Tekući trošak prati upotrebu, i prije izbora uporedimo ga sa malim serverom.
Cloudflare Workers ili AWS Lambda?
Workers kad logika treba da sjedi ispred svakog posjetioca, pored keša. Lambda kad je okidač već na AWS-u: bucket, red, raspored. Mnogi sistemi koriste oba, a neki ni jedno. Tabela iznad je odluka, a ne sklonost brendu.
Hoće li cold start usporiti sajt?
Na Workersima, ne na način koji posjetilac primijeti kod običnih skripti. Na Lambdi je cold start stvaran za teže runtimeove i vidi se na rijetkim putanjama. Te funkcije držimo malim i ne stavljamo cold start na checkout ako je topli proces jednostavniji.
Može li WordPress da radi na Workersima?
Ne kao mjesto gdje se izvršavaju PHP i MySQL. Workers sjedi ispred: keš, redirecti, baner po državi, kapija na putanji. WordPress origin ostaje na serveru. Ta podjela je obično ono što ste i htjeli od „edgea”.
Jesu li KV ili D1 zamjena za moju bazu?
KV zamjenjuje lookup, ne bazu. D1 zamjenjuje mali skup podataka oblika SQLitea. Narudžbe, zalihe i sve što ima transakcije ostaje na Postgresu ili MySQL-u. Nećemo ih seliti da arhitektura izgleda novije.
Šta ako deploy pokvari produkciju?
I Workers i Lambda deployaju brzo, što ide u oba smjera. Prvo šaljemo na staging rutu, čuvamo prethodnu verziju i vraćamo se u jednom koraku. Globalna promjena nikad nije prvi put da je kod radio. Rollback je dio isporuke, a ne nešto što se sjetimo kad sajt već stoji.
Spremni da kod stavimo na edge?
Recite nam šta je sporo, šta miruje ili šta je predaleko od vaših korisnika. Reći ćemo da li to pripada ispred origina, pored njega, ili nikako. Javite nam se da krenemo, ili pogledajte ostale naše usluge razvoja.