תובנה בסיסית בנושא:
סוג מספר 1 של שירותים בתחום הוא "רכישת מחשב בענן".
זה אומר למשל VPS, שזה מחשב מרוחק וירטואלי (בפועל זה מחשב גדול שהמשאבים שלו משותפים בין הרבה משתמשים, והחלוקה למחשבים אחרים מושגת באמצעות וירטואליזציה תוכנתית).
או גם אפשר לרכוש כזה שאינו משותף עם אחרים.
הגישה של המשתמש אליו מתבצעת בדרך כלל באמעות SSH (לפחות ראשונה, לפני התקנת תוכנות בהתאמה אישית).
חסרון של סוג זה:
- צריך לדעת מה לבחור, כמה אחסון, כמה זכרון, איזה CPU וכדומה.
- זה לא גמיש, או פחות גמיש, אם רוצים להגדיל אחד מהמרכיבים שבחרנו בסעיף 1 צריך לקנות חדש ולהעביר וכדומה.
- המשתמש אחראי על התקנת התוכנות והכל (אפשר אמנם להתחיל ממשהו שמותקן בו דברים מסוימים, תלוי בספקים השונים) לטוב ולרע, כולל זה שיש אפשרות שננעלים בחוץ וצריך לאפס הכל (זה ממש דורש זמן למידה) וכולל האפשרות שהעמסנו יותר מדי והמכונה פשוט הפסיקה להגיב, וצריך לאתחל דרך הממשק שהספק נותן.
- המשתמש אחראי על תעודת אבטחה, דומיין, DNS ואין אפילו איך להתחיל להשתמש בלעדיהם, גם לא זמנית.
יתרונות:
זול בפער עצום מסוג מספר 2 להלן. בדרך כלל עם חיבור עם שירותים כמו cloudflare או letsencrypt כדי להשיג TLS וכדומה (בחינם).
יש לסייג שזה זול רק בשימוש עם מערכת הפעלה לינוקס (זה הנפוץ ב99% מהמקרים, אמנם יש אפשרות גם להתקין בכל מיני דרכים WIN לבד, אבל כשמראש הספק מאפשר שימוש בWIN בצורה חוקית, זה מעלה את המחיר בהרבה מאד, גם בגלל שזה בדרך כלל דורש מחשב חזק יותר, וגם בגלל שזה עולה כסף בנפרד).
ישנן עוד מעלות וחסרונות אבל זה הבסיס.
סוג מספר 2 של שירותים, הוא שירות מנוהל, שבו יש הרבה מאד סוגים, והרבה מאד ספקים שמספקים דברים דומים מבחינת שירות, אבל עלולים להיות שונים מבחינת טרמינולוגיה (כלומר כל אחד יקרא לשירות שלו בשם אחד וישתמש במונחים אחרים לתאר רכיבים בשירות..)
אבל כדי להסביר, יש למשל שירות שמספק את האפשרות להעלות את הקוד כמו שהוא (איך מעלים - יש יותר מדרך אחת בדרך כלל) ובכל השאר מטפל הספק.
ויש שירות שמאפשר להעלות קוד שיעשה פעולות בתגובה לאיזשהו אירוע וכדומה. כל אלו שירותים שבחלוקה כללית שייכים לסוג 2.
חסרונות:
- יקר יותר בפער, למרות שגם בזה יש ספקים שנותנים בסיס בחינם מתוך ההנחה שכשתגדלו ותצרכו יותר תשלמו (או שתתרגלו לפלטפורמה וגם בפרויקטים גדולים יותר תשתמשו בזה, וזה מתחבר עם חסרון מספר 2 שהוא חסרון אדיר מימדים בעיני).
- צריך לבנות מראש או להתאים את הפרויקט מקצה לקצה כדי להשתמש בשירות, לפחות בחלק מהתצורות של השירותים האלו (למשל בcloud functions) או לבחור במסגרת פיתוח שמתאימה את עצמה לזה (כמו nuxt.js בגירסה האחרונה), וככל שהשירות פחות מצריך פיתוח מראש בהתאמה לפלטפורמה, כך מחירו יעלה בהתאם.
- הדרך להשתמש בשירות הזה, תמיד תבוא עם עוד שירותים בתשלום.. כמו אחסון של DB במקרה של functions כמו lambda.
וזה מכיון שהשירות רק מפעיל את הקוד, כלומר הרעיון בבסיס השירות הוא שהם מספקים רק הפעלה של הקוד, אבל לא אחסון של נתונים או קבצים. זה לא מחשב שאתם מקבלים, זה שירות שמפעיל את הקוד שכתבתם, ואם השירות לא באוויר - הקוד לא באוויר.
ההמשך של הרעיון הוא להשתמש בשירות אחר שמספק אחסון נתונים (למשל) ולחבר בין שני השירותים. - משאיר את המשתמש חסר ידע לחלוטין (הסימון של זה כחסרון הוא לטעמי האישי בלבד, ועל זה אפשר להוסיף שזה גם מצריך רכישת ידע - למידת השירות).
מעלות-הפוך מהחסרונות בסוג שירות מספר 1:
- אין צורך לבחור משאבים, המשאבים נבחרים על ידי הספק בהתאם לצורך.
- גמישות מירבית, הספק מתאים את צריכת המשאבים בדר"כ ויש גם אפשרות להגביל למחיר מסוים (כמובן שהצריכה מגדירה את המחיר..)
- יש בדרך כלל אפשרות להתחיל להשתמש מיידית, ולו באופן זמני.
- הרבה מהדברים מטופלים באמצעות השירות, כולל דברים חיצוניים לו (אבל בא עם מגבלות בנושא הזה גם).
--
השירותים שאני מכיר שהתמחור שלהם מצדיק העמקה ופיתוח מראש בהתאם לפלטפורמה זה רק cloudflare workers (ושאר הכלים שהם מציעים בפלטפורמה. עד לאחרונה היה שירות בשם cyclic, אבל הם ירדו\יורדים מהאוויר, דרוש תחליף..).
אמנם מאד מסובך להבין אותם והתיעוד לא מספק, אבל התמחור נותן הרבה מאד ערך בחינם. ברוב המקרים לא יהיה תשלום בכלל, לפרויקטים בגודל סביר (מלבד סל שירותים מסוימים שעולה החל מהשימוש הראשוני, כמו רכישת דומיין).
הדרך המומלצת היא להכיר את הכל.. כמובן זה אומר להשקיע זמן וללמוד את הנושא.
כשמתנסים בחלק מהשירותים וצוברים ניסיון, מבינים מתי ואיך להשתמש בכל סוג, או אפילו לשלב ביניהם, והדובדבן שבקצפת - איך לתכנן מראש פרויקט בצורה המיטבית שתשלב את היתרונות מכל הסוגים.
ברעיון יש אפשרות להשתמש בסוג 1 כדי לבנות סוג 2 (שזה מה שספקי סוג 2 עושים, ואפשר להשיג את זה לבד, על ידי k8s וכלים מהסוג הזה, אין לי בפועל ידע בזה, וזה מתאים לצרכנים שהם מספיק גדולים כדי להשקיע ולבנות לעצמם את הגמישות בצריכה לבד).