spinny:~/writing $ vim serverless-aws-lambda-vercel-cloudflare.md
1~2Serverless computing vam umoznuje spoustet kod bez spravy serveru. Napisete funkce, nasadite je a platforma se postara o skalovani, dostupnost a infrastrukturu. V roce 2026 dominuji serverless krajine tri platformy: **AWS Lambda**, **Vercel Serverless Functions** a **Cloudflare Workers**. Kazda ma jine silne stranky a kompromisy.3~4V tomto clanku je porovnavame s realnymi priklady, uvahy o vykonu a analyzou cen.5~6## Jak Serverless funguje7~8```mermaid9graph LR10 User -- "HTTP Request" --> Gateway[API Gateway / Edge]11 Gateway -- "Invoke" --> Function[Serverless Function]12 Function -- "Response" --> User13 Function -- "Read/Write" --> DB[(Database)]14```15~16Nasadite funkci. Kdyz prijde pozadavek, platforma:171. Spusti prostredi pro vykonavani (nebo znovu pouzije jiz zahrate)182. Spusti vasi funkci193. Vrati odpoved204. Skaluje na nulu pri necinnosti (neplatite za cas necinnosti)21~22## Prehled platforem23~24### AWS Lambda25~26Originalni serverless platforma (spustena v roce 2014). Nejzralejsi a nejbohatsi na funkce, s hlubokou integraci do ekosystemu AWS.27~28```javascript29// AWS Lambda handler30export const handler = async (event) => {31 const body = JSON.parse(event.body);32~33 const result = await processData(body);34~35 return {36 statusCode: 200,37 headers: { 'Content-Type': 'application/json' },38 body: JSON.stringify(result),39 };40};41```42~43### Vercel Serverless Functions44~45Tesne integrovano s Next.js a workflow nasazovani frontendu. Funkce se nasazuji spolecne s vasim frontendem bez jakekoli konfigurace.46~47```typescript48// app/api/hello/route.ts (Next.js App Router)49import { NextResponse } from 'next/server';50~51export async function GET(request: Request) {52 const { searchParams } = new URL(request.url);53 const name = searchParams.get('name') || 'World';54~55 return NextResponse.json({ message: `Hello, ${name}!` });56}57```58~59### Cloudflare Workers60~61Bezi na edge siti Cloudflare ve vice nez 300 mestech po celem svete. Pouziva V8 engine (stejny jako Chrome) misto Node.js, coz znamena extremne rychle cold starty.62~63```javascript64// Cloudflare Worker65export default {66 async fetch(request, env) {67 const url = new URL(request.url);68 const name = url.searchParams.get('name') || 'World';69~70 return new Response(71 JSON.stringify({ message: `Hello, ${name}!` }),72 { headers: { 'Content-Type': 'application/json' } }73 );74 },75};76```77~78## Srovnani funkci79~80| Funkce | AWS Lambda | Vercel Functions | Cloudflare Workers |81|---------|-----------|-----------------|-------------------|82| **Runtime** | Node.js, Python, Go, Rust, Java, .NET | Node.js, Python, Go, Ruby | V8 Isolates (JS/TS, Rust via WASM) |83| **Max. doba vykonavani** | 15 minut | 60s (Hobby), 300s (Pro) | 30s (zdarma), 15min (placeno) |84| **Pamet** | 128MB - 10GB | 1024MB - 3008MB | 128MB |85| **Cold start** | 100-500ms | 100-300ms | < 5ms |86| **Misto nasazeni** | Jeden region (nebo multi s usilim) | Vice regionu | 300+ edge lokaci |87| **Max. payload** | 6MB (synchronni), 256KB (asynchronni) | 4.5MB | 100MB |88| **Vestavene uloziste** | Ne (pouzijte DynamoDB, S3) | Ne (pouzijte externi DB) | KV, D1 (SQLite), R2 (S3 kompatibilni) |89| **Cenovy model** | Za pozadavek + doba trvani | Zahrnuto v planu | Za pozadavek + doba trvani |90| **Bezplatna uroven** | 1M pozadavku/mesic | 100K/mesic (Hobby) | 100K pozadavku/den |91~92## Cold Starts93~94Cold start je cas potrebny k inicializaci nove instance funkce. Toto je nejvetsi vykonnostni problem u serverless.95~96```mermaid97graph LR98 subgraph "Cold Start"99 A[Request] --> B[Provision Environment]100 B --> C[Load Code]101 C --> D[Initialize Runtime]102 D --> E[Execute Function]103 end104~105 subgraph "Warm Invocation"106 F[Request] --> G[Execute Function]107 end108```109~110| Platforma | Typicky Cold Start | Proc |111|----------|-------------------|-----|112| **Cloudflare Workers** | < 5ms | V8 izolace, neni potreba plneho runtime |113| **Vercel Functions** | 100-300ms | Node.js runtime na edge nebo regionalne |114| **AWS Lambda** | 100-500ms | Uplna inicializace kontejneru |115| **AWS Lambda (Java)** | 1-5 sekund | Rezijni naklady startu JVM |116~117Cloudflare Workers vyhravaiji cold starty s obrovskym naskokem, protoze pouzivaji V8 izolace misto kontejneru.118~119## Srovnani cen120~121### Bezplatna uroven122~123| Platforma | Bezplatne pozadavky | Bezplatny vypocet |124|----------|--------------|--------------|125| **AWS Lambda** | 1M/mesic | 400 000 GB-sekund |126| **Vercel** | 100K/mesic | Zahrnuto v planu Hobby |127| **Cloudflare Workers** | 100K/den (~3M/mesic) | 10ms CPU na vyvolani |128~129### Ve velkém (10M pozadavku/mesic, prumerna doba 50ms)130~131| Platforma | Odhadovane mesicni naklady |132|----------|----------------------|133| **AWS Lambda** | ~$2,50 (pozadavky) + ~$4,15 (vypocet) = **~$6,65** |134| **Vercel** | **$20/mesic** (plan Pro, zahrnuje funkce) |135| **Cloudflare Workers** | **$5/mesic** (placeny plan, zahrnuje 10M pozadavku) |136~137Pro vetsinu pripadu pouziti je Cloudflare Workers nejlevnejsi. Cenik Vercel je jednoduchy, ale zahrnuje celou platformu (hosting, CDN, analytika). AWS Lambda ma nejpodrobnejsi cenik.138~139## Realne pripady pouziti140~141### AWS Lambda: Nejlepsi pro142~143- **Slozite backendove procesy** - step functions, architektury rizene udalostmi144- **Integraci se sluzbami AWS** - S3 triggery, DynamoDB streamy, SQS fronty145- **Dlouho bezici ulohy** - az 15 minut doby vykonavani146- **Vicejazycne tymy** - podporuje nejsirsi skalu runtime147~148```mermaid149graph TD150 S3[S3 Upload] --> Lambda1[Process Image]151 Lambda1 --> SQS[SQS Queue]152 SQS --> Lambda2[Generate Thumbnails]153 Lambda2 --> DDB[DynamoDB]154 DDB --> Lambda3[Send Notification]155 Lambda3 --> SNS[SNS / Email]156```157~158### Vercel Functions: Nejlepsi pro159~160- **Aplikace Next.js** - API routy bez konfigurace161- **Tymy zamerene na frontend** - nasazeni frontendu a backendu spolecne162- **Rychle prototypovani** - git push pro nasazeni163- **Architektury Jamstack** - staticky frontend + serverless API164~165```typescript166// app/api/subscribe/route.ts167import { NextResponse } from 'next/server';168~169export async function POST(request: Request) {170 const { email } = await request.json();171~172 // Validate173 if (!email || !email.includes('@')) {174 return NextResponse.json(175 { error: 'Invalid email' },176 { status: 400 }177 );178 }179~180 // Save to database181 await db.subscribers.create({ email });182~183 return NextResponse.json({ success: true });184}185```186~187### Cloudflare Workers: Nejlepsi pro188~189- **API s nizkou latenci** - kod bezi na 300+ lokacich po celem svete190- **Edge computing** - transformace odpovedi, A/B testovani, personalizace191- **API s vysokym objemem** - nejlevnejsi ve velkém se stedy bezplatnou urovni192- **Globalni aplikace** - data blizko uzivatelu s KV a D1193~194```javascript195// Edge-side A/B test196export default {197 async fetch(request, env) {198 const url = new URL(request.url);199~200 // Assign user to variant201 const cookie = request.headers.get('Cookie') || '';202 let variant = cookie.includes('ab=b') ? 'b' : 'a';203~204 if (!cookie.includes('ab=')) {205 variant = Math.random() < 0.5 ? 'a' : 'b';206 }207~208 // Fetch the appropriate version209 const response = await fetch(`${url.origin}/variants/${variant}`);210 const newResponse = new Response(response.body, response);211~212 // Set cookie for consistent experience213 newResponse.headers.set('Set-Cookie', `ab=${variant}; Path=/; Max-Age=86400`);214~215 return newResponse;216 },217};218```219~220## Kdy zvolit kterou221~222### Zvolte AWS Lambda pokud:223- Jste jiz investovali do ekosystemu AWS224- Potrebujete dlouho bezici funkce (az 15 minut)225- Potrebujete slozite architektury rizene udalostmi226- Potrebujete runtime krome JavaScriptu (Python, Go, Rust, Java)227~228### Zvolte Vercel Functions pokud:229- Stavite s Next.js nebo frontendovym frameworkem230- Chcete nejjednodussi zkusenost s nasazenim (git push)231- Vas tym je zamereny na frontend232- Chcete hosting + funkce + CDN na jedne platforme233~234### Zvolte Cloudflare Workers pokud:235- Potrebujete co nejnizsi latenci globalne236- Chcete nejlevnejsi moznost ve velkém237- Potrebujete schopnosti edge computingu238- Cas cold startu je kriticky pro vas pripad pouziti239~240## Lze je kombinovat?241~242Rozhodne. Bezna architektura:243~244```mermaid245graph TD246 User --> CF[Cloudflare Workers\nEdge caching, routing, A/B tests]247 CF --> Vercel[Vercel\nNext.js frontend + API routes]248 Vercel --> Lambda[AWS Lambda\nHeavy processing, background jobs]249 Lambda --> S3[S3 Storage]250 Lambda --> DB[(Database)]251```252~253- **Cloudflare Workers**: edge smerovani, cachovani, bezpecnost254- **Vercel Functions**: frontendove API routy, SSR255- **AWS Lambda**: tezke backendove zpracovani, planovane ulohy, pipeline udalosti256~257## Zaver258~259Serverless vyrazne dozral. V roce 2026 zavisi volba mezi AWS Lambda, Vercel Functions a Cloudflare Workers na vasem stacku a prioritach:260~261- **Nejjednodussi zkusenost vyvojare**: Vercel262- **Nejvykonnejsi a nejflexibilnejsi**: AWS Lambda263- **Nejlepsi vykon a ceny**: Cloudflare Workers264~265Vsechny tri jsou pripraveny na produkci a overeny v boji. Zacnete s tou, ktera odpovida vasemu soucasnemu stacku, a rozsirojte se podle rustu vasich potreb.266~
NORMAL · serverless-aws-lambda-vercel-cloudflare.md [readonly]266 lines · :q to close