• בלוג
  • ראספברי פי או VPS או אולי בכלל Serverless - איפה לארח פרויקט צד?

ראספברי פי או VPS או אולי בכלל Serverless - איפה לארח פרויקט צד?

23/10/2024

העלייה של פיתרונות Serverless בשנים האחרונות הביאה לשינוי מעניין בהרגלי פרויקטי הצד שלנו. מצד אחד מאוד קל להעלות פרויקט ל Deno deploy או Next ולקבל איחסון בחינם, מצד שני VPS-ים עולים גרושים ובסכומים של 5-10 דולר לחודש אפשר לקבל שרת שיריץ כמעט כל פרויקט צד שתחשבו עליו, ומצד שלישי מחשבים ביתיים רק הופכים לקטנים וחזקים כשאפילו מכשיר כמו Raspberry Pi מגיע כבר עם 8 ג'יגה זיכרון ומעבד 4 ליבות. הנה כמה שיקולים שאני לוקח בחשבון בפרויקטים קטנים:

1. העלאה לפלטפורמות Serverless

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

יתרונות:

  1. קל מאוד להתחיל, במיוחד אם הפלטפורמה מסונכרנת עם סביבת הפיתוח שלכם (למשל Vercel לפרויקט next.js).

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

  3. מנגנון CI/CD מובנה שהרבה פעמים יכריח אתכם לעבוד נכון יותר.

חסרונות:

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

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

  3. לפעמים נדרשת יותר עבודה כדי לעשות דברים בצורה שונה ממה שנתמך בפלטפורמה.

2. העלאה ל VPS

חברות כמו Linode ו Digital Ocean מציעות שרתי VPS במחירים מאוד זולים. באופציה זו אנחנו מקבלים מכונה וירטואלית שכוללת רק מערכת הפעלה ואנחנו צריכים להתקין את כל השאר.

יתרונות:

  1. התקנה של שרת היא אחת הדרכים הכי טובות ללמוד איך מערכות אינטרנט עובדות.

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

חסרונות:

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

  2. הקמה עצמאית של כל הסביבה עלולה לחשוף אותנו לבעיות אבטחה בגלל טעויות בקונפיגורציה.

  3. אם פתאום המוצר הופך ויראלי ולא התכוננו למצב זה מראש אנו עלולים להסתבך בעת הגדלת הסביבה (הוספת שרתים וחיבור Load Balancer).

3. ראספברי פי בארון

אופציה שלישית ולא רעה בכלל עם השיפור בביצועים, בצריכת החשמל ובשקט של מחשבים ביתיים היא להריץ את הפרויקט על Raspberry PI שיושב באיזה ארון.

יתרונות:

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

  2. אין תשלום חודשי על ה"שרת". אחרי ההקמה הפרויקט ממשיך לרוץ לנצח.

חסרונות:

  1. אם יום אחד הפרויקט יצליח אנחנו בצרה. נצטרך להוציא את כל המידע ששמור על ה Pi ולהעלות אותו לאחסון אמיתי.

  2. ההתעסקות עם הקמת כתובת IP סטטית וחיבור דומיין ל Raspberry Pi שיושב מאחורי Router אצלנו בבית יכולה להיות מייאשת.

  3. אין גיבויים ו Raspberry PI יכול פתאום להפסיק לעבוד כי SD Card.

  4. הפסקות חשמל וניתוקי רשת הרבה יותר נפוצים אצלך בבית מאשר בחוות שרתים של VPS-ים או פלטפורמות Serverless.

4. סיכום והמלצות

אז איפה שמים את הפרויקט הבא? בואו נסכם:

  1. אם יש לכם פרויקט שמתאים בשפת התכנות למשהו שנתמך על ידי פלטפורמת Serverless לכו על הפלטפורמה.

  2. אם יש לכם זמן פנוי ואתם אוהבים שליטה על כל מה שקורה בפרויקט שלכם העלאה ל VPS היא הפיתרון הטוב ביותר.

  3. אם אתם אוהבים ללמוד איך דברים עובדים ולהקים לעצמכם סביבות Deployment יצירתיות ובעלות נמוכה, ולא כזה חשוב לכם שהפרויקט יעבוד בצורה אמינה, Raspberry Pi יהיה הפיתרון הטוב ביותר.