הצלחת Uber עם Apache Pinot: חסכון עלות ושיפור ביצועים

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

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

  • 70% הפחתה בעלויות התשתית (חסכון של יותר מ-2 מיליון דולר בשנה)
  • 80% הפחתה בביקורות ה-CPU
  • 66% הפחתה בכמות הנתונים
  • 64% הפחתה בזמן טעינת הדף (מ-14 שניות לפחות מ-5 שניות)
  • הפחתה בעיכוב הטבילה לפחות מ-10 מיליושניות
  • ירידה בזמני מעבר וביטול בעיה של אובדן נתונים

צפו עכשיו

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

או המשך לקרוא כדי ללמוד כיצד אובר השיגה את התוצאות האלה עם אפצ'י פינות.

איך אובר מביאה אנליטיקה בזמן אמת לפצצות האפליקציה הניידת

לאבר היש צינור בלתי מובלע ממוחשב שעוקב אחר פיצוץ האפליקציה ואוסף מידע מחקרי. חלק מהמידע הזה נכנס ל-Apache Flink לשינויים, שלאחר מכן מוחזר לנושאי Kafka לצריכה מהנמוך. האירועים הגולמיים והמעובדים הללו ב-Kafka מושכים על ידי Apache Pinot, שלאחר מכן מריץ שאילתות נתונים שהתוצאות שלהן מועברות למשתמשים פנימיים באמצעות Grafana וכלים חזותיים פנימיים. צינור ההשמה שלהם קורס גם נתונים בזמן אמת וגם נתונים לא ממוחשבים (לא מתוארים) כדי ליצור תצוגה שלמה של משתמשים, המכונה טבלאות הייברידיות ב-Apache Pinot.

ניתוחי פיצוץ האפליקציה בזמן אמת עם Apache Pinot

אובר משחרר כ-11,000 שינויי קוד ותשתית חדשים כל שבוע, והם מסתמכים על כלי ביתי (Healthline) כדי לעזור לזהות ולפתור בעיות פיצוץ. Healthline מאפשר לאובר למדוד ולעמוד בממוצע הזמן לזיהוי (MTTD). לדוגמה, הם עשויים להשיק תכונה חדשה שגורמת לפיצוץ בלתי צפוי באפליקציה ועליהם להיות מסוגלים לזנק למקור הפיצוץ במהירות על ידי חקירת מידע הפיצוץ.

הלוחות הבאים מציגים מידע על פיצוץ של שבוע עבור אפליקציה נייד אחת וגרסה אחת של מערכת ההפעלה. בדוגמה זו, אירועי סשן מתרחשים עד למאות אלפי פעמים בשנייה, ופיצוצים מודדים בין 15,000 ל-20,000 אירועים בשנייה. אובר משלבת את המדדים הללו כדי לחשב אחוז הנכות חופשית, שמעיד על בריאות היישום (המטרה היא להיות קרוב ככל האפשר ל-100%).

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

ניתוח בפירוט מפורט של נתוני התרסקות

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

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

מדידת סגירות מסחריות בקנה מידה גדול

Uber משתמש גם ב-Pinot למדידת סגירות מסחריות ייחודיות לפי מכשיר, גרסה, מערכת ההפעלה ושעה בקנה מידה גדול. Pinot מספק עיבוד בזמן אמת עם תוך-כניסה גבוהה בקיבולת המסוגלת לספיגת 300,000 אירועי אנליטיקה של Uber לשנייה. לצוות יש סידור משולב שכולל טבלה בזמן אמת עם פירוט של 10 דקות ושמירה על הנתונים למשך 3 ימים, כמו גם טבלה לאון ליין עם פירוט שעתי ויומי ושמירה על הנתונים למשך 45 ימים.

השימוש ב-HyperLogLog של Apache Pinot אפשר לצוות להפחית את מספר האירועים שנשמרים ולבצע פחות אגרגטים ייחודיים על פני האירועים. Pinot גם סיפק עיכובים נמוכים מאוד – פחות מ-100 מילי-שניות לעיכוב p99.5.

חסכונות בעלויות תשתית

על פי החישובים של אובר, הם חסכו יותר מ-2 מיליון דולר בעלויות תשתית שנתיות על ידי העברתם ל-Pinot. הסטודציה שלהם של Pinot הובילה לירידה של 70% בעלויות תשתית בהשוואה ל-Elasticsearch. הם גם ראו ירידה של 80% במספר גרעיני ה-CPU וירידה של 66% בכמות הנתונים שלהם.

באלסטיק서כ, אובר השתמשה ב-22,000 גרעין של CPU. עם Pinot, הם הפחיתו את המספר הזה ב-80%. הנה תצלום של הסטודציה שלהם של Pinot:

שיפור בביצועי השאילתות ובחוויה המשתמש

עם Apache Pinot, אובר מסוגלת לספק חוויה משתמש טובה יותר עם עיבוד דף מהיר יותר וביטחון משופר. העברתם ל-Pinot הורידה את זמן עיבוד הדף ב-64%, מ-14 שניות לפחות מ-5 שניות. Pinot גם יותר רגיש לשיאים בעומס, מה שמוביל להחזרה מהירה יותר מהעיכובים. אפילו אם הצוות רואה עיכוב בספיגה, Pinot מסוגל להחזיר מהר בתוך מספר דקות.

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

האיטרציה הבאה של הסטודציה של אובר ב-Pinot

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

אובר אינה הארגון היחיד שרואה הצלחה על ידי העברה מאלסטיש לפינות

אוניקוד (לשעבר ביקונסטק) ראתה שיפור של 10x בביצועים השאילתה הכוללים על ידי עבורם מאלסטיש לפינות. סיסקו וובקס גם העבירו את האノליטיקה הממוחשבת והפעילות המעקב שלהם לפינות לאחר שעמדו בעיכובים גבוהים. הצוות וובקס מצא שאפן פינות של אפן פינות ספק 5x עד 150x פחות עיכובים מאלסטיש אלסטיש.

Source:
https://dzone.com/articles/real-time-app-crash-analytics-with-apache-pinot