# 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