353 Istio episode artwork

EPISODE · Nov 3, 2018

353 Istio

from רברס עם פלטפורמה

פודקאסט מספר 353 של רברס עם פלטפורמה - אורי ורן מארחים במוצאי חג הבחירות המוניציפליות את שי ארליכמן לשיחה על פרויקט Istio (תזכורת לפודקאסט 351 / באמפרס 52). שי הוא CTO ומייסד משותף (Co-founder) של missinglink, שמספקת פלטפורמה לחברות עם Stack של למידה עמוקה (Deep Learning) ולמידת מכונה (Machine Learning), ועוזרת להן לנהל את הפיתוח והמידע - כלים שהתרגלנו אליהם בעולם קוד המקור ועדיין פחות נפוצים בתחומים הללו. החברה גדלה וכבר יש לקוחות משלמים, המוצר מפותח כבר שנתיים (ומשוחרר לשוק כמעט מההתחלה), הלקוחות הם המפתחים (קהל מאתגר :-)). חלק מ-Samsung Next, ממוקמים בשרונה בתל אביב (!Sharona  - לא להסתבך עם אבשלום קור). אז מה זה Istio? מפרש ביוונית. מתכתב עם ההגה של Kubernetes. יהיו עוד רפרנסים לים בהמשך . . . אז מה הבעיה? בפיתוח אפליקציות Web עולה השאלה של מה עושים ב-Production? הפתרון היה nginx לפני האפלקציה, שהיה משרת ודואג ללוגים, Load Balancing וכו’ (גם Caching, אם כי זה בדרך כלל בעצם Varnish ברקע). ואז הגיע Docker, וניהיה מאוד קל לעשות Deploy. ועדיין - היה Load Balancer לפני האפליקציה (אותו nginx). ואז יצא Kubernetes כדי לנהל את הכל. אז מי מנהל את ה-Load Balancer? כאן הגענו ל-Istio. מדובר קודם כל בסט כלים (שאמור להיות אדיש לפלטפורמה - Platform-Agnostic - אבל עובד הכי טוב מעל Kubernetes), שיוצר מעיין תווך בכל נקודה, ו”משתלט” על כל נקודות הקצה. כל בקשה (Request) מגיעה כל קודם אליו, ובעזרת מדיניות (Policy) מוגדרת הוא מחליט מה לעשות הלאה. דוגמא - משתמשים עם Cookie מסוג מסויים יופנו לגרסת Canary מסויימת, והיתר לגרסה שונה. אין צורך בשני שרתים או שתי סביבות וכו’. המודל הוא Layer 7 Routing - מודל OCI, שמאפשר להוסיף מאפיינים ''חכמים'', לא רק Routing אלא גם Logging (כי הוא מכיר את כל נקודות הקצה ויכול לייצר תשתית Tracing). שירותי Load Balancing קיימים במגוון צורות (HAProxy ושלל כלים של רוב ספקי הענן העיקריים - ELB, ALB, GCLB וכו’). מה שייחודי ב-Istio זה המימוש המבוזר. לא מרימים אף מכונה - רצים רק איפה שהשירות (Service) רץ, וה-Proxy נעשה בצורה שקופה. באותם Dockers (ה-Pods) של ה-Services הרלוונטיים יש נציג (Agent) של Istio: ה-Sidecar (סירה. של אופנוע, ועדיין עוד רפרנס לים). זהו אותו Proxy של Envoy שפותח ב-Lyft. לא ברור למה היה צריך עוד אחד מחדש, אבל נראה שיש להם את המשאבים ובכל מקרה יצא פרויקט מדהים. Istio הוא בעצם הרחבה (Extension) של Envoy. העבודה עם Kubernetes מאוד צמודה - בגרסא 1.9 למשל נוסף Webhook Injection, שתופס את כל ה-Events שמתרחשים, ויודע להיכנס בדיוק לנקודות שצריך להתממשק בהן. זהו מעיין End-point שמחצין את עצמו, ויש מאחוריו Service Discovery שימצא את השירות (Service) הנכון שאליו אני רוצה להגיע. קצת כמו Venom.  ניתן להקביל את זה ל-Proxy מאוד חכם שעוטף, יודע לזהות את ה-End Point, מבין לאן הייתה הכוונה לפנות, ומודע לעצם הקריאה. דוגמא - פנייה לשירות שנותן את זמני הזריחה והשקיעה (עינייני בית חכם), שנחסמה כיוון שלא ניתנה הרשאה ל-Istio לפנות לאותו שירות חיצוני - מעבר להשתלטות על הקלט, יש כאן גם ''הבנה'' (הסקה) עמוקה יותר לגבי הפלט הצפוי.  לא מדובר על החלפה של שירותי ה-Routing, אלא מעיין ניטור שלהם. שרשרת הקריאות נשמרת וניתן לנתח אותה ולהסיק על ההתנהגות של ה-Service Mesh. סיכום ביניים - Istio מאפשר שלושה שירותים של ראוטר מתוחכם: ניתוב חכם (Smart routing). אבטחת מידע (Security) - גורם לכל השירותים להיות MTLS. לוגים (ו-Tracing). כרגע לא על הכל לגמרי אבל זה הכיוון. טלמטריה, לרמה של E2E Tracing (עם מזהה לקריאה ספציפית) - שליטה על כל שרשרת הקריאות (מי הניע את מי), כשיש כלים כמו Zipkin ו-Prometheus שמאפשרים לראות מעיין “מפל” של שרשרת האירועים שנגרמו מקריאה מסויימת. מכאן אפשר לנתח כל מיני דברים, כמו זמן ממוצע למשך קריאה בהשוואה להתפלגות משך הקריאות הכללית וכו’. וכל זה אמור להתבצע אוטומטית. ב-Prometheus (גרסא 1.02) יש כבר הכל בפנים, והתחלה של גרף קריאות. לפחות חלק מהצוות שעובד על המוצר נמצא כאן בישראל במעבדות IBM בחיפה. הפרויקט בגדול נולד כשיתוף פעולה של IBM ו-Google, איפה זה נמצא היום? הבעיה (או “האתגר” בניסוח יותר אופטימי) היא שהפרויקט אמור לתמוך “בהכל”. בדומה ל-Kubernetes שהיה צריך את ה-EKS וה-Kubernetes Engine כדי להוריד את רמת הקושי, זה עדיין לא שם. צריך לקרוא הרבה מדריכים (ולהבין מה רלוונטי). זה עדיין שווה את זה. כיום, Kubernetes מאפשר רמה מסויימת של Routing ו-Load Balancing בין ה-Pods השונים באמצעות אבסטרקציה של Service. הבעיה היא שזה מאוד מוגבל מבחינת פתרון “חכם” ומצריך Plug-Ins שונים (ל-Security למשל), לא מובן מאליו בגרסת Out of the box, אם בכלל. אפשר לומר ש-Istio מחליף את שכבת ה-Load Balancing של Kubernetes, ומוסיף על זה את האלמנטים שהוזכרו למעלה. למה זה כל כך מסובך אם הכל זה רק Sidecar? יש כאן מעבר להתקנה של Docker לצד Docker . . .  ל-Istio יש ארבעה רכיבים עיקריים -  מיקסר (Mixer), שתפקידו לקחת את המדיניות (Policy) ו”לערבב” לתוך ה-Sidecar. פיילוט (Pilot), שתפקידו לבצע את ה-Routing. יש את ה-Citadel (למעריצי Rick and Morty), שתפקידו לנהל הרשאות (Certifications), באופן בלתי תלוי במה שרץ מתחת (Kubernetes, Mesos או משהו אחר) שכבה של Auto-injection, שתופסת את מה שקורה ב-Cluster על מנת לקבל החלטות. למה זה כל כך הסתבך? כי זה עולם גדול, עם הרבה צרכים והרבה אפשרויות שצריך לכסות, ואנחנו רק בגרסא ראשונה. זו רק ההתחלה. מתי אני יודע שאני צריך Istio? שי אומר שאם אתם משתמשים ב-Kubernetes, אתם צריכים Istio. כנסו לאתר של Zipkin ותראו את רמת ה-Tracing. תבינו שאתם טסים בלי מכשירים ותרצו גם כזה.  בעולם של App Engine היה Tracing Built-in - אתה רואה את הכל וכמה כל דבר לוקח. אתה מתרגל, ואז אתה מצפה לזה בכל מקום. אז Istio. ובכל זאת - מה לגבי Security? נשאלת השאלה האם יש צורך שתקשורת בין Services תיהיה ברמת אבטחה מקסימלית (ומה המחיר)? שי אומר שאצלו רוב המידע מועבר בתוך ה-Private Network אז זה פחות חושב - וזה חינם. האם רכיבי Istio בעננים שונים יודעים לתקשר אחד עם השני? על הנייר כן, ויש MTLS out of the Box. האם זה עובד באמת? שי לא ניסה, אבל זה אמור לעבוד (וזה גם שם של דג, כי חייבים עוד רפרנס אחרון לים). עוד פיצ’ר מעניין (אם כי עלול להיות מעט מסוכן) הוא Retry לקריאה שנכשלה (למשל Outbound Call) - אפשר להגדיר Policy שתנסה שוב מספר מוגדר של פעמים, וזה לא חלק מהקוד אלא חלק מה- Policy. זה הרבה יותר נוח (לא צריך לממש את הלוגיקה). כשחושבים על זה, Istio נמצא בכל מקום והכל עובר דרכו - זה לא יוצר עוד Latency? כן, זה מוסיף. צריך למדוד את זה. מישהו התלונן שעבור 2000 שירותים, ה-Sidecar מגיע ל-8G צריכת זכרון (יש גם בפחות) . . . עובדים על זה. בכאלה מספרים של שירותים יש כנראה עוד כמה בעיות מעבר ל-Sidecar. זה מעלה משמעותית את התקורה ההתחלתית של פרויקט. שימושי יותר עבור פרויקטים בשלבים מתקדמים יותר שרוצים לגדול (או מתכננים קדימה). המימוש של Envoy מאוד יעיל, כך שהחזקה של כל מפת הקריאות היא לא בהכרח בעיה ברוב המקרים אבל שוב - צריך למדוד. היום כבר לא צריך לחשוב על התווך, ולדאוג האם קריאת ה-HTTP יצאה ומה לגבי ה-MTU - צריך לכתוב את הקוד, והשכבות למטה יסתדרו באופן היעיל ביותר. האם Retry למשל לא כבר נמצא בתוך GRPC? לא, וכנראה שבכוונה. שימוש ב-Retry הוא סוג של פלסתר, שעלול ליצור Latency שיצטבר בלי לשים לב. כאן נכנס ה-Tracing שאמור להציף את זה. לסיכום - אם אתם משתמשים ב-Kubernetes, תנו מבט על Istio, אתם כראה צריכים כזה. תבדקו. הקובץ נמצא כאן, האזנה נעימה ותודה רבה לעופר פורר על התמלול

