# 🚀 Horizontal vs Vertical Scaling — sodda tushuntirish

Backend’da yuklama oshganda, tizimni kengaytirish uchun 2 ta yo‘l bor:

* * *

## 📈 Vertical Scaling (Scale Up)

![](https://cdn.hashnode.com/uploads/covers/6875dbf585e7bd77b0faed73/91e24d4b-3f73-4c0c-9ad8-d1f32017fef7.png align="center")

👉 Bitta serverni kuchaytirasiz

Masalan:

*   2 core → 8 core
    
*   8GB RAM → 32GB RAM
    

### ✅ Afzalliklari:

*   Oson
    
*   Tez implement
    

### ❌ Kamchiliklari:

*   Limit bor
    
*   Single point of failure
    

* * *

## 🌐 Horizontal Scaling (Scale Out)

![Image](https://miro.medium.com/1%2A3fJ-HheX5a7i1cm5qUObWQ.jpeg align="center")

👉 Serverlar sonini ko‘paytirasiz

Masalan:

*   1 server → 5 server
    

Load balancer requestlarni taqsimlaydi.

### ✅ Afzalliklari:

*   Cheksizga yaqin scale
    
*   High availability
    

### ❌ Kamchiliklari:

*   Murakkab arxitektura
    
*   Redis / Queue / Shared DB kerak
    

* * *

## 🧠 Real misol (Laravel stack)

```text
[Load Balancer]

   ↓     ↓     ↓

[App1] [App2] [App3]
   ↓      ↓      ↓

     Redis (cache/session)
     RabbitMQ (queue)
     Database (shared)
```

👉 Har bir app bir xil ishlaydi 👉 Requestlar bo‘linadi 👉 System scalable bo‘ladi

* * *

## ⚠️ Eng muhim tushuncha

Horizontal scaling ishlashi uchun:

👉 App **stateless** bo‘lishi kerak

Ya’ni:

*   Session → faylda emas ❌
    
*   Session → Redis’da ✅
    

* * *

## 🔥 Xulosa

*   Vertical — oddiy va tez
    
*   Horizontal — professional va scalable
    

👉 Katta loyihalar **Hybrid** ishlatadi.
