מיחשוב ללא שרת
- 6 דקות
בימים הראשונים של מיחשוב ענן, ספקי שירותי ענן כגון Amazon ו- Microsoft מתמקדים בהצעות מגוון עשיר של שירותי IaaS ללקוחות שלהם. פעולה זו תדלקה את הצמיחה של עננים ציבוריים בכך שאפשרה ללקוחות להעביר בקלות עומסי עבודה שהסתובבו בשרתים פיזיים או במחשבים וירטואליים אל מחשבים וירטואליים בענן. אבל עם IaaS מגיע אחריות. ארגון שסובב מחשב וירטואלי בענן גם נושא באחריות לשמירה על מה שבתוך המחשב הווירטואלי - מערכת ההפעלה, זמני הריצה הנדרשים, אפליקציות המשתמשות באותן זמני ריצה וכו'.
PaaS מזזת חלק מהאחריות הזאת לספק שירותי הענן ומונעת עוד יותר השקעות בענן. עם שירותים כגון AWS Elastic Beanstalk ו- Azure App Service, לקוחות יכולים להקצות שרתי אינטרנט וירטואליים שכוללים זמני ריצה פופולריים כגון Java, Node.jsו- Microsoft .NET ולהפעיל תוכנות תוך דקות. בעוד מחשבים וירטואליים עושים את הרמת כבד מתחת למכסה המנוע, הנוכחות של מחשבים וירטואליים אלה הוא בכמויות גדולות המופשט משם. PaaS מאפשר ללקוחות להתמקד באפליקציות שהם כותבים כדי לפתור בעיות עסקיות במקום להוציא מחזורים לניהול מחשבים וירטואליים ולשמירה על הפלטפורמות מעודכנות.
ללא שרת היא חדשנות עדכנית יחסית במחשוב ענן, המקדמה עוד יותר את ההפשטות. נניח שהארגון שלך כותב ושומרת קוד המבצע גיבויים בלילה של נתונים קריטיים למשימה, מבצע פעולות חיוב שבועיות או משדר תשלום אלקטרוני בכל פעם שמתבצעת העלאה של חשבונית לאחסון בענן. במקרה זה, מטרת החיפוש היא לבצע קוד זה ולבצע אותו בזמן המתאים. כל השאר הוא משני, כולל המקום שבו הקוד מאוחסן וכיצד והיכן הוא מבוצע.
באפשרותך להשתמש IaaS על-ידי יצירת מחשב וירטואלי אחד או יותר להפעלת הקוד שלך והתקנה של הפלטפורמות והספריות הנחישות. באפשרותך להקצות מופע של Elastic Beanstalk או App Service ולארח את הקוד שם. לחלופין, באפשרותך להשתמש בזמן ריצה של פונקציות כגון AWS Lambda או Azure Functions כדי לבצע את הקוד שלך בכל עת, ללא קשר למיקום או לאופן שבו הוא מתארח. AWS Lambda ו- Azure Functions הן דוגמאות למיחשוב ללא שרת (באופן ספציפי, ללא שרת), כמו Google Cloud Functions. כל השלושה מייצגים את השלב הבא בהתפתחות הטבעית של מיחשוב ענן מ- IaaS, שבו יש לך אחריות לכל דבר, ללא שרת, שבו אתה מתמקד בפעולות שברצונך לבצע (הקוד שברצונך לבצע) בענן ונותן לספק שירותי הענן לנהל את כל השאר.
פונקציות ללא שרת שבוצעו על-ידי זמני ריצה של פונקציות בענן הן הצורה הנפוצה ביותר של מיחשוב ללא שרת, אך הן לא הטופס היחיד. Amazon, Microsoft ו- Google מציעים גירסאות ללא שרת של חלק מהשירותים האחרים שלהם ב- PaaS, כולל מסדי נתונים ללא שרת. ספקים מסוימים מציעים תמיכה עבור זרימות עבודה ללא שרת של , אשר מאפשרות לך להגדיר זרימות עבודה עסקיות בענן ולבצע אותן בתגובה לאירועים חיצוניים כגון חשבוניות המועלות לאחסון בענן, שעון עצר שמבצעות פעולות במרווחי זמן שצוינו או הודעות דואר אלקטרוני פוגעות בתיבת דואר נכנס - לעתים קרובות מבלי לכתוב שורת קוד בודדת. לבסוף, רבים מהשירותים של הגורמים המכילים שספקי שירותי ענן מציעים, כולל Azure Container Instances ו- AWS Elastic Container Service, זכאים כדוגמאות למיחשוב ללא שרת משום שהם מאפשרים לך להפעיל גורמים מכילים בענן תוך הפשטת התשתית המשמשת כברירת מחדל.
היתרונות של מיחשוב ללא שרת
מיחשוב ללא שרת מציע שלושה יתרונות עיקריים לארגונים שמנצלים מיחשוב ענן:
עלויות מיחשוב נמוכות: לקוחות משלמים בדרך כלל חיובים חודשיים עבור מחשבים וירטואליים של IaaS ושירותים של PaaS כגון Elastic Beanstalk ו- Azure App Service. החיוב נמשך גם אם השירותים אינם זמינים. עם זאת, רוב שירותי המיחשוב ללא שרת בתמחורצריכה , שבהם תחויב רק בזמן ביצוע הקוד שלך. דמיין שאתה מקדיש מחשב וירטואלי של 100 דולר לחודש להפעלה של קוד המבצע גיבוי לילה של נתונים קריטיים למשימה, והקוד פועל במשך 30 דקות בכל לילה. אתה משלם 100 דולר לחודש כדי לבצע קוד עבור 1/48^th^ בחודש, או פחות מיום אחד. פריסת קוד זהה לפונקציה ללא שרת עשויה לעלות לך מעט כמו כמה דולרים לחודש. עם תמחור צריכה, אינך משלם עבור זמן לא פעיל.
מדרגיות אוטומטית: ספקי ענן מציעים מנגנונים עבור שינוי קנה מידה של שירותי IaaS במוצרים כגון שינוי קנה מידה אוטומטי של AWS וערכות קנה מידה של מחשב וירטואלי ב- Azure. הם מספקים גם אפשרויות של שינוי קנה מידה ידני ואוטומטי עבור שירותי PaaS. אך גם אם שינוי קנה מידה מתבצע באופן אוטומטי, מנהל ענן צריך להפוך שינוי קנה מידה אוטומטי לזמין ולהגדיר אותו כך שספק הענן יידע כיצד ומתי יש לבצע שינוי קנה מידה. אחד השיקולים המרכזיים שמנהלי המערכת צריכים לקחת בחשבון הוא שמ מאחר שאתה משלם עבור מופעים בודדים של שירותי IaaS ו- PaaS, ברצונך לקבוע את התצורה של השירות כך שקנה המידה של יהיה מספיק בזמן שלא תדרג מדי. מיחשוב ללא שרת מציע את האפשרות של שינוי קנה מידה באופן שקוף וא אוטומטי כדי לעמוד בדרישות מוגברות ובקנה מידה כאשר הביקוש נמצא. בדרך כלל, מנהל ענן אינו מבצע תצורה מלבד הפיכת אפשרות זו לזמין בשירות. אם אתה מקבל 100 בקשות בבת אחת כדי לבצע פונקציה ללא שרת, ספק שירותי הענן מוודא שניתן לבצע את הבקשות במקביל (או בעיקר במקביל). העלות אינה מושפעת משום שלתמחור צריכה, העלות זהה לביצוע פונקציה 100 פעמים, בין אם הביצוע הוא טורי או מקבילי.
הפחתה של עלויות: ללא שרת מאפשר לך להתמקד בביצוע קוד וזרימות עבודה תוך העברת אחריות לכל דבר אחר, כולל שמירה על הפלטפורמה המשמשת כברירת מחדל, לספק שירותי הענן.
גם מיחשוב ללא שרת כולל חסרונות. כמה מהמגבלות שברצונך לשקול כוללות:
זמני ריצה מסוימים של פונקציות מטילים מגבלה על משך הזמן שבו פונקציה מותרת לבצע.
זמני ריצה מסוימים של פונקציות אינם מבטיחים שפונקציה תתבצע באופן מיידי, אלא אם אתה מוכן לשלם יותר כדי שזה יקרה. כאשר Azure Functions מוגדר להשתמש בתמחור מבוסס צריכה, לדוגמה, ייתכן שפונקציה לא תבצע עד 10 דקות לאחר הפעלתה. ייתכן שבעיה זו לא תיתם עבור גיבוי לילה; כנראה שלא אכפת לך אם הגיבוי .פועל בשעה 1:00 או ב-1:10 אך ייתכן שזהו מפסק עסקה עבור פונקציות קריטיות לזמן - פונקציות לבצע בזמן אמת (או ליד זמן אמת).
פונקציות ללא שרת הן בדרך כלל ללא מצב - לדוגמה, אין להן אפשרות לאחסן נתונים באופן פנימי ומצפים שהן יתעקשו מהצבעת פונקציה אחת לפונקציה הבאה. הם להשתמש חיצוני של אחסון בענן, כגון Amazon S3 ו- Azure Storage כדי לשמור על נתונים בין שיחות, אך פעולה זו הופכת את קוד הפונקציה מורכב יותר.
ספקי שירותי ענן מסוימים מציעים תמיכה בפונקציות מדינה (Azure קורא להם "פונקציות עמידות"), אך פונקציות השומרת על המצב הן תוספת עדכנית יחסית לחישוב ללא שרת והן אינן נתמכות באופן אוניברסלי.
פונקציות ללא שרת
הדוגמה הנפוצה ביותר של מיחשוב ללא שרת היא פונקציות ללא שרת. אתה מעלה קוד לענן ומספר לו מתי לבצע. ניתן לכתוב את הקוד במגוון שפות, כולל Java ו- C#.
איור 11 מפרט את שפות התיכנות הנתמכות על-ידי פונקציות ללא שרת ב- Azure, AWS ו- GCP בזמן כתיבה זו:
| שפה | Azure Functions | AWS למבדה | פונקציות Google Cloud |
|---|---|---|---|
| C# | x | x | |
| F# | x | ||
| הלך | x | x | |
| Java | x | x | |
| JavaScript (Node.js) | x | x | x |
| PowerShell | x | x | |
| פיתון | x | x | x |
| Ruby | x | ||
| TypeScript | x |
איור 11: שפות תיכנות הנתמכות על-ידי זמני ריצה פופולריים של פונקציות ללא שרת.
כאשר אתה יוצר פונקציה ומספק את הקוד שהיא מבצעת, אתה מזהה גם את האירוע החיצוני הגורם להפעלה של הפונקציה. פלטפורמות ענן פופולריות תומכות גורמים מסוגים שונים, כולל שעון עצר, אירועים המתרחשים בשירותים אחרים בענן (כגון העלאת מסמך לאחסון בענן) ושיחות HTTP. זהו עניין פשוט להעלאת קוד חיוב בזמן ריצה של פונקציה ולקבוע את תצורתו כך שיפעלו פעם ביום, פעם בשבוע או פעם בחודש. קל באותה מידה להפעיל פונקציה בכל פעם שחשבונית מועלת לאחסון בענן (לדוגמה, Amazon S3 או Azure Storage) או בכל פעם ששיחה ממוקמת ב נקודת קצה של REST המשויכת לפונקציה.
פונקציות ללא שרת משמשות לעתים קרובות כדי לבצע משימות עצמאיות כגון גיבויים וחיובים בלילה. הם משמשים גם לחיבור שירותי ענן אחרים ולחיבור פתרונות עשירים באמצעות שירותי ענן כאבן בניין. איור 12 מציג פתרון כזה המשמש לשילוב כמה שירותי Azure לניטור פעילות דוב הקוטב בקוטב הארקטי. פונקציה של Azure ממלאת תפקיד מרכזי בארכיטקטורה על-ידי הפקת הפלט מ- Azure Stream Analytics (המופעל על-ידי שיחת HTTP), אחזור תמונה מאחסון Azure Blob ושלחת התמונה למודל שמוכשר באמצעות Azure Custom Vision Service, המשתמש בבינה מלאכותית (AI) כדי לקבוע אם התמונה מכילה דוב קוטב. הפונקציה היא הדבק שמאגד יחד את Stream Analytics, Blob Storage ואת Custom Vision Service.
איור 12: שימוש בפונקציה Azure לחיבור שירותים אחרים של Azure.
זרימות עבודה ללא שרת
שירותי מיחשוב מסוימים ללא שרת מאפשרים ללקוחות להפוך זרימות עבודה עסקיות לאוטומטיות מבלי לכתוב קוד כדי לעשות זאת. Azure Logic Apps, לדוגמה, מספקים יותר מ- 100 מחברי כדי לגשת למקורות נתונים, החל ממסדי נתונים של Oracle ועד לשירותים של מדיה חברתית כגון X. הם מספקים מפעילים להגדרת הזמנים שבהם יש לבצע זרימות עבודה - לדוגמה, כאשר קובץ מועלה ל- Box.com או משהו מצייץ באמצעות תגית Hashtag שצוינה. בנוסף, הם מספקים מאות פעולות מוגדרות מראש המגדירות מה קורה כאשר גורם מפעיל מופעל ושבאפשרותך ליצור זרימות עבודה מורכבות, ו- תנאים המאפשרים ביצוע מותנה של פעולות. והם ניתנת להרחבה באופן אינסופי מכיוון אחת הפעולות ש- Azure Logic Apps תומכות בה היא אחת שקריאות לפונקציה Azure. אם זרימת עבודה כרוכה בלוגיקה מותאמת אישית שאינה כוללת כיתוב בפעולה, באפשרותך לספק את הקוד המיישם לוגיקה זו ולכלול אותה בזרימת העבודה כאילו היתה פעולה מוגדרת מראש.
איור 13 מציג זרימת עבודה אחת כזו במעצב Azure Logic Apps1. כאשר מגיע דואר אלקטרוני, היישום Logic נכנס לפעולה ובדוק אם קיים צירוף מילים מרכזי בשורת הנושא של הודעת הדואר האלקטרוני ואת הנוכחות של קובץ מצורף. אם שני התנאים מרוצים, היישום Logic מפעיל פונקציה של Azure כדי להסיר כל HTML מגוף הדואר האלקטרוני. לאחר מכן, היא מפקידה את הדואר האלקטרוני המברוך ואת כל הקבצים המצורפים הנלווים אליה באחסון Azure Blob ושולחת הודעת דואר אלקטרוני עם קישורים למסמכים הרלוונטיים ב- Blob Storage כדי להודיע לספקים מעוניינים שהמידע זמין וממתין לסקירה. דוגמה זו משלבת שתי פרדיגמה ללא שרת - אפליקציה לוגית שמבצעת פעולות ללא קוד (לפחות לא קוד שאתה או מישהו בארגון שלך כתבתם) ופונקציה של Azure המכילה קוד שסיפקת להתאמה אישית של זרימת העבודה - והיא מייצגת את המשמרת שמבצעת מיחשוב ענן מ- do-it- מחשבים וירטואליים לעצמך להפשטות ברמה גבוהה יותר, המאפשרות לארגונים למקד את החדות שלהם בפתרון בעיות עסקיות במקום לנהל מחשבים וירטואליים והתקנה ותחזוקה של זמני ריצה.
איור 13: הגדרת זרימת עבודה ביישומים לוגיים של Azure.
Amazon מציע שירות דומה בצורת פונקציות שלב ב- AWS. באמצעות פונקציות Step, באפשרותך לחבר זרימות עבודה חזותיות המשלבות שירותים אחרים כגון AWS Lambda ו- AWS ECS. זרימות עבודה מורכבות מסידרת שלבים, כאשר הפלט משלב אחד משרת כקלט לשלב הבא. כמו Azure Logic Apps, פונקציות שלב ב- AWS מספקות פרימיטיביים ליצירת הסתעפות ולביצוע מקבילי, ומונעת ממך לכתוב קוד כדי לבצע את אותה פעולה. בתוקף, זרימת עבודה עסקית הופכת לדיאגרמה של מחשב מצב שקל להבין אותה, שניתן להסביר בקלות לאחרים וקל לשנות אותה.
מסדי נתונים ללא שרת
בימים הראשונים של מיחשוב ענן, אירוח מסד נתונים בענן נועד להקצות משאבים למחשב וירטואלי ולהתקין מוצר מסד נתונים כגון MySQL, PostgreSQL או SQL Server. PaaS שינה זאת על-ידי הצעת מסדי נתונים כשירות. עם Azure SQL Database או Amazon Relational Database Service (RDS), לדוגמה, אתה פשוט מקצה מופע, ובדקות יש לך מסד נתונים המתארח בענן המוכן לשרת לקוחות. בנוסף, ספק שירותי הענן שומר על עדכניות פלטפורמת מסד הנתונים על-ידי החלת עדכוני תוכנה ותיקונים.
חדשנות עדכנית יותר במיחשוב ענן היא מסדי נתונים ללא שרת, שמציעים מודל ממוטב לביצועי מחירים, אידיאלי עבור מסדי נתונים יחיד עם דפוסי שימוש לא קבועים. Azure, לדוגמה, מציע גירסה ללא שרת של Azure SQL Database. עם הגירסה הרגילה של Azure SQL Database, אתה בוחר רמה של ביצועי מחירים בהתבסס על הטעינה המרבית שאתה מצפה שמסד הנתונים יטפל בה. אם טעינות הן "פיקנטי" או לסירוגין, לעתים קרובות אתה משלם כאילו מסד הנתונים חווה עומסים גבוהים כל הזמן.
הגירסה ללא השרת של Azure SQL Database מצמצמת זאת על-ידי שינוי קנה המידה של מסד הנתונים לפי הצורך כדי לטפל בעומסים שהוא נתקל בהם, עם עלויות המבוססות על סכום עלויות החישוב ועלויות האחסון. בדומה לפונקציות ללא שרת המשתמשות במודל צריכה, אתה משלם רק על הפריטים שבהם אתה משתמש. Amazon מציעה שירות דומה בצורה של AWS Aurora Serverless, שהוא גירסה ללא שרת של שירות מסד הנתונים Aurora של Amazon, ואילו Google מציעה ללקוחותיה שירות מסד נתונים NoSQL ללא שרת המכונה Google Cloud Firestore.
הפניות
- מיקרוסופט (2019). אוטומטית טיפול בהודעות דואר אלקטרוני ובקבצים מצורפים באמצעות Azure Logic Apps. https://learn.microsoft.com/azure/logic-apps/tutorial-process-email-attachments-workflow.
בדוק את הידע שלך
משוב
האם עמוד זה היה מועיל?
לא
זקוק לעזרה בנושא זה?
רוצה לנסות להשתמש ב'שאל את Learn' כדי להבהיר או להדריך אותך בנושא זה?