67 أسطر
1.4 KiB
Markdown
67 أسطر
1.4 KiB
Markdown
# Scalability Design
|
||
|
||
## 1. Architecture
|
||
|
||
The application is deployed on a Kubernetes cluster hosted on Ghaymah Cloud.
|
||
|
||
Incoming traffic is distributed through a Ghaymah Load Balancer across multiple application containers. The application stores persistent data using Ghaymah Block Storage, which is mounted as a Persistent Volume.
|
||
|
||
---
|
||
|
||
## 2. Required Number of Containers
|
||
|
||
### Given
|
||
|
||
- Incoming traffic = **15,000 requests/second**
|
||
- One container handles = **500 requests/second**
|
||
- Safety margin = **30%**
|
||
|
||
### Step 1
|
||
|
||
Base number of containers
|
||
|
||
15000 / 500 = 30 containers
|
||
|
||
### Step 2
|
||
|
||
Add 30% capacity
|
||
|
||
30 × 1.3 = 39 containers
|
||
|
||
### Final Answer
|
||
|
||
**39 containers**
|
||
|
||
---
|
||
|
||
## 3. Cold Start Strategy
|
||
|
||
To reduce startup latency for newly created containers:
|
||
|
||
- Keep a minimum number of warm replicas running.
|
||
- Use Kubernetes readiness probes before routing traffic.
|
||
- Pull container images in advance on cluster nodes.
|
||
- Use Horizontal Pod Autoscaler (HPA) to scale before traffic reaches peak levels.
|
||
- Deploy applications with rolling updates to avoid downtime.
|
||
|
||
---
|
||
|
||
## 4. Using Ghaymah Block Storage
|
||
|
||
Ghaymah Block Storage provides persistent storage for stateful workloads.
|
||
|
||
Typical use cases include:
|
||
|
||
- Databases
|
||
- PostgreSQL
|
||
- MySQL
|
||
- Redis persistence
|
||
- Application uploaded files
|
||
- Persistent logs
|
||
|
||
Benefits:
|
||
|
||
- Data persists even if a container is recreated.
|
||
- Storage can be attached to new containers.
|
||
- Reliable and durable storage for production workloads.
|