שלם רק על מה שאתה משתמש, סקייל לאפס כשאינך משתמש, והפסק לנהל שרתים לחלוטין — אך דע מתי הכלכלה מפסיקה להיות כדאית.

לאפליקציה שלך יש תעבורה משתנה — שקטה בלילה, עליות חדות בשעות העבודה, ומתפרצות בלתי צפויות מקמפיינים שיווקיים או אירועים עונתיים. אתה משלם על שרתים שיושבים בטלים 70% מהזמן. או שאתה בונה מוצר חדש ואינך רוצה להשקיע באספקת תשתית (infrastructure provisioning), תכנון קיבולת (capacity planning), ורוטציית כוננות (on-call rotation) לפני שאימתת התאמה של המוצר לשוק (product-market fit). Serverless מעניק לך תמחור לפי בקשה (per-request pricing), סקייל אוטומטי, ואפס ניהול תשתית — אך רק כאשר מאפייני עומס העבודה מתאימים.
Explore more design patterns and system architectures
אדריכלים שלנו יכולים לעזור לך לעצב ולבנות מערכות תוך שימוש בדפוס זה לדרישות הספציפיות שלך.
צרו קשרארכיטקטורת Serverless-first בונה יישומים במלואם על שירותי מחשוב מנוהלים וסקייל-לאפס (Lambda, Cloud Functions, Vercel Functions) המחוברים באמצעות שירותי אירועים מנוהלים (EventBridge, SQS, Step Functions). אין שרתים לעדכן (patch), אין אשכולות (clusters) לשינוי גודל, אין קיבולת לתכנן. פונקציות מבוצעות בתגובה לאירועים (בקשות HTTP, הודעות תור, טריגרים מתוזמנים, שינויי מסד נתונים) וסקייל אוטומטית מאפס לאלפי מופעים מקבילים. הדפוס מתרחב למסדי נתונים Serverless (DynamoDB, Neon, PlanetScale), תורים Serverless (SQS), ותזמור Serverless (Step Functions, Temporal Cloud).
הארכיטקטורה מונחית אירועים (event-driven) מטבעה. API Gateway (AWS API Gateway, Vercel) מנתב בקשות HTTP לפונקציות בודדות. מקורות אירועים (תורי SQS, כללי EventBridge, התראות S3, זרמי DynamoDB) מפעילים פונקציות באופן אסינכרוני. Step Functions או Temporal מתזמרים תהליכי עבודה (workflows) מרובי שלבים שבהם כל שלב הוא פונקציה עם טיפול מובנה בניסיונות חוזרים (retry), פסק זמן (timeout) וטיפול בשגיאות. מסדי נתונים Serverless (DynamoDB עבור key-value, Neon/PlanetScale עבור נתונים יחסיים) מטפלים באחסון ללא ניהול קיבולת. דפוס strangler fig מאפשר הגירה הדרגתית ממונוליתים (monoliths) קיימים.
| שכבה | טכנולוגיות |
|---|---|
| מחשוב | AWS Lambda, Vercel Functions (Fluid Compute), Google Cloud Functions, Cloudflare Workers |
| API | API Gateway (REST/WebSocket), Vercel, AppSync (GraphQL) |
| תזמור | AWS Step Functions, Temporal Cloud, Vercel Workflow DevKit |
| נתונים | DynamoDB, Neon Postgres, PlanetScale, Upstash Redis, S3 |
| אירועים | EventBridge, SQS, SNS, Vercel Queues |
| Observability | CloudWatch, Datadog (serverless monitoring), Lumigo, X-Ray |
| השתמש כאשר | הימנע כאשר |
|---|---|
| התעבורה משתנה עם תקופות בטלה משמעותיות (סקייל-לאפס חוסך כסף) | התעבורה קבועה ובנפח גבוה — מופעים שמורים (reserved instances) זולים ב-50-70% בעומס מתמשך |
| אתה רוצה אפס ניהול תשתית ותקורה תפעולית | אתה זקוק לחיבורים מתמשכים (שרתי WebSocket, connection pools של מסדי נתונים) — אם כי Vercel מטפל בכך |
| היישום מתפרק באופן טבעי לפונקציות מונחות אירועים | עומס העבודה דורש יותר מ-15 דקות של ביצוע רציף לכל בקשה |
| אתה מהגר באופן הדרגתי ממונולית ורוצה פריסה לפי נקודת קצה | הצוות אינו מכיר מערכות מבוזרות — Serverless מציג מורכבות ניפוי באגים מבוזר |
MW מתייחס ל-serverless כהחלטה כלכלית, לא דתית. אנו ממדלים את עלות Serverless מול containers מול מופעים שמורים עבור דפוס התעבורה בפועל שלך (לא תיאורטי), וממליצים על האפשרות שממזערת את העלות הכוללת של הבעלות (total cost of ownership) כולל זמן הנדסה לתפעול. ארכיטקטורות ה-Serverless שלנו כוללות ייחוס עלויות לפי פונקציה (תיוג כל קריאה עם התכונה שהפעילה אותה), ניטור cold start עם התראות כאשר P99 חורג מספים, וספרי הגירה הדרגתית המעבירים נקודת קצה אחת לכל ספרינט. הגרנו מונוליתים ל-serverless עבור חברות מדיה, מוצרי SaaS, ופלטפורמות מסחר אלקטרוני — ובשני מקרים, הגרנו חלקים בחזרה ל-containers כאשר מאפייני עומס העבודה השתנו.
אבטחה אינה תכונה שמוסיפים לאחר ההשקה. זוהי תכונה ארכיטקטונית – המערכת תוכננה עבורה, או שלא.
Serverless-first מתאים פחות ל-long-running processes העולים על 15 דקות, עומסי עבודה הדורשים חיבורי WebSocket מתמשכים, יישומים עם תעבורת high-throughput קבועה שבהם reserved capacity זולה יותר, ומערכות הזקוקות לתצורת OS או רשת low-level. MicrocosmWorks מעריכה כל עומס עבודה מול אילוצים אלו במהלך תכנון ארכיטקטורה וממליצה על גישות היברידיות שבהן Serverless מטפל ב-API endpoints ו-event processing בעוד ש-containers או VMs מריצים את עומסי העבודה הדורשים persistent compute. גישה פרגמטית זו מונעת את הטעות הנפוצה של כפיית כל רכיב ל-Serverless כאשר הוא אינו מתאים.
MicrocosmWorks מפחיתה cold starts של Lambda באמצעות provisioned concurrency עבור נקודות קצה קריטיות, function bundle optimization להפחתת זמן האתחול, ושימוש אסטרטגי ב-Lambda SnapStart עבור עומסי עבודה של Java אשר מקצר cold starts משניות למילישניות. אנו גם מתכננים יישומים כך שנתיבים רגישים לזמן השהיה ישתמשו בסביבות הרצה קלות משקל כמו Node.js או Python עם תלות מינימלית, ושומרים על cold starts מתחת ל-200ms גם ללא provisioned concurrency. עבור נקודות קצה שבהן אפילו זמן השהיה זה אינו מקובל, אנו משתמשים ב-Lambda@Edge או CloudFront Functions לתגובות של פחות מ-10ms.
MicrocosmWorks מקימה סביבות פיתוח מקומיות באמצעות כלים כמו SST (Serverless Stack), LocalStack, או המצב הלא מקוון (offline mode) של ה-Serverless Framework, המדמים שירותי ענן על מכונת המפתח בדיוק קרוב לסביבת ייצור. אנו מיישמים חבילות בדיקות אינטגרציה הרצות מול סביבות ענן ארעיות המוקמות עבור כל pull request, כך שמפתחים יכולים לאמת מול שירותי AWS אמיתיים מבלי לשתף סביבת staging. גישה כפולה זו מאפשרת לולאות איטרציה מקומיות מהירות לפיתוח, תוך כדי זיהוי בעיות ספציפיות לענן לפני שהקוד מגיע לייצור.
MicrocosmWorks גילתה ש-serverless זולה באופן דרמטי עבור יישומים עם דפוסי תעבורה משתנים או קופצניים—לרוב 70-90% פחות מפריסות קונטיינרים מקבילות שפועלות תמיד—אך יתרון העלות מצטמצם בספיקות קבועות מעל 10-20 מיליון invocations בחודש. אנו בונים מודלים לחיזוי עלויות במהלך תכנון architecture המשווים תמחור serverless לפי קריאה (per-invocation) לצפי קפסטי (capacity) קונטיינרים שמור עבור דפוסי התעבורה הספציפיים שלכם, כולל עלויות נסתרות כמו חיובים של API Gateway ועמלות העברת נתונים. שירות האופטימיזציה שלנו, הזמין בתעריפי ייעוץ של 10-35$ לשעה, בודק באופן קבוע חיובים של serverless כדי לזהות בזבוז הנובע מזיכרון שהוקצה יתר על המידה (over-provisioned memory), משכי פונקציות מופרזים, או שימוש מיותר ב-API Gateway.
MicrocosmWorks משתמשת בפרוקסיז של connection pooling, כגון Amazon RDS Proxy או PgBouncer, שנפרסים כשכבה מתמשכת בין פונקציות Lambda לבין מסד הנתונים, ומרבבים אלפי חיבורי Lambda למאגר ניתן לניהול של חיבורי מסד נתונים בפועל. אנו גם מתכננים יישומי serverless להעדיף DynamoDB או מסדי נתונים אחרים ללא חיבורים עבור עומסי עבודה עם מקביליות גבוהה, שבהם connection pooling עדיין יצור צווארי בקבוק. עבור יישומים שחייבים להשתמש במסדי נתונים יחסיים, אנו מיישמים מגבלות סקיילינג מודעות חיבור שמגבילות הפעלות Lambda מקבילות כדי להתאים לקיבולת החיבורים של מסד הנתונים.