Episode metadata supplied by the publisher feed · Published Nov 3, 2018

NOW PLAYING

353 Istio

0:00 0:00

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

שוק ההון והעולם הפיננסי | תל אביב 360 Tel Aviv University לראשונה בישראל, נעלה לאוויר עם סדרת הפודקאסטים המרתקת: "השקעות אימפקט, בתכל'ס"סדרת הפודקאסטים תצלול יחד איתכם לעולם המרתק והחדשני של השקעות האימפקט. נעסוק בפרקטיקה (מספיק עם הדיבורים!) ולא נפחד לשאול את המשקיעים ואת השחקנים בתחום את השאלות הקשות (ולקבל תשובות אמיתיות).בהנחיית אירה פרידמן, בכירה בשוק ההון ומובילה בתחום השקעות האימפקט, אנחנו יוצאים למסע בין כסף להשפעה, ננפץ לא מעט מיתוסים ונלמד להשקיע עם אימפקט.האם באמת אפשר לייצר גם תשואה וגם שינוי חברתי או סביבתי?האם גם גמל ופנסיה שלנו מושקעים בהשקעות אימפקט?זה קורה רק באירופה ובסיליקון ואלי או גם כאן, אצלנו בישראל?האם גם לקרן פילנתרו עולים להגנה - הפודקאסט של הסניגוריה הציבורית הסניגוריה הציבורית הסניגוריה הציבורית מציינת 30 שנות עשייה בפודקאסט חגיגי. הבימאית לימור פנחסוב במפגשים מרתקים עם חשודים, נאשמים וסניגורים ציבוריים, על מורכבות החקירה ודיוני בית המשפט.קשה להאמין, אבל עד לפני כ־30 שנה, רוב הנאשמים בישראל עמדו לדין ללא ייצוג משפטי. מרבית הקטינים בבתי המשפט לנוער לא היו מיוצגים, ומאות בני אדם נשלחו למאסר מבלי שזכו להגנה משפטית ראויה. רק עצור אחד מתוך 50 זכה לפגוש עורך דין לפני חקירתו. ברקע המציאות הזו, הוקמה הסניגוריה הציבורית.הסניגוריה הציבורית מייצגת, מגינה ומובילה שינויים – מבתי המשפט ועד תחנות המשטרה, מייצוג קטינים ועד מתמודדי נפש, מאולמות המעצרים ועד לוועדות השחרורים. הסניגוריה הציבורית מביאה עמה גישה אחרת: כזו שנאבקת בפרופיילינג, סטריאוטיפים ודעות קדומות. היא אינה רק מי שמייצגת את מי שאין לו – אלא מצפן מוסרי הפועל לשמור על כבוד האדם, על שוויון בפני החוק, ועל האפשרות לקיום צדק אמיתי. בואו נדבר על... עם פרופסור דן אריאלי Dan Ariely בכל עונה, דן חוקר נושא אחד המעניין אותו אישית. הוא מזמין מומחים ישראליים שעוזרים לו להבין טוב יותר את הנושא בעזרת פרספקטיבה ייחודית שרק דן יכול להביא לשיחה.‏בעונה הזאת דן מדבר עם אורחים שונים מפרספקטיבות שונות על הפרק האחרון בחיים סיפור ביום - A Story A Day כאן | Kan פותחים כל יום עם סיפור קצר. סיפורים קלאסיים לצד סיפורים חדשים, של סופרים מקומיים לצד סופרים בינלאומיים. שיתוף פעולה עם "פרויקט הסיפור הקצר"

Frequently Asked Questions

How long is this episode of רברס עם פלטפורמה?

Episode duration information is not available.

When was this רברס עם פלטפורמה episode published?

This episode was published on November 3, 2018.

What is this episode about?

פודקאסט מספר 353 של רברס עם פלטפורמה - אורי ורן מארחים במוצאי חג הבחירות המוניציפליות את שי ארליכמן לשיחה על פרויקט Istio (תזכורת לפודקאסט 351 / באמפרס 52). שי הוא CTO ומייסד משותף (Co-founder) של missinglink, שמספקת פלטפורמה לחברות עם Stack של...

Can I download this רברס עם פלטפורמה episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!