Complete SRE technical assessment with deployment, monitoring, CI/CD, scalability, and documentation

هذا الالتزام موجود في:
2026-07-27 15:15:26 +03:00
الأصل 0b269a7618
التزام 5390625e08
5 ملفات معدلة مع 472 إضافات و0 حذوفات

310
README.md
عرض الملف

@@ -0,0 +1,310 @@
# Ghaymah SRE Technical Assessment
A complete solution for the Ghaymah Site Reliability Engineering (SRE) technical assessment.
This repository demonstrates practical SRE and DevOps skills including containerization, monitoring, incident response, CI/CD automation, scalability planning, cloud architecture, and infrastructure documentation.
---
# Repository Structure
```text
.
├── README.md
├── q1-deploy-monitor/
│ ├── Dockerfile
│ ├── app.py
│ ├── requirements.txt
│ ├── health-check.sh
│ ├── dashboard.html
│ ├── update_monitor.py
│ └── monitoring-data.json
├── q2-postmortem/
│ └── postmortem-report.md
├── q3-cicd/
│ ├── workflow.yml
│ └── README.md
├── q4-scalability/
│ ├── architecture-diagram.png
│ └── calculations.md
├── q5-mithal-monitor/
│ ├── monitor.py
│ ├── dashboard.html
│ ├── monitoring-data.json
│ └── requirements.txt
├── common-mortakaz/
│ ├── integration-1.md
│ └── integration-2.md
└── common-qabilah/
└── qabilah-profile.txt
```
---
# Project Overview
The repository contains implementations for the following SRE topics:
| Question | Topic | Status |
|----------|-------|--------|
| Q1 | Container Deployment & Monitoring | ✅ |
| Q2 | Incident Postmortem & Auto Scaling | ✅ |
| Q3 | CI/CD Pipeline | ✅ |
| Q4 | Scalability & Load Balancing | ✅ |
| Q5 | Monitoring Dashboard | ✅ |
| Bonus A | Mortakaz Integration Proposals | ✅ |
| Bonus B | Qabilah Profile | ✅ |
---
# Technologies Used
- Python
- Flask
- Docker
- GitHub Actions
- HTML
- CSS
- JavaScript
- Chart.js
- Bash
- JSON
- Git
- Ghaymah Platform
- mithal.space
---
# Question 1 — Deploy & Monitor an API
Implemented:
- Dockerized Python API
- `/health` endpoint
- Monitoring script
- Simple monitoring dashboard
- Response time tracking
- Request counting
Features
- Docker container
- Health endpoint
- Automatic health checks
- Live dashboard
- JSON-based monitoring storage
---
# Question 2 — Incident Postmortem
Created a complete production-style postmortem including:
- Executive Summary
- Timeline
- Root Cause Analysis
- Corrective Actions
- Preventive Actions
- Auto-scaling Policy
- Monitoring Strategy
- Lessons Learned
---
# Question 3 — CI/CD Pipeline
Implemented a GitHub Actions workflow that includes:
- Docker image build
- Push to Ghaymah Container Registry
- Staging deployment
- Manual approval before production
- Production deployment
- Docker layer caching
Pipeline Flow
```
Push
Build Docker Image
Push Image
Deploy to Staging
Manual Approval
Deploy to Production
```
---
# Question 4 — Scalability Design
Designed an architecture capable of handling:
- **15,000 requests/second**
Included:
- High-level architecture
- Container sizing calculations
- Auto Scaling strategy
- Cold-start optimization
- Load balancing
- Block Storage usage
Result:
- **39 application containers**
---
# Question 5 — Monitoring Dashboard
Implemented a monitoring solution for **mithal.space**.
Collected metrics include:
- HTTP Latency
- Uptime
- HTTP Status
- DNS Resolution Time
- SSL Certificate Status
- SSL Expiration
- Search Response Time
Dashboard Features
- 24-hour uptime
- Response time graph
- SSL health
- Recent checks table
- Live status indicator
---
# Mortakaz Integration
Prepared two integration proposals demonstrating how products from Mortakaz can integrate with the Ghaymah ecosystem.
Included:
- Product overview
- Integration architecture
- Business value
- Technical challenges
- Architecture diagrams
---
# Qabilah
Qabilah profile:
**Profile**
https://qabilah.com/profile/noransalm/posts
The profile link is also included in:
```
common-qabilah/qabilah-profile.txt
```
---
# Running the Project
## Q1
```bash
cd q1-deploy-monitor
docker build -t api .
docker run -p 5000:5000 api
```
---
## Monitoring Script
```bash
bash health-check.sh
```
or
```bash
python monitor.py
```
---
## Dashboard
Open:
```
dashboard.html
```
or serve locally:
```bash
python -m http.server 8000
```
---
# Best Practices Applied
- Dockerized applications
- Health endpoints
- Automated monitoring
- Infrastructure documentation
- Production-style incident analysis
- GitHub Actions CI/CD
- Manual production approval
- Auto Scaling recommendations
- Persistent monitoring data
- Separation of environments
- Lightweight container design
- Cloud-native architecture
---
# References
- Docker Documentation
- GitHub Actions Documentation
- Flask Documentation
- Chart.js Documentation
- Ghaymah Platform Documentation
- mithal.space
---
# Author
**Noran Salm**
Computer and Systems Engineering Student
Qabilah Profile
https://qabilah.com/profile/noransalm/posts

15
common-mortakaz/README.md Normal file
عرض الملف

@@ -0,0 +1,15 @@
## Mortakaz Integration
### Integration Proposals
- **integration-1.md** — Nazel × Ghaymah Cloud
- **integration-2.md** — Hifz × Ghaymah & Mithal
### Recommended Integration
**Hifz** is the stronger candidate because:
- It is a complete web application.
- It naturally fits containerized deployment.
- It benefits directly from monitoring, persistent storage, and Auto Scaling.
- It can easily be delivered as a managed SaaS solution.

عرض الملف

@@ -0,0 +1,65 @@
# Integration Proposal 1
# Nazel × Ghaymah Cloud
## Product Overview
**Nazel** is an Arabic platform for uploading, sharing, and downloading files. It enables developers and individuals to distribute applications and digital content securely and efficiently.
---
# Proposed Integration
## Ghaymah Services
- Ghaymah Block Storage
- Ghaymah Container Registry
### Integration Idea
Replace local file storage with **Ghaymah Block Storage** to provide scalable and persistent storage.
For application uploads, integrate with **Ghaymah Container Registry**, allowing developers to publish container images directly after uploading their applications.
---
# Architecture
```mermaid
flowchart LR
User --> Web
Web --> API
API --> BlockStorage["Ghaymah Block Storage"]
API --> Registry["Ghaymah Container Registry"]
Registry --> Deploy["Deploy on Ghaymah"]
BlockStorage --> CDN["Content Delivery"]
```
---
# Benefits
- Persistent cloud storage
- Faster file delivery
- Automatic scalability
- One-click application deployment
- Improved reliability
---
# Challenges
| Challenge | Solution |
|-----------|----------|
| Large storage costs | Storage quotas and premium plans |
| Existing data migration | Incremental migration strategy |
| Data compliance | Regional infrastructure and encryption |
---
# Conclusion
Integrating Nazel with Ghaymah would improve scalability, reliability, and developer experience while reducing operational complexity.

عرض الملف

@@ -0,0 +1,76 @@
# Integration Proposal 2
# Hifz × Ghaymah & Mithal
## Product Overview
**Hifz** is an open-source platform for managing Quran memorization centers. It connects administrators, teachers, students, and parents through a centralized web application.
---
# Proposed Integration
## Ghaymah Services
- Ghaymah Container Platform
- Ghaymah Block Storage
- Mithal Monitoring
### Integration Idea
Deploy the application on Ghaymah containers while storing persistent data on Block Storage.
Use Mithal to monitor availability, latency, logs, and application health.
---
# Architecture
```mermaid
flowchart TB
Users --> App
subgraph Ghaymah
App --> Database
App --> Storage["Block Storage"]
end
subgraph Mithal
Metrics
Alerts
Logs
end
App -.-> Metrics
Metrics --> Alerts
Metrics --> Logs
```
---
# Benefits
- High availability
- Automatic scaling
- Persistent storage
- Continuous monitoring
- Faster incident detection
- Better operational visibility
---
# Challenges
| Challenge | Solution |
|-----------|----------|
| Sensitive data | Encryption and IAM |
| Infrastructure cost | Auto Scaling |
| Database migration | Staged migration |
| Container compatibility | Testing before deployment |
---
# Conclusion
Deploying Hifz on Ghaymah with Mithal monitoring creates a reliable, scalable, and production-ready platform suitable for educational organizations.

عرض الملف

@@ -0,0 +1,6 @@
Qabilah Profile
Name: Noran Salm
Profile:
https://qabilah.com/profile/noransalm/posts