System Design

Scalability asoslari

Scalability — tizimning yuklama ortishi bilan bajarilishini saqlash yoki yaxshilash qobiliyati.

Nega Scalability muhim?

Tasavvur qiling, siz startup yaratdingiz:

Muvaffaqiyatli mahsulot o’sadi. O’sish uchun tizim scalable bo’lishi kerak.

Vertical Scaling (Vertikal kengayish)

Scale Up — mavjud serverni kuchliroq mashina bilan almashtirish.

Server 1.0 → Server 2.0
- 4 CPU   → 16 CPU
- 8 GB RAM → 64 GB RAM
- 500 GB disk → 2 TB SSD

Afzalliklari

Kamchiliklari

Qachon ishlatiladi?

Horizontal Scaling (Gorizontal kengayish)

Scale Out — ko’proq serverlar qo’shish.

Server 1 → Server 1, 2, 3, 4, 5, ...
- 4 CPU    - 4 CPU (har birida)
- 8 GB RAM - 8 GB RAM (har birida)

Afzalliklari

Kamchiliklari

Qachon ishlatiladi?

Vertical vs Horizontal: Taqqoslash

XususiyatVerticalHorizontal
NarxQimmatArzon
CheklovHaYo’q
AvailabilityPastYuqori
MurakkablikOddiyMurakkab
Scaling tezligiSekin (downtime)Tez

Real-world misollar

Instagram

Stack Overflow

Netflix

Aralash yondashuv (Hybrid)

Ko’pincha ikkalasi birgalikda ishlatiladi:

┌─────────────────────┐
│  Load Balancer      │ ← Horizontal scaling
└─────────┬───────────┘

     ┌────┴────┬────────────┐
     │         │            │
┌────▼────┐ ┌─▼────────┐ ┌─▼────────┐
│ Server 1│ │ Server 2 │ │ Server 3 │ ← Horizontal
│ (16 CPU)│ │ (16 CPU) │ │ (16 CPU) │ ← Vertical
└─────────┘ └──────────┘ └──────────┘

Har bir server kuchli (vertical) + Ko’p serverlar (horizontal)

Stateful vs Stateless

Horizontal scaling uchun stateless bo’lish muhim:

Stateful (Muammo)

User → Server 1 (session saqlanadi)
User → Server 2 (session yo'q!) 

Stateless (Yechim)

User → Server 1 → Redis (session tashqarida)
User → Server 2 → Redis (bir xil session) 

Auto-scaling

Modern cloud platformalar avtomatik scale qiladi:

// AWS Auto Scaling Rule
if (CPU > 70%) {
  add_server();
}
if (CPU < 30%) {
  remove_server();
}

Afzalliklari:

Xulosa

Scalability — muvaffaqiyatli tizimning asosi.

Qoidalar:

  1. Kichik boshlaganda — vertical yetarli
  2. O’sish kutilsa — horizontal rejalashtiring
  3. Stateless arxitektura yarating
  4. Auto-scaling o’rnating
  5. Monitoring qo’ying (metrikalar kuzating)

Keyingi dars: Tarmoq asoslari va internet protokollari.