هذا الالتزام موجود في:
2026-07-27 20:38:07 -04:00
الأصل 85d1266d2e
التزام 379d7b58f8
2 ملفات معدلة مع 40 إضافات و37 حذوفات

ثنائية
q4-scalability/architecture.png Normal file

ملف ثنائي غير معروض.

بعد

العرض:  |  الارتفاع:  |  الحجم: 44 KiB

عرض الملف

@@ -1,55 +1,58 @@
# Scalability and Load Balancing
# Q4 - Scalability and Load Balancing
## 1. Required Number of Containers
## 1. Architecture Overview
### Given
The application is deployed behind a Load Balancer that distributes incoming traffic across multiple application containers.
- Incoming traffic = **15,000 requests/second**
- One container can handle = **500 requests/second**
- Safety margin = **30%**
Components:
### Calculation
Required containers without margin:
15000 ÷ 500 = **30 containers**
Adding a 30% safety margin:
30 × 1.30 = **39 containers**
Rounded up:
**40 containers**
- Users
- Load Balancer
- Container Cluster
- Ghaymah Block Storage
- Database
---
## 2. Cold Start Strategy
## 2. Required Number of Containers
To reduce startup delays during traffic spikes, the following strategy is recommended:
Application Load = 15,000 requests/second
- Keep at least 2 containers always running.
- Enable Horizontal Pod Autoscaler (HPA).
- Cache container images on cluster nodes.
- Use lightweight Docker images.
- Configure Readiness Probes before sending traffic to new containers.
- Scale gradually to avoid resource spikes.
One Container Capacity = 500 requests/second
Required Containers:
15000 / 500 = 30 Containers
Safety Margin (30%):
30 × 1.30 = 39 Containers
Final Answer:
**39 Containers**
---
## 3. Using Ghaymah Block Storage
## 3. Cold Start Strategy
Ghaymah Block Storage should be used for stateful workloads that require persistent storage.
To reduce cold start latency:
Examples include:
- Keep a small number of warm containers running.
- Enable Auto Scaling based on CPU and request rate.
- Perform health checks before routing traffic.
- Register new containers with the Load Balancer only after becoming healthy.
- Use lightweight container images for faster startup.
- PostgreSQL
- MySQL
- MongoDB
---
## 4. Ghaymah Block Storage
Block Storage is used for stateful workloads such as databases.
Benefits:
- Data persists even if a container restarts.
- High reliability.
- Easy storage expansion.
- Suitable for production databases.
- Data persists even if containers restart.
- Supports high availability.
- Can be attached to replacement containers.
- Suitable for MySQL, PostgreSQL, MongoDB and other databases.