יום שני, 10 במרץ 2014

208 Fogcast 06 - the many ways to scale

  • רן וליאור על איך מתמודדים עם סקייל?
  • נתחיל בהגדרות - מה זה פרפורמנס? זמן התגובה של פעולה אחת: לדוגמא טעינת דף.
  • ומה זה סקלביליות? מס' רב של פעולות כאלו.
  • במילים אחרות: דף אחד נטען לאט? יש לך בעיית פרפורמנס. הרבה דפים? בעיית סקייל.
  • סימפטום השמיכה הקצרה - תיקוני פרפורמנס מתגלים הרבה פעמים כשמיכה קצרה - כשמושכים לכיוון אחד, הכיוון השני נחשף.
  • שלושה דברים חשובים כשעושים שיפורי ביצועים: למדוד, למדוד, למדוד.
  • חשוב מאוד לקבל הוכחות ומספרים לכך שיש בעיה והיכן היא (דברי במספרים גברת).
  • איך מגלים שהאתר שלכם סובל מבעיית ביצועים? בצעו Twitter Driven Development TDD.
  • השיטה הטובה ביותר להתמודד עם סקייל היא לבצע הפרדה ולמדל את האפליקציה לפי:
    • סטייט - להפריד בין שירותים הזקוקים לסטייט לאלו שלא ואותם לשמור ב CDN
    • סקייל אנכי - לחזק את המחוזק: עוד זכרון פה, עוד CPU שם. נחמד אבל יש תקרת זכוכית.
    • סקייל אופקי - חוות שרתים.
    • רילטיים לעומת בטצ'.
    • אוןליין לעומת אופליין.
  • גן עדן לדחיינים -  כל לוגיקה שלא חייב להתבצע ברילטיים, שימו בתור ודחו את הטיפול לאח"כ  (אסינכרוני)
  • מתי נכון להתחיל לחשוב על סקלביליות? (מתי זה לא premature?)
  • כשצופים את הבעיה מראש ואין הבדל מבחינת העלות בין פתרון סקלבילי לשאינו כזה.
  • אנקדוטות:

הקובץ נמצא כאן האזנה נעימה ותודה רבה לאורן אפרתי על התמלול!

2 comments:

  1. Hi,

    Regards "When to start thinking about scaling". If we could anticipate when the next bottle-neck will come + leave enough time to develop the solution + deploying it, it will be great, right?

    A colleague of mine and I developed an Idea of how to do it:
    http://h30499.www3.hp.com/t5/HP-Software-Developers-Blog/Agile-Performance-Testing-Life-cycle/ba-p/6235149#.U5W0IvmSwqs

    One of the requirements is to have a "semi-like production environment", It's true that it's not always possible, but In cases where it's is - it's worth it,

    We'll be happy to get feedback about the idea!

    Thanks,
    Shay

    השבמחק
    תשובות
    1. Hi Shai, I read your post and to be honest, I was a little confused.
      You speak about CD and at the same time devote days to sections of the pipeline.
      My own experience with CD had been different. You don't have days. you have hours at best.
      The solutions I'd seen were to test in production, not in lab. This of course makes sense mostly to web dev, so that might be where our paths parted.

      מחק