Dobrodošli u šesti deo serijala na ITNetwork.rs! Do sada smo prošli kroz monolit i mikroservise, frontend (SPA/SSR/SSG), API-je, baze, i mikroservisni dizajn. Sada ulazimo u budućnost izvršavanja koda – serverless i edge computing. Danas ćemo razjasniti: šta je serverless, kako funkcionišu edge funkcije, kada ih koristiti, i kako izbeći zamke poput hladnog starta.
Šta je Serverless?
„Serverless“ ne znači „bez servera“ – znači „bez upravljanja serverima“.
- Ti pišeš funkciju
- Cloud provajder je pokreće po potrebi
- Plaćaš samo za izvršavanje
Dva tipa serverless-a
| Tip | Primeri |
|---|---|
| FaaS (Function as a Service) | AWS Lambda, Vercel Functions, Cloudflare Workers |
| BaaS (Backend as a Service) | Firebase Auth, Supabase, PlanetScale |
Kako radi?

Nema servera. Nema scalinga. Nema patch-ova.
2. Popularni Serverless provajderi
| Provajder | Karakteristike |
|---|---|
| Vercel | Integrisano sa Next.js, edge + serverless |
| Netlify Functions | Jednostavan, do 10s izvršavanje |
| AWS Lambda | Najmoćniji, ali kompleksniji |
| Cloudflare Workers | Edge, <1ms hladni start |
| Fly.io | Serverless + VM, blizu korisnika |
Tradicionalni server vs Edge

Latencija: 150ms → 5ms
4. Praktičan primer: Serverless API sa Vercel + Prisma
Struktura projekta
serverless-todo/
├── api/
│ └── todos/
│ ├── create.ts
│ ├── list.ts
│ └── [id].ts
├── prisma/
│ └── schema.prisma
├── package.json
└── vercel.json
import type { VercelRequest, VercelResponse } from '@vercel/node';
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
export default async function handler(
req: VercelRequest,
res: VercelResponse
) {
if (req.method !== 'POST') {
return res.status(405).json({ error: 'Method not allowed' });
}
const { title } = req.body;
if (!title) {
return res.status(400).json({ error: 'Title required' });
}
const todo = await prisma.todo.create({
data: { title, completed: false }
});
res.status(201).json(todo);
}
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Todo {
id Int @id @default(autoincrement())
title String
completed Boolean @default(false)
createdAt DateTime @default(now())
}
{
"functions": {
"api/**/*.ts": {
"memory": 1024,
"maxDuration": 10
}
}
}
Deploy: vercel –prod → automatski serverless API
5. Edge funkcije – Cloudflare Workers
Primer: Autentifikacija na ivici
// workers/auth.ts
export default {
async fetch(request: Request): Promise<Response> {
const url = new URL(request.url);
if (url.pathname.startsWith('/api/protected')) {
const token = request.headers.get('Authorization');
if (!token || !verifyJWT(token)) {
return new Response('Unauthorized', { status: 401 });
}
}
return fetch(request);
}
};
Izvršava se u 150+ gradova. Latencija < 10ms.
6. Prednosti i mane Serverless-a
| + | – |
|---|---|
| Nema upravljanja serverima | Hladni start (100ms–2s) |
| Plaćaš po upotrebi | Ograničenje vremena (10s–15min) |
| Automatsko skaliranje | Vendor lock-in |
| Brzi deploy | Debug teži |
| Edge = munjevita latencija | Ograničeni resursi (128MB–10GB) |
Šta je?
Prvo pokretanje funkcije nakon neaktivnosti → inicijalizacija runtime-a.
| Provajder | Hladni start (prosek) |
|---|---|
| AWS Lambda (Node.js) | 500ms–2s |
| Vercel (Node.js) | 300ms–1s |
| Cloudflare Workers | <50ms |
| Vercel Edge | <100ms |
| Rešenje | Kako |
|---|---|
| Edge funkcije | Cloudflare, Vercel Edge |
| Provisioned Concurrency | AWS (plaćaš za „toplu“ funkciju) |
| Keep-alive ping | Cron job svakih 5 min |
| Lagan runtime | Bun, Deno, Rust |
| Slučaj | Preporuka |
|---|---|
| API za frontend | Serverless (Vercel) |
| Webhook obrada | Serverless |
| Autentifikacija, A/B testovi | Edge funkcije |
| Heavy batch obrada | NE – koristi VM/K8s |
| MVP, prototip | Serverless |
Zlatno pravilo: „Koristi serverless za event-driven, kratke, česte pozive. Za dugotrajno – koristi servere.“
9. Troškovi – stvarni primer
| Upotreba | Tradicionalni server | Serverless (Vercel) |
|---|---|---|
| 1M API poziva/mesec | 50€ (VM) | 15–25€ |
| 100K poziva/mesec | 50€ | 2–5€ |
| 0 poziva | 50€ | 0€ |
Ušteda do 90% za niske/moderate opterećenja
Dijagram: Tradicionalni vs Serverless vs Edge
Zaključak: Serverless + Edge = budućnost| Tehnologija | Kada koristiti |
|---|---|
| Vercel Serverless | Next.js API routes |
| Vercel Edge | Middleware, auth, A/B |
| Cloudflare Workers | Globalna logika, <50ms |
| AWS Lambda | Kompleksni backend |
U sedmom delu ulazimo u keširanje, performanse i skaliranje:
- Redis, CDN, HTTP keš
- Rate limiting
- Load testing
Tvoj izazov
- Napravi serverless TODO API na Vercel
- Dodaj edge middleware koji blokira IP adrese iz određene zemlje
- Uporedi latenciju: localhost vs vercel.app
- Komentariši ispod: „Da li koristiš serverless? Koji provajder?“
Autor: Dušan Antonijević – saradnik ITNetwork.rs
Hvala na čitanju! Podeli tekst sa kolegama.



