מה זה Serverless ומבוא ל – AWS Lambda

מה זה ServerlessPhoto by Arthur Ogleznev on Unsplash

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

מה זה Serverless

הרעיון הבסיסי של Serverless, טכנולוגיה שהוצגה על ידי AWS ב – 2014 והפכה ל – GA ב – 2016, אומר שאני כותב קוד (בצורה מסויימת, לפי מספר כללים מוגדרים) וספק הענן שלי (AWS במקרה זה) ידאג להריץ לי אותו בכל פעם שקורה משהו שהוגדר כ – Trigger להרצת הקוד.

כיום יש מגוון מאד גדול של Triggers כגון שינויים בקבצים ב – S3, שינויים ב – DB שלי, IoT, אירועים שמוגדרים ב – CloudWatch, קריאות API ועוד ועוד. התחום הכללי של Event Driven Development התפתח מאד בשנים האחרונות וכיום יש ארכיטקטורות שלמות מבוססות Events שונים, המפעילים אחד את השני וזאת מבלי להריץ אפילו שרת אחד.

מעבר לארכיטקטורת Serverless מאפשר לי להינות מארבעה יתרונות עיקריים:

  • אין שרתים – אני לא צריך לנהל תשתית, הכל מנוהל על ידי הספק.
  • התאמה מלאה של התשתית לצרכים שלי – המערכת תעשה Auto Scaling לפי הדרישה של האפליקציה ולא צריך לעשות כלום על מנת להגדיר את זה.
  • אבטחה ושרידות מובנים – יש מגוון של כלים לאבטח את הפונקציה שלכם, לאן היא יכולה לגשת ומי יכול לגשת אליה. בנוסף, המערכת תריץ את הפונקציה שלכם במגון Availability Zones, על מנת להבטיח שרידות במקרה של תקלה באחד מהם.
  • תשלום לפי שימוש – לא השתמשת (הרצת) לא שילמת. ככה פשוט, תשלום לפי זמן ריצה של הפונקציה ומספר הרצות באינקרימנטים של 100ms.

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

מה בכל זאת השתנה בארבע שנים?

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

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

כמה שינויים שכדאי להכיר (חלקם מצויינים בכתבה המקורית וחלקם לא):

  • זמן הריצה של פונקציית Lambda בודדת היה מוגבל ב – 2016 ל – 5 דקות. כיום זמן הריצה המקסימלי הוא 15 דקות.
  • הקצאת זיכרון לפונקציה גם היא הייתה נמוכה יותר ועמדה של 1.5GB והוכפלה כיום ועומדת על 3GB.
  • קיימים מעל ל – 20 טריגרים שונים להפעלת Lambda וחדשים מתווספים כל הזמן. מגוון האפשרויות הוא עצום ומאפשר לפתח אפליקציות יותר ויותר מורכבות ללא שרתים.
  • שינויים גדולים עברו על API Gateway, אחד מהשרותים המרכזיים בבניית ארכיטקטורת Serverless. במהלך השנים הוצגו יכולות חדשות כגון Web Sockets וממשק בסיסי, זול ומהיר יותר לקריאות HTTP שנקרא HTTP API בניגוד לאחיו הגדול יותר REST API.
  • קיימת תמיכה במגוון גודל יותר של שפות פיתוח ואפילו אפשרות להוסיף שפות משלכם (כל עוד יש להן גרסה שרצה על לינוקס) על ידי שימוש ב – Custom runtimes, כן, אפילו של PHP.

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

אם עוד לא ראיתם את הסרטון על מה זה Serverless ו – Lambda, הנה הוא לפניכם.

Go Build!

אודות הכותב

בועז זינימן
Principal Developer Advocate ב – AWS. לפי שהצטרף ל – AWS שימש כדירקטור בכיר לאסטרטגיית Cloud בחברת התוכנה Rogue Wave Software אשר רכשה את Zend Technologies ב – 2015. בעשור האחרון ניהל את הצוותים הטכנולוגיים ב – Zend, כולל תיכנון ופיתוח כל מערכות ה – Web, פתרונות Hosting, אסטרטגיית IT ותשתיות. לפני שהצטרף ל – Zend, במהלך 15 השנים האחרונות, ניהל צוותי פיתוח Web במספר חברות טכנולוגיה בישראל. מתמחה בעיקר במחשוב ענן ובמערכות LAMP - Linux Apache MySQL PHP ובעל הסמכת ZCE - Zend Certified Engineer משנת 2005.