יסודות סקיילינג: Latency, Throughput ו-SLOs
בשיעור הזה נלמד להעריך במספרים כמה "גדולה" מערכת צריכה להיות. נתרגל חישובי קיבולת (capacity — כמה עומס המערכת צריכה לעמוד בו), QPS (queries per second — כמה בקשות מגיעות בכל שנייה), כמה מקום אחסון צריך, כמה bandwidth (רוחב פס — כמות הנתונים שזורמת בכל רגע, כמו רוחב של צינור מים), ו-SLO (service leve
System Design (תכנון מערכות) הוא כמו לתכנן עיר שלמה: כבישים שמובילים את התנועה, מחסנים שמאחסנים דברים, רמזורים שמסדירים את הזרימה וצוותי תחזוקה שמתקנים תקלות — הכול כדי שהעיר תמשיך לעבוד בצורה חלקה גם בשעות העומס, כשכולם בחוץ בבת אחת.
- קיבולת ו-SLO
- המיומנות המרכזית של השיעור: להעריך במספרים את גודל המערכת — קיבולת (כמה עומס תעמוד בו), QPS (בקשות בשנייה), כמה אחסון צריך, כמה bandwidth (רוחב פס — כמות הנתונים שזורמת), ו-SLO (יעד שירות, ההבטחה שלנו על זמינות או מהירות). חישוב גס מראש שעוזר לתכנן נכון.
- Trade-off
- בחירה מודעת בין שתי אפשרויות, כשלכל אחת יש יתרון אבל גם מחיר. אין פתרון מושלם — בוחרים מה שמתאים, ומסבירים למראיין/ת מה מרוויחים ומה משלמים. כמו לבחור בין מסלול מהיר ויקר למסלול זול ואיטי.
- מדד תפעולי
- מספר שאפשר למדוד כדי לדעת אם ההחלטה באמת עובדת כשהמערכת חיה ומשרתת משתמשים אמיתיים (פרודקשן). למשל: latency (כמה זמן לוקח לתשובה לחזור), error rate (אחוז הבקשות שנכשלות), queue lag (כמה משימות מחכות בתור), cache hit ratio (כמה פעמים מצאנו את התשובה מוכנה במטמון) ועוד.