כל מפתח פרונטאנד מכיר את הנקודה שבה הנוחות של סרוורלס נתקעת בקיר. האתר ב־Next.js עולה בשניות, הפריסות ב־Git עובדות חלק, אבל אז מגיע הוורקר של עיבוד הווידאו או תור משימות כבד, ופתאום אתם מוצאים את עצמכם פותחים חשבון ב־AWS, מרימים קלאסטר של ECS ומגדירים קונפיגורציות שרק רציתם לברוח מהן. כעת, בהכרזה מכנס החברה בסן פרנסיסקו, Vercel מנסה לסגור את הפיצול הזה בדיוק.
החברה הציגה מהלך רחב להרצת בקאנד מלא, שכולל שחרור רשמי (GA) לתמיכה בשפת Python, תמיכה בקונטיינרים מותאמים אישית בתוך פונקציות, והשקת שירות בשם Daemons בגרסת בטא ציבורית. הרעיון ישיר: להשאיר את כל הקוד, מהממשק ועד תהליכי הרקע שרצים תמיד, תחת אותה פלטפורמה ולחסוך תחזוקת שרתים ייעודיים.
סוף להפרדת השרתים
עד עכשיו, פונקציות סרוורלס היו קצרות מועד ומוגבלות בעיקר למענה לקריאות רשת מהירות. לפי נתוני החברה, כ־150,000 צוותים כבר מריצים שרתי פייתון אצלה, כמו ב־FastAPI או Django, ו־5,000 צוותים כבר ביצעו 150,000 פריסות קונטיינרים בניסויי הבטא. התמיכה החדשה בקונטיינרים מבוססי Dockerfile מאפשרת להתקין חבילות מערכת כמו ffmpeg ולהריץ ספריות מורכבות ישירות לצד הפרונטאנד.
עם Vercel, אנחנו בקושי חושבים על תשתית בכלל.ספנסר שובן, מהנדס מייסד ב־Delphi, בבלוג החברה
נוסף לקונטיינרים הרגילים שמתעוררים עם תנועה, שירות Daemons מאפשר להגדיר תהליכים שלא נרדמים. אתם קובעים מספר מופעים באזור מסוים, והמערכת דואגת להרים את התהליך מחדש אם הוא קורס או יוצא. עבור מי שמחזיק שרת נפרד רק בשביל להאזין לתור משימות, מדובר בהקלה תפעולית אמיתית.
חשבון לפי עבודה, לא לפי זמן
הבשורה הכלכלית נשענת על מודל תמחור בשם Active CPU בתוך Fluid compute. בשרת ענן קלאסי או בקונטיינר רגיל ב־AWS, אתם משלמים על המכונה כל עוד היא דולקת, גם אם התהליך רק ממתין לתשובה ממסד נתונים או מקריאת API של מודל שפה. כאן החלוקה שונה: התשלום על מעבד מחושב רק בזמן פעילות אמיתית, בעלות שמתחילה ב־0.128 דולר לשעה.
הזיכרון שנדרש להחזקת התהליך באוויר בזמן ההמתנה מתומחר בנפרד, החל מ־0.0106 דולר לג'יגה-בייט לשעה, שזה פחות מעשירית מעלות המעבד הפעיל. לפי החישוב של Vercel, משימה שמנצלת 100% מעבד תעלה כ־0.149 דולר לשעה. המשמעות ברורה: אם תהליך הרקע שלכם מבלה את רוב זמנו בהמתנה לפלט חיצוני, המודל הזה יחסוך כסף; אם הוא טוחן מעבד מסביב לשעון, שרת ייעודי עדיין יהיה זול יותר בהרבה.
שלושת הקווים האדומים
לפני שאתם מוחקים קלאסטרים קיימים, יש כמה מגבלות טכניות קשיחות שחייבים להכיר. הראשונה נוגעת לאופי התקשורת בתוך שירות הוורקרים: לפי התיעוד הרשמי, Daemons מוגבלים כרגע למשימות מבוססות משיכה (Pull בלבד), כמו האזנה לתורים או משיכת עבודות ממסד נתונים, ואינם מיועדים לקבל פניות Push ישירות מבחוץ.
הקו האדום השני הוא אחסון. לפי הדוקומנטציה של Container Runtime, הקונטיינרים הם חסרי מצב (Stateless). אין דיסק מתמשך, וכל קובץ שנכתב מקומית יימחק כשהמופע מוחלף. הקו השלישי הוא רשת: המערכת אינה תומכת בכתובות IP סטטיות או בחיבור Secure Compute בקונטיינרים מותאמים, מה שיקשה על התחברות למשאבים ארגוניים המוגנים ברשימות כתובות לבנות.
הזווית הישראלית ושאלת השיהוי
לצוותי פיתוח בישראל יש שיקול תשתיתי נוסף. ל־Vercel יש אמנם פריסה גלובלית רחבה של 126 נקודות קצה (PoPs), אבל אין לה אזור מחשוב מקומי בישראל. שרתי הבקאנד וה־Daemons ייאלצו לרוץ באזורי מחשוב מרוחקים מעבר לים.
אם מסד הנתונים הראשי שלכם יושב בשרת מקומי בישראל, כל משיכת רשומה מתור הרקע תגרור שיהוי רשת מורגש של עשרות מילישניות הלוך ושוב. בנוסף, החיוב נעשה בדולרים בלבד. לפני שמכבים את השרת הישן, שווה לבדוק את זמני התגובה של התורים בגרסת ניסיון קטנה.
| מאפיין ארכיטקטוני | שרת ייעודי / קונטיינר מסורתי (AWS, Render) | Vercel Daemons וקונטיינרים |
|---|---|---|
| דפוס עבודה נתמך | תמיכה מלאה בכל חיבור והאזנה לפורטים | קונטיינרים מקבלים HTTP; Daemons במשימות Pull בלבד |
| מודל חיוב עיקרי | תשלום קבוע על זמן דגימת השרת (Wall time) | Active CPU (תשלום רק כשמעבד עובד בפועל) |
| אחסון דיסק מקומי | מתמשך (Persistent Volumes אפשריים) | זמני בלבד (Stateless) |
| כתובת IP סטטית | נתמכת כברירת מחדל או בתוספת רשת | אינה נתמכת כרגע בקונטיינרים |
לא הייתי ממהר להעביר מערכות ליבה מורכבות, אבל המהלך בהחלט מייתר שרתים ייעודיים עבור משימות קלאסיות של שליפת תורים ועיבוד מדיה.
שרתים חיצוניים לא ייעלמו מחר, אבל לפחות תור הוורקרים שלכם כבר לא צריך שרת משלו.
מקורות
- Backends on Vercel: Python, containers, and Daemonshttps://vercel.com/blog/backends-on-vercel-python-containers-and-daemons
- Vercel adds always-on workers to run more of your backendhttps://thenewstack.io/vercel-faces-its-daemons/
- Introducing Active CPU pricing for Fluid compute - Vercelhttps://vercel.com/blog/introducing-active-cpu-pricing-for-fluid-compute
- Container Runtimehttps://vercel.com/docs/functions/container-images
- Vercel CDN overviewhttps://vercel.com/docs/cdn
- Vercel WAFhttps://vercel.com/docs/vercel-firewall/vercel-waf
- Vercelhttps://weba.co.il/tools/vercel/
הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.