WEBA

Vercel מאפשרת בקאנד מלא בלי שרתים חיצוניים

עם קונטיינרים פתוחים ותהליכי רקע שרצים תמיד, החברה מנסה להחליף שרתי ענן נפרדים, אבל המגבלות הארכיטקטוניות וערפל המחירים עדיין דורשים זהירות.

534 מילים27 עובדות אומתו

כל מפתח פרונטאנד מכיר את הנקודה שבה הנוחות של סרוורלס נתקעת בקיר. האתר ב־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 ייאלצו לרוץ באזורי מחשוב מרוחקים מעבר לים.

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

השוואת התאמה ארכיטקטונית ומגבלות בין שרת ייעודי לבין Vercel Daemons
מאפיין ארכיטקטונישרת ייעודי / קונטיינר מסורתי (AWS, Render)Vercel Daemons וקונטיינרים
דפוס עבודה נתמךתמיכה מלאה בכל חיבור והאזנה לפורטיםקונטיינרים מקבלים HTTP; Daemons במשימות Pull בלבד
מודל חיוב עיקריתשלום קבוע על זמן דגימת השרת (Wall time)Active CPU (תשלום רק כשמעבד עובד בפועל)
אחסון דיסק מקומימתמשך (Persistent Volumes אפשריים)זמני בלבד (Stateless)
כתובת IP סטטיתנתמכת כברירת מחדל או בתוספת רשתאינה נתמכת כרגע בקונטיינרים

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

שרתים חיצוניים לא ייעלמו מחר, אבל לפחות תור הוורקרים שלכם כבר לא צריך שרת משלו.

מה לעשות עכשיובדקו אם משימות הרקע שלכם נשענות על תורים וממתינות למידע חיצוני; אם כן, תמחור Active CPU מאפשר לחסוך תחזוקת שרת נפרד.

מקורות

הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.

מה שואלים על זה

האם אפשר להריץ שרת WebSockets מלא על גבי Vercel Daemons?

לא על גבי Daemons. תהליכי Daemons מוגבלים בשלב זה למשימות מבוססות משיכה (Pull-based) כמו צריכת תורים, ולא לקבלת חיבורי רשת ישירים מבחוץ.

כיצד מחושב התשלום על וורקר שרץ 24 שעות ביממה?

החיוב מתפצל: משלמים תעריף נמוך על זיכרון מושהה (החל מ-0.0106 דולר לג'יגה-בייט לשעה) בזמן שהתהליך ממתין, ותעריף Active CPU (החל מ-0.128 דולר לשעה) רק בפרקי הזמן שבהם המעבד מבצע עיבוד בפועל.

האם קונטיינר ב-Vercel שומר קבצים בדיסק המקומי בין הפעלות?

לא. מדובר בסביבה חסרת מצב (Stateless). קבצים שנכתבים לדיסק המקומי יימחקו בעת סיום התהליך או החלפת המופע, ולכן יש לשמור מידע מתמשך בשירותי אחסון ייעודיים.

האם פייתון נתמך כעת באופן רשמי ומלא בכל התוכניות?

כן. התמיכה בשפת Python הגיעה למצב זמינות כללית (GA) ומאפשרת הרצת סביבות עבודה כמו FastAPI ו-Django ללא צורך בהגדרות מיוחדות.