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

הדופק של האתר – vital stats
זהו אחד העקרונות החשובים ביותר בשמירת ביצועים ויציבות של אתרים- ראשית הגדר לעצמך מהם הפרמטרים החשובים ביותר אחריהם אתה צריך לעקוב. מהם 5-10 הגרפים/נתונים שלפיהם תדע מה מצבך. הנתונים האלה משתנים מחברה לחברה, וככל שמשתכללים, כל נושא תפקיד בחברה יכול לעשות זום ולהגדיר פרמטרים משלו. פרמטרים שאני אוהב לעקוב אחריהם למשל הם:

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


איסוף נתונים

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

כדי לענות על השאלות האלה צריך משמעת אדוקה באיסוף לוגים. מאוד חשוב לדעת מה קורה במערכת שלך. הדרך היחידה לדעת את זה היא באיסוף חכם של מידע מהמשתמשים, השרתים וכל דבר אחר שיושב לך במערכת. הלוגים הם היסודות לשיפור ביצועים, לטיפול בבעיות, לאבחון נכון של בעיות וליכולת מדידה עצמית. לא יכול להיות מצב שבו מועלית אפליקציה חדשה, או פיצ'ר חדש, אבל לא מוספים לוגים למדוד אותו. התפיסה הזו חייבת להשתרש בחברה ולהפוך לחלק מה DNA של העובדים בה. כל פעילות חייבת להיות ברת מדידה.
ניתוח וDASHBOARD
מרגע שמדווחים הלוגים, צריך לרכז לסכם ולנתח אותם. הדיווח והאיסוף הם אבן יסוד, אבל בלי ניתוח והצגה איכותית שלהם הם בגדר עץ שנופל ביער. ישנם כלים מעולים לניתוח איסוף וניטור של מערכות, רבים מהם הם קוד פתוח וחינמיים (cacti למשל). הכלים האלה מאפשרים ליצר גרפים מגוונים ונותנים גמישות בניתוח הנתונים הנאספים, כמו גם מאפשרים מתן התרעות במקרים שהנתונים חורגים מקריטריונים שהוגדרו.
אני ממליץ לייצר dashboard שמרכז את הגרפים/הנתונים הקריטיים שהוגדרו. דף זה יהפוך למד הדופק של החברה. זה הדף שכל אחד יבדוק כשהוא מדליק את המחשב, או כשהוא רואה מישהו רץ בטירוף במסדרון…

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

לסיכום
התהליך שמתואר פה הוא למעשה מעגלי:

  1. הגדרת הפרמטרים והמטריקה למדידת האתר
  2. מימוש ואיסוף הדיווחים
  3. ריכוז וניתוח המידע שמציג את מצב המערכות
  4. הגדרת תמונת מצב והגדרת יעדים (תיקון ושיפור המערכת) וחוזר חלילה.

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

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