spinny:~/writing $ vim serverless-aws-lambda-vercel-cloudflare.md
1~2Serverless bilisim, sunuculari yonetmeden kod calistirmanizi saglar. Fonksiyonlar yazarsiniz, deploy edersiniz ve platform olceklendirme, kullanilabilirlik ve altyapiyi yonetir. 2026 da uc platform serverless alaninda hakim: **AWS Lambda**, **Vercel Serverless Functions** ve **Cloudflare Workers**. Her birinin farkli gucleri ve odunleri vardir.3~4Bu makalede, gercek ornekler, performans degerlendirmeleri ve fiyat analizleriyle bunlari karsilastiriyoruz.5~6## Serverless Nasil Calisir7~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~16Bir fonksiyon deploy edersiniz. Bir istek geldiginde platform:171. Bir yurutme ortami baslatir (veya zaten isik bir ortami yeniden kullanir)182. Fonksiyonunuzu calistirir193. Yaniti dondurur204. Bosta kaldikta sifira olceklenir (bos zaman icin odeme yapmazsiniz)21~22## Platform Genel Bakisi23~24### AWS Lambda25~26Orijinal serverless platform (2014 te lansman). En olgun ve ozellik bakimindan zengin, AWS ekosistemiyle derin entegrasyon.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~45Next.js ve frontend deploy is akisiyla sikica entegre. Fonksiyonlar frontend inizle birlikte sifir yapilandirmayla deploy edilir.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~61Dunya genelinde 300 den fazla sehirde Cloudflare in edge aginda calisir. Node.js yerine V8 motorunu (Chrome ile ayni) kullanir, bu da son derece hizli cold start anlamina gelir.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## Ozellik Karsilastirmasi79~80| Ozellik | 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| **Maks yurutme suresi** | 15 dakika | 60s (Hobby), 300s (Pro) | 30s (ucretsiz), 15dk (ucretli) |84| **Bellek** | 128MB - 10GB | 1024MB - 3008MB | 128MB |85| **Cold start** | 100-500ms | 100-300ms | < 5ms |86| **Deploy konumu** | Tek bolge (veya caba ile coklu) | Birden fazla bolge | 300+ edge konumu |87| **Maks payload** | 6MB (senkron), 256KB (asenkron) | 4.5MB | 100MB |88| **Dahili depolama** | Hayir (DynamoDB, S3 kullanin) | Hayir (harici DB kullanin) | KV, D1 (SQLite), R2 (S3 uyumlu) |89| **Fiyat modeli** | Istek basina + sure | Plana dahil | Istek basina + sure |90| **Ucretsiz katman** | 1M istek/ay | 100K/ay (Hobby) | 100K istek/gun |91~92## Cold Start93~94Cold start, yeni bir fonksiyon ornegini baslatmak icin gereken suredir. Bu, serverless ile ilgili en buyuk performans endisesidir.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| Platform | Tipik Cold Start | Neden |111|----------|-------------------|-----|112| **Cloudflare Workers** | < 5ms | V8 izolasyonlari, tam runtime gerekli degil |113| **Vercel Functions** | 100-300ms | Edge veya bolgesel Node.js runtime |114| **AWS Lambda** | 100-500ms | Tam konteyner baslatma |115| **AWS Lambda (Java)** | 1-5 saniye | JVM baslangic yuku |116~117Cloudflare Workers, konteynerler yerine V8 izolasyonlari kullandigi icin cold start larda buyuk farkla kazanir.118~119## Fiyat Karsilastirmasi120~121### Ucretsiz Katman122~123| Platform | Ucretsiz Istekler | Ucretsiz Bilisim |124|----------|--------------|--------------|125| **AWS Lambda** | 1M/ay | 400.000 GB-saniye |126| **Vercel** | 100K/ay | Hobby planina dahil |127| **Cloudflare Workers** | 100K/gun (~3M/ay) | Cagri basina 10ms CPU |128~129### Buyuk Olcekte (10M istek/ay, ortalama 50ms sure)130~131| Platform | Tahmini Aylik Maliyet |132|----------|----------------------|133| **AWS Lambda** | ~$2,50 (istekler) + ~$4,15 (bilisim) = **~$6,65** |134| **Vercel** | **$20/ay** (Pro plan, fonksiyonlar dahil) |135| **Cloudflare Workers** | **$5/ay** (ucretli plan, 10M istek dahil) |136~137Cogu kullanim senaryosu icin Cloudflare Workers en ucuzudur. Vercel in fiyatlandirmasi basittir ancak tum platformu (barindirma, CDN, analitik) icerir. AWS Lambda en ayrintili fiyatlandirmaya sahiptir.138~139## Gercek Dunya Kullanim Senaryolari140~141### AWS Lambda: En Iyi Olan142~143- **Karmasik backend is akislari** - step functions, olay tabanli mimariler144- **AWS hizmetleriyle entegrasyon** - S3 tetikleyicileri, DynamoDB akislari, SQS kuyruklari145- **Uzun sureli gorevler** - 15 dakikaya kadar yurutme suresi146- **Cok dilli ekipler** - en genis runtime yelpazesini destekler147~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: En Iyi Olan159~160- **Next.js uygulamalari** - sifir yapilandirma API rotalari161- **Frontend odakli ekipler** - frontend ve backend i birlikte deploy edin162- **Hizli prototipleme** - git push ile deploy163- **Jamstack mimarileri** - statik 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: En Iyi Olan188~189- **Dusuk gecikmeli API ler** - kod dunya genelinde 300 den fazla konumda calisir190- **Edge computing** - yanitlari donusturme, A/B testi, kisisellestirme191- **Yuksek hacimli API ler** - comert ucretsiz katmanla buyuk olcekte en ucuz192- **Kuresel uygulamalar** - KV ve D1 ile kullanicilara yakin veri193~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## Hangisini Ne Zaman Secmeli221~222### AWS Lambda yi secin eger:223- Zaten AWS ekosistemine yatirim yaptiysamz224- Uzun sureli fonksiyonlara ihtiyaciniz varsa (15 dakikaya kadar)225- Karmasik olay tabanli mimarilere ihtiyaciniz varsa226- JavaScript disinda runtime lara ihtiyaciniz varsa (Python, Go, Rust, Java)227~228### Vercel Functions i secin eger:229- Next.js veya bir frontend cercevesiyle gelistiriyorsaniz230- En basit deploy deneyimini istiyorsaniz (git push)231- Ekibiniz frontend odakli ise232- Tek bir platformda barindirma + fonksiyonlar + CDN istiyorsaniz233~234### Cloudflare Workers i secin eger:235- Kuresel olarak mumkun olan en dusuk gecikmeye ihtiyaciniz varsa236- Buyuk olcekte en ucuz secenegi istiyorsaniz237- Edge computing yeteneklerine ihtiyaciniz varsa238- Cold start suresi kullanim durumunuz icin kritikse239~240## Bunlari Birlestirebilir misiniz?241~242Kesinlikle. Yaygin bir mimari: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 yonlendirme, onbellekleme, guvenlik254- **Vercel Functions**: frontend API rotalari, SSR255- **AWS Lambda**: agir backend isleme, zamanlanmis gorevler, olay boru hatlari256~257## Sonuc258~259Serverless onemli olcude olgunlasti. 2026 da, AWS Lambda, Vercel Functions ve Cloudflare Workers arasindaki secim stack inize ve onceliklerinize baglidir:260~261- **En basit gelistirici deneyimi**: Vercel262- **En guclu ve esnek**: AWS Lambda263- **En iyi performans ve fiyatlandirma**: Cloudflare Workers264~265Ucu de uretim ortamina hazir ve savas alaninda test edilmistir. Mevcut stack inize uyan ile baslayin ve ihtiyaclariniz buyudukce genisletin.266~
NORMAL · serverless-aws-lambda-vercel-cloudflare.md [readonly]266 lines · :q to close