Show notes
פודקאסט מספר 359 של רברס עם פלטפורמה - אורי ורן מארחים את ארז ברקנר לשיחה על עננים נטולי שרתים (Serverless . . .), א-סינכרוניות ואנטי-חומר.לפני הכל, חדשות מרגשות - כנס רברסים השביעי (Reversim Summit 2019) יוצא לדרך!כן, כבר - 17-18 ביוני 2019, הצוות מתחיל להתאסף, ואם אתם (או אתן, או החברות שאתם עובדים בהן) רוצים להיות ספונסרים ולהתחבר לכנס הנפלא הזה, רוצו לתפוס מקום ממש עוד מעט יפתח גם ה - Call for Papers - אם יש לכם סיפור מעניין, אנחנו רוצים לשמוע, זה המקום. אם חיפשתם רעיונות ליעדים לשנה החדשה, הרצאה בכנס (או לפחות הגשת הצעה רשמית) יכולה להיות אחלה אופציה.אז איפה הסרבר שלי?ארז מפתח כבר הרבה שנים, התחיל בתור ילד בין 10 עם Commodore 64 ותכנות בבייסיק; תואר ראשון בזמן התיכון ושירות צבאי ביחידה טכנולוגית של משרד ראש הממשלה (בטח מותג מחדש מאז כ - Data Science).אחרי הצבא, הרבה שנים (14) ב - Check Point (בהתחלה כמפתח קרנל של Linux), שם גם נוצר הקשר עם אביעד מור, היום השותף (וה-CTO) ב-Lumigo.פגישה עם עולם ה-Serverless דרך עולמות ה-Cloud (ארז) וה - Emerging Technologies (אביעד), וב-2017 מעבר והקמה של -Lumigo.אז -Lumigo?החברה עוזרת למפתחים שמשתמשים בטכנולוגיות Serverless לזהות בעיות בסביבה ולמצוא את שורש הבעיה מהר - Monitoring, Alerting & Root-Cause Analysis.מסתכלים על כל עולם ה-Run Time - מה צריך על מנת להבין (קודם כל) שמשהו שאינו כשורה, ואז המסע אל הפתרון.למה ב - Serverless זה שונה לעומת microServices למשל? כדי להבין Serverless, צריך להסתכל על האבולוציה של המעבר מעולמות ה- On Premise לכיוון ה - Cloud.פעם היינו משתמשים בשרתים שישבו (פיסית) בחדר שרתים כלשהו בחברה; היום עברנו לעולם של Public Clouds, ואנחנו שוכרים שרתים לפי זמן וצורך (אם נשאר לנו כסף), שזה עדיף על לקנות שרת.אורי מרים גבה, עד כמה שאפשר באודיו.השלב הבא הוא האחריות - השרת הפיסי נמצא אצל ספק הענן, ואם מדברים על Dockers אז גם עניין האחריות לתחזוקה של מערכת ההפעלה עצמה יוצא החוצה.משם ממשיכים ל - Serverless: כל השרת ומערכת ההפעלה וכל מה שצריך בשביל Scaling ועוד - כל האחריות עוברת לספק הענן (AWS, GCP, Azure וכו’). החברה צריכה לכתוב רק את הקוד הייחודי שלה, להעלות לענן, והכל רץ לפי הצורך. אמריקה.רצנו קדימה, קצת יישור קו על מושגים - כשאומרים Serverless, מתכוונים לכל מיני דברים, לפעמים מאוד שונים, ואם יש דבר אחד שבטוח כן יש בו זה, ובכן - שרתים (Servers).יש סוגים שונים של שימושים, החל מפלטפורמות להרצת פונקציות (Lamdba של AWS או פתרונות מקבילים של Azure ו - GCP ועוד), דרך Database כשירות שמאפשר להריץ קוד בתוכו ועוד הרבה.הכל ביחד הם “שירותים ללא שרת”, ואליהם אנחנו מתייחסים כאן כעולם ה-Serverless - הרבה שירותי מדף שצריך לחבר בינהם.דברים כמו Google Cloud BigQuery כרגע מחוץ ל - Scope.אז מה בכל זאת חדש?יש שני סוגים עיקריים של בעיות - או בעיה מקומית בפונקציה (ואז מסתכלים פנימית ומוצאים Root Cause), או ששורש הבעיה נמצא איפשהו במעלה ה - Stack, וצריך להבין איפה לחפש.בעולם המסורתי, אפשר להסתכל על ה - Stack Trace ולראות איך הגעתי לכאן, אילו פונקציות נקראו ומה לא עבד.למשל - פונקציית ה - Lambda שלי רוצה להשתמש ב - Header, שלא נמצא . . למה? שאלה טובה - הרבה דברים יכלו להתרחש בדרך שעשויים היו לגרום לשירותים להיעלב אחד מהשני ולא להגיב כמו שצריך. בארכיטקטורה מונוליטית אפשר לראות מה נכנס, לבדוק בנקודת הבקרה הקרובה ולראות האם משהו חסר או נעלם או לא עבר כמו שצריך, ויש את כל ההיסטוריה מסודרת כדי לתחקר.אם הקוד אינו סינכרוני, קשה יותר להבין את ה-Flow, אם כי זה שה - Business Logic מפוצל להרבה מקומות לא ייחודי ל - Serverless ונכון גם ל - microServices למשל.מה שמתווסף בעולמות ה - Serverless זה שאין נגישות לשרת שרץ “מתחת”, ואין אפשרות לתכנן Agent שיבדוק מה קורה. מה שכן, אם אתה זה ששולח מידע ושולף חזרה, אפשר להצמיד לקטע המידע משהו שינטר אותו: על מנת לראות תמונה כוללת, צריך מזהה חד-חד-ערכי לאורך כל השירותים. במקרה א-סינכרוני זה הופך ליותר מאתגר, כי אין מטה-דאטה שאפשר להיצמד אליו, צריך למצוא דרך אחרת.בעולמות ה - microServices הבעייה דומה, עם כמה פתרונות - כלים בסגנון OPENTRACING ו- Zipkin, סוגים של Agents שניתן להתקין על המכונה או להזריק לשירות (ספרייה…

