Vertical Scaling. Horizontal Scaling. Stateless services. Auto Scaling Groups. Read Replicas. Sharding. Capacity Planning. Single Point of Failure. Scale Up vs Scale Out. Fault Tolerance. HPA. Spot Instances. Bin Packing.
זה ה-vocabulary של השיעור הזה - וזו ההחלטה הראשונה שכל ארכיטקט לוקח לפני שמצייר משהו. Scaling Strategy לא נכונה לא מתפוצצת ב-100 users. היא מתפוצצת ב-100K, כשכבר אי אפשר לחזור אחורה בלי שלוש שנים של refactor. בשיעור הזה תבינו את ההבדל בין שתי הגישות, מתי לבחור איזו, ולמה Stateless הוא ה-litmus test שלכן.
Vertical vs Horizontal
Vertical Scaling
Scale Up - server אחד שמן
פשוט - אין שינוי בקוד
מתאים ל-DB primary ול-stateful services
Stack Overflow מריצה 100M users ככה
תקרה פיזית - x1e.32xlarge ב-$19K/חודש
Single Point of Failure מוחלט
עלות לא לינארית - קופצת בכל דור
Horizontal Scaling
Scale Out - הרבה servers קטנים
אין תקרה - מוסיפים עוד nodes
Fault tolerant - נפילה אחת = 1/N
עלות לינארית, ניתנת לחיזוי
הקוד חייב להיות Stateless
מורכבות תפעולית - LB, Service Discovery
Deploys מורכבים יותר