System Design

Disaster Recovery va High Availability

Disaster Recovery — server crash, data center fire, yoki boshqa falokat vaqtida tizimni qayta tiklash.

RTO vs RPO

RTO (Recovery Time Objective): Tizim qancha vaqtda qayta ishga tushishi kerak?

RTO = 1 hour → 1 soat ichida tiklash
RTO = 1 minute → 1 daqiqa ichida tiklash

RPO (Recovery Point Objective): Qancha ma’lumot yo’qolishi qabul qilinadi?

RPO = 24 hours → Oxirgi 24 soat ma'lumoti yo'qolishi OK
RPO = 0 → Ma'lumot yo'qolishi mumkin emas

Backup Strategies

1. Full Backup

Every night: Copy entire database
Size: 100GB
Time: 2 hours

Simple
Slow, expensive

2. Incremental Backup

Sunday: Full backup (100GB)
Monday: Changes only (5GB)
Tuesday: Changes only (3GB)
...

Fast, cheap
Restore slow (need all increments)

3. Continuous Backup (Best)

Real-time replication to backup server
RPO ≈ 0

Multi-Region Architecture

Primary Region: US-East
    ↓ Replication
Backup Region: US-West

Primary crash → Failover to backup

3-2-1 Backup Rule

1. Production database
2. Local backup (same datacenter)
3. Remote backup (different region/cloud)

Testing

Disaster recovery plan faqat test qilinsa ishlaydi!

Monthly: Restore test
Quarterly: Full DR drill

Keyingi dars: Suhbatga tayyorgarlik.