spinny:~/writing $ vim serverless-aws-lambda-vercel-cloudflare.md
1~2מחשוב serverless מאפשר לכם להריץ קוד בלי לנהל שרתים. אתם כותבים פונקציות, מפרסים אותן, והפלטפורמה מטפלת בסקלינג, זמינות ותשתית. ב-2026, שלוש פלטפורמות שולטות בנוף ה-serverless: **AWS Lambda**, **Vercel Serverless Functions** ו-**Cloudflare Workers**. לכל אחת חוזקות ופשרות שונים.3~4במאמר זה, אנו משווים ביניהן עם דוגמאות אמיתיות, שיקולי ביצועים וניתוחי תמחור.5~6## איך Serverless עובד7~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~16אתם מפרסים פונקציה. כשבקשה מגיעה, הפלטפורמה:171. מפעילה סביבת הרצה (או משתמשת מחדש באחת שכבר חמה)182. מריצה את הפונקציה שלכם193. מחזירה את התגובה204. מצטמצמת לאפס כשאינה פעילה (אתם לא משלמים על זמן סרק)21~22## סקירת פלטפורמות23~24### AWS Lambda25~26פלטפורמת ה-serverless המקורית (הושקה ב-2014). הבשלה והעשירה ביותר בתכונות, עם אינטגרציה עמוקה באקוסיסטם של 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~45משולב בצורה הדוקה עם Next.js ותהליך הפרסום של הפרונטאנד. הפונקציות מתפרסמות יחד עם הפרונטאנד שלכם ללא כל הגדרה.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~61רץ על רשת ה-edge של Cloudflare ביותר מ-300 ערים ברחבי העולם. משתמש במנוע V8 (אותו מנוע כמו Chrome) במקום Node.js, מה שאומר cold starts מהירים במיוחד.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## השוואת תכונות79~80| תכונה | 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| **זמן ריצה מרבי** | 15 דקות | 60 שניות (Hobby), 300 שניות (Pro) | 30 שניות (חינם), 15 דקות (בתשלום) |84| **זיכרון** | 128MB - 10GB | 1024MB - 3008MB | 128MB |85| **Cold start** | 100-500ms | 100-300ms | < 5ms |86| **מיקום פרסום** | אזור בודד (או מרובה עם מאמץ) | אזורים מרובים | 300+ מיקומי edge |87| **Payload מרבי** | 6MB (סינכרוני), 256KB (אסינכרוני) | 4.5MB | 100MB |88| **אחסון מובנה** | לא (השתמשו ב-DynamoDB, S3) | לא (השתמשו ב-DB חיצוני) | KV, D1 (SQLite), R2 (תואם S3) |89| **מודל תמחור** | לפי בקשה + משך | כלול בתוכנית | לפי בקשה + משך |90| **רמה חינמית** | 1M בקשות/חודש | 100K/חודש (Hobby) | 100K בקשות/יום |91~92## Cold Starts93~94Cold start הוא הזמן הנדרש לאתחל מופע פונקציה חדש. זוהי הדאגה הגדולה ביותר לביצועים ב-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| פלטפורמה | Cold Start אופייני | למה |111|----------|-------------------|-----|112| **Cloudflare Workers** | < 5ms | בידודי V8, לא צריך runtime מלא |113| **Vercel Functions** | 100-300ms | Runtime של Node.js ב-edge או אזורי |114| **AWS Lambda** | 100-500ms | אתחול קונטיינר מלא |115| **AWS Lambda (Java)** | 1-5 שניות | עלות הפעלת JVM |116~117Cloudflare Workers מנצח ב-cold starts בהפרש עצום כי הוא משתמש בבידודי V8 במקום קונטיינרים.118~119## השוואת מחירים120~121### רמה חינמית122~123| פלטפורמה | בקשות חינם | חישוב חינם |124|----------|--------------|--------------|125| **AWS Lambda** | 1M/חודש | 400,000 GB-שניות |126| **Vercel** | 100K/חודש | כלול בתוכנית Hobby |127| **Cloudflare Workers** | 100K/יום (~3M/חודש) | 10ms CPU לכל קריאה |128~129### בהיקף גדול (10M בקשות/חודש, משך ממוצע 50ms)130~131| פלטפורמה | עלות חודשית משוערת |132|----------|----------------------|133| **AWS Lambda** | ~$2.50 (בקשות) + ~$4.15 (חישוב) = **~$6.65** |134| **Vercel** | **$20/חודש** (תוכנית Pro, כולל פונקציות) |135| **Cloudflare Workers** | **$5/חודש** (תוכנית בתשלום, כולל 10M בקשות) |136~137לרוב מקרי השימוש, Cloudflare Workers הוא הזול ביותר. התמחור של Vercel פשוט אך כולל את כל הפלטפורמה (אירוח, CDN, אנליטיקס). ל-AWS Lambda יש את התמחור המפורט ביותר.138~139## מקרי שימוש אמיתיים140~141### AWS Lambda: הטוב ביותר ל142~143- **תהליכי backend מורכבים** - step functions, ארכיטקטורות מונחות אירועים144- **אינטגרציה עם שירותי AWS** - טריגרים של S3, סטרימים של DynamoDB, תורי SQS145- **משימות ארוכות טווח** - עד 15 דקות זמן ריצה146- **צוותים רב-שפתיים** - תומך במגוון הרחב ביותר של runtimes147~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: הטוב ביותר ל159~160- **אפליקציות Next.js** - נתיבי API ללא הגדרה161- **צוותים ממוקדי frontend** - פרסום frontend ו-backend יחד162- **אב-טיפוס מהיר** - git push לפרסום163- **ארכיטקטורות Jamstack** - 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: הטוב ביותר ל188~189- **APIs עם השהיה נמוכה** - הקוד רץ ב-300+ מיקומים ברחבי העולם190- **Edge computing** - שינוי תגובות, בדיקות A/B, התאמה אישית191- **APIs בנפח גבוה** - הזול ביותר בהיקף גדול עם רמה חינמית נדיבה192- **אפליקציות גלובליות** - נתונים קרובים למשתמשים עם KV ו-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## מתי לבחור באיזה221~222### בחרו ב-AWS Lambda אם:223- אתם כבר מושקעים באקוסיסטם של AWS224- אתם צריכים פונקציות ארוכות טווח (עד 15 דקות)225- אתם צריכים ארכיטקטורות מורכבות מונחות אירועים226- אתם צריכים runtimes מעבר ל-JavaScript (Python, Go, Rust, Java)227~228### בחרו ב-Vercel Functions אם:229- אתם בונים עם Next.js או framework של frontend230- אתם רוצים את חוויית הפרסום הפשוטה ביותר (git push)231- הצוות שלכם ממוקד frontend232- אתם רוצים אירוח + פונקציות + CDN בפלטפורמה אחת233~234### בחרו ב-Cloudflare Workers אם:235- אתם צריכים את ההשהיה הנמוכה ביותר האפשרית גלובלית236- אתם רוצים את האופציה הזולה ביותר בהיקף גדול237- אתם צריכים יכולות edge computing238- זמן cold start קריטי למקרה השימוש שלכם239~240## אפשר לשלב ביניהן?241~242בהחלט. ארכיטקטורה נפוצה: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, מטמון, אבטחה254- **Vercel Functions**: נתיבי API של frontend, SSR255- **AWS Lambda**: עיבוד backend כבד, משימות מתוזמנות, צינורות אירועים256~257## סיכום258~259Serverless הבשיל משמעותית. ב-2026, הבחירה בין AWS Lambda, Vercel Functions ו-Cloudflare Workers תלויה ב-stack ובסדרי העדיפויות שלכם:260~261- **חוויית מפתח פשוטה ביותר**: Vercel262- **הכי חזק וגמיש**: AWS Lambda263- **ביצועים ותמחור הטובים ביותר**: Cloudflare Workers264~265כל השלוש מוכנות לפרודקשן ומוכחות בשטח. התחילו עם זו שמתאימה ל-stack הנוכחי שלכם, והרחיבו ככל שהצרכים שלכם גדלים.266~
NORMAL · serverless-aws-lambda-vercel-cloudflare.md [readonly]266 lines · :q to close