האם מחשוב הענן הגיע לסוף ימיו? על Serverless ו-FaaS

המגמה והגידול של Serverless ושל FaaS בפרט גדלים בצורה אקפוננציאלית, למה ומה המשמעות של זה בעצם?

מאת עמירם שחר

המימוש והיישום המקובל כיום לקונספט ה-Serverless, הוא בעצם מושג הנקרא FaaS – Function as a Service, או "פונקציה כשירות". ביישום זה, המפתח יכול להעלות קוד לענן, ולהריץ אותו מיידית באמצעות כתובת HTTP. מאחורי הקלעים, הקוד רץ על גבי Compute containers, הניתנים להתנעה ע"י שורה של אירועים חולפים ומנוהלים מקצה לקצה ע"י ספק שירותי הענן. ה-FaaS מייתר את הצורך בניהול השרת, על כל המשתמע מכך. מוצרי ה-FaaS הפופולריים כיום הינם AWS Lambda, IBM OpenWhisk, Microsoft Azure Functions ו- Google Cloud Functions.

כאמור, לרוב בכדי להריץ, או "לעורר" פונקציית Serverless נשתמש ב-"מעוררים", הנקראים, טריגרים, מסוגים שונים. טריגר עשוי להיות מבוסס זמן (Cron) או מבוסס על אירוע מסוים כמו למשל "שורה חדשה הצטרפה למאגר הנתונים" או "קובץ חדש נוצר במערכת הקבצים". הפונקציה תבצע פעולה המגיבה לאותו טריגר או אירוע ובאופן אידאלי הטריגר יגרום לקריאת HTTP ישירה לפונקציית URL.

אם כך, אז מה הוא "Serverless בקצה"?

בקצרה: היכולת ליצור טריגרים ולאתחל פונקציות Serverless על גבי מחשוב הנמצא ביחידות קצה. (לרוב נקרא Pop)

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

דוגמאות לשימושים:

  • מניפולציות בקשות/תשובות HTTP ללא הצורך לגשת ישירות לשרת האפליקציה (לדוגמה שינוי תחיליות HTTP או Cookies המבצעות שכתוב או הפניה מחודשת של כתובת URL)
  • יצירת תוכן דינאמי (עמוד שגיאות מותאם אישים, הרשמה או HTML דינאמי)
  • אופטימיזציית זמני תגובה (שגיאת 401 במקרה של אי-זיהוי, ולידציית שינויים מותאמת אישית ועוד)

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

למרות שטכנולוגיית ה-Serverless במחשוב קצה היא טכנולוגיה מבטיחה מאד יש לה עדיין מגבלות שאנשי פיתוח ו-DevOps צריכים להיות מודעים אליהם:

לצורך הדוגמא, אמזון השיקה לאחרונה גירסאת Preview של Lambda @ Edge, שמשתמשת בטכנלוגיה הפנימית של ה-CDN שלה. המגבלות הקיימות:

  • היקף מצומצם של זיכרון RAM – בדר״כ רק 128MB
  • שטח אחסון מצומצם של 1MB לקוד (קטן מאוד!)
  • פועל רק עם NodeJS (כרגע)
  • אין בקשות HTTP חיצוניות (כרגע)

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

פיטר לווין, שותף בכיר מקרן ההשקעות הידועה Andreessen Horowitz טען בהרצאה שלו לאחרונה ש-"הענן מת" (Cloud is Dead) או לכל הפחות, סוף עידן השלטון של מחשוב הענן ממש מעבר לפינה.
נשמע מוזר? אז כנראה שלא. גם אם הענן לא ימות כל כך בקרוב, ברור שאנחנו עומדים בפתחה של תקופה בה מחשוב מבוזר יתפוס מקום מרכזי ופופולאריות רבה. בעולם בו רחפנים, מחשוב לביש (שעונים, ונעלים חכמות), מכונניות אוטונומיות, בתים חכמים, ערים חכמות ורובוטים מסוגים שונים ומשונים יהפכו כולם ליחידות קצה המרכיבות "ענן מבוזר" ללא יחידות חישוב מרכזיות. אחרי שבמשך קרוב ל-15 שנה תפיסת ריכוזיות משאבי המחשוב שלטה בעולם אנחנו חוזרים לתפיסה שבה רוב כוח המחשוב נמצא דווקא ביחידות הקצה.

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

לאחרונה השיקה AWS קטגוריה חדשה למחשוב Serverless הנקראת "Greengrass", קונספט מעט שונה של "מחשוב מקומי". Greengrass מאפשרת למשתמש להריץ פונקציות Serverless על גבי מכשירים שאינם מחוברים לרשת ונמצאים במצב offline. רוב השימוש למוצר זה הוא עבור עולם ה-IoT.
מוצר זה בנוי מעל AWS Lambda ו-AWS IoT, כך שמפתחים יכולים לכתוב קוד (לרוב Python) שירוץ על רכיב ה-IoT באשר הוא. ה-Greengrass מריץ את הפונקציות הללו בצורה מקומית, אבל גם יכול לדבר לענן של AWS במידה והוא צריך עוד כח עיבוד או פיסת מידע.

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

אנדי ג'סי, מנכ"ל AWS, אמר כי "קל למנף את יתרונות הענן בכדי לכסות על מגבלות כח העיבוד של המכשירים הללו, יהיו מקרים שבהם בהם לא תרצו לבצע את המסע הלוך וחזור אל הענן. אנחנו שומעים באופן קבוע מחברות שעושות שימוש במוצרי AWS ל-IoT"

בעצם, אנו רואים קטגוריה חדשה שמגיעה יחד עם Greengrass, הנקראית ״מחשוב מקומי״ Local Compute.

חברות כיום בוחרות להשתמש במחשוב לוקאלי בעיקר מהסיבות הבאות:

  • צמצום ה-Round Trip Latency לענן
  • במקרה של חיבור לא רציף של תקשורת במכשיר הקצה
  • עלות גבוה של הBandwidth בין הקצה לבין הענן עצמו

לסיכום

המגמה והגידול של Serverless ושל FaaS בפרט גדלים בצורה אקפוננציאלית. אמזון, לא מזמן פרסמה נתון, שלעניות דעתה ״50% מסביבות הענן יעברו ל-Serverless בתוך 3 שנים מהיום״. אנו רואים קצב גידול אדיר בנתוני האימוץ וההטמעה של Serverless בקרב חברות. זה מוכיח שה-Buzzword הזה, הוא דבר מוחשי ואמיתי. בעולם של רחפנים, מכוניות וערים חכמות, Serverless at the Edge הופך את הפרדיגמה הנ״ל למעניינת יותר ופותח את ספקטרום ההזדמנויות למחשוב ללא שרת לכל Device בעולם. ״מחשוב מקומי״ יהפוך להיות חלק אינטגרלי מכל רכיב מבוזר של IoT.

הכותב הינו מנכ"ל ומייסד Spotinst

כתב אורח

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

הגב

5 Comments on "האם מחשוב הענן הגיע לסוף ימיו? על Serverless ו-FaaS"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
אאא
Guest

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

משה
Guest

למה לא להסתפק ב: [״כתבה מצויינת שמסבירה את העקרון יפה״]
ולסיים שם?

חסר הבנה
Guest

"דמיינו שאתם יכולים להעלות את הקוד שלכם לענן אליו אתם מחוברים ובלחיצת כפתור אחת תוכלו להריץ את הקוד הזה בכל אחד מעשרות, מאות, או אלפי יחידות הקצה המחוברות לאותו ענן. בין אם מדובר במכונית, שעון, רחפן או כל דבר אחר שתחלמו עליו"

במה זה שונה מ push?

Dr.Cloud
Guest

בגדול, אם יש קוד אבסטרקטי, למשל עריכת תמונה (Resize, Crop etc.), או פעולה אסינכרונית ללא עידכון UI/חזרה למשתמש הקצה, למשל הרצת טריגר לשליחת Newsletters, שמה, לפי הבנתי, כדי להשתמש בשירות.
בכל מקרה, אני לא מאמין שזה יחליף את השימוש בענן אלא ילך איתו יד ביד, בדיוק כמו השימוש בשרתי CDN ל-Cache.

גל.
Guest

זה טוב לדברים מאוד מסויימים. אני מאוד מאמין בmicroservices אבל יש הדבל של שמיים וארץ לבין serverless. המנגנונים של serverless טובים לדברים מסויימים, אבל לרוב לא יתאימו לניהול מערכת שלמה.

wpDiscuz

תגיות לכתבה: