الملفات
ghaymah-exam-noran-sre/README.md

4.9 KiB

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

.
├── 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

cd q1-deploy-monitor

docker build -t api .

docker run -p 5000:5000 api

Monitoring Script

bash health-check.sh

or

python monitor.py

Dashboard

Open:

dashboard.html

or serve locally:

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