איך מוסיפים יכולות חיפוש אפליקטיביות בלי לפרוס מנוע חיפוש יקר?

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

כשכמות הנתונים גדולה, המימוש של פתרון חיפוש מתקדם אינו פשוט (צילום: Dreamstime)

מאת איתי תבל, ארכיטקט פתרונות דאטה ב-MongoDB

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

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

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

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

חבלי הלידה

לפני כחמש שנים החליטה החברה לעבוד עם בסיס הנתונים MongoDB. אלינה מושקוביץ, מנהלת קבוצת פיתוח ב-CyberProof, משתפת שבהתחלה פתרון החיפוש עשה שימוש ביכולות הבסיסיות הקיימות בבסיס הנתונים. פתרון זה התבסס על שאילתות Mongo native ועל אינדקסים רגילים בטבלאות ששומרות את המידע האופרטיבי. זה יצר כמה אתגרים:

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

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

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

פיתוח פתרון מותאם

כדי להתמודד עם האתגרים הללו אימצה CyberProof את הכלי החדש יחסית שמציע בסיס הנתונים בשירות הענני המנוהל, Atlas search. קודם לכן התלבטה החברה בין כלים דומים, בהם Elastic Search, המבוססים על אותה טכנולוגיה (ספריית הקוד הפתוח Lucene). מה שהכריע את ההחלטה היה העובדה שכלים אלה מביאים מורכבות בפריסת תשתיות, העתקת נתונים, ניהול שוטף ועלויות רכש. במקרה של Atlas search, היות והפלטפורמה כבר מבוססת על השירות המנוהל של בסיס הנתונים, רוב האתגרים הללו נחסכו.

מענה טכנולוגי מבוסס Atlas Search לבדו לא סיפק פתרון מלא, וכעת נדרשה החברה לבצע התאמות נוספות כדי להעשיר את חוויית המשתמש ולהתאימה לתרחישי השימוש. הפתרון שמצאה היה בניית תת מערכת חיפוש ייעודית מעל היכולות של בסיס הנתונים, אשר מחצינה ללקוחות CQL – CyberProof Query Language – שפת שאילתות פשוטה וקלה להבנה.

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

השכבה העליונה כוללת שני ממשקים: ממשק UI הדומה לחיפוש מתקדם ב-Jira, שכולל יכולות השלמה תוך כדי כתיבה (Auto Complete); וממשק API המאפשר לצרוך יכולות חיפוש דרך כלי אוטומציה של החברה, כאשר גם ב-API ניתן להשתמש באותה שפת שאילתות עילית, בדומה ל-UI.

השכבה השנייה היא Parser שמתרגם שפת שאילתות עילית לשאילתות קטנות יותר שמועברות משם לשירותים השונים (managers), בהתאם לרכיב המידע אותו מחפשים. Managers יודעים כיצד לתרגם את הבקשה לשאילתה של ממש.

השכבה האחרונה היא Populate, הדואגת לארגן תוצאות חיפוש ולהעשיר אותן במידע נוסף בהתאם לבקשה. CQL Parser מבוסס על Peggi parser – כלי קוד פתוח שמאפשר לבנות כלי ניתוח ותרגום בצורה פשוטה ויעילה וגם מספק שגיאות ברמה גבוהה מאוד.

הנה דוגמה של תוצאה צפויה של תרגום על ידי ה-Parser:

וזו דוגמה כיצד שאילתה מתורגמת לשתי שאילתות, אחת Mongo native והשנייה Mongo Atlas:

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

אבולוציה של שירותי המידע הענניים

המקרה של CyberProof הוא דוגמה למקרים שאנחנו מזהים יותר ויותר, בהם לקוחות שירותי הענן מחפשים את הדרך הפשוטה ביותר ליישום דרישות המידע האפליקטיביות. בעשור האחרון חברות נפתחו לענן יותר מאי פעם, וכתוצאה מכך עלתה המודעות לעלות הנסתרת של ארכיטקטורות מידע מורכבות. שירותים מנוהלים נחשבים היום לפתרון הטוב ביותר להפחתת האחריות של הלקוח למינימום, ולמקסם את השקעת הזמן במקומות המביאים תועלת עסקית מקסימלית וקיצור ה-Time to market. באותו האופן, מספר גדול של שירותי מידע מנוהלים מביא לבזבוז משאבים של זמן ואנרגיה במאמצי אינטגרציה, ניהול שוטף והעתקות מידע. עם עליית המודעות לנושא, כמות גדלה של לקוחות מחפשים להשיג יותר משירותי המידע המנוהלים בהם הם כבר משתמשים. KIS – Keep It Simple.

הכתבה בחסות MongoDB

בסיס הנתונים של מונגודיבי (MongoDB) מבוסס קוד פתוח ונחשב לפתרון המוביל בקטגוריית בסיסי נתונים מודרניים (NoSQL) ולבסיס הנתונים בעל הצמיחה הגדולה ביותר בעשור האחרון. לחברה מעל 200 מיליון הורדות של גרסת הקוד הפתוח.

פתרון הדגל מונגודיבי אטלס (MongoDB Atlas) הינו שירות בסיס נתונים מנוהל מבוסס ענן (DBaaS) הזמין ב- GCP, AWS ו-MS Azure.
ב-MongoDB Atlas זמינה האפשרות להתנסות בשירות MongoDB Serverless.
מונגודיבי ישראל הוקם ב 2019 ומונה מעל 35 עובדים, מערך מכירות ושיווק, ניהול שותפים עסקיים, ארכיטקטי דאטה ומרכז תמיכה בלעדי בעברית שתומך בלקוחות (מעל 900) מהסקטורים: פיננסי וביטוח, סייבר ואבטחת מידע, פינטק, ממשלתי ובטחוני,היי-טק, סטארטאפים ועוד

כתב אורח

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

הגב

3 תגובות על "איך מוסיפים יכולות חיפוש אפליקטיביות בלי לפרוס מנוע חיפוש יקר?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
אלון
Guest

חחח מי משתמש בימינו בmongo ?

אלמוג
Guest

לפי דירוג פופולריות של מאגרי מידע נראה שהרבה.
מה האלטרנטיבה שלך?

בני
Guest

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

wpDiscuz

תגיות לכתבה: