Capstone: Spec a Server for Workshop Co.
Right-size CPU/RAM/disk for their booking app.
Capstone objectives
- Right-size CPU, RAM, storage, and network for a workload
- Document RAID, backup, and provisioning plan
- Justify bare metal vs staying on VPS
The brief
Workshop Co. — Year 3 infrastructure
- Traffic
- ~8k visits/month, peak 200 concurrent during registration windows
- App
- PHP booking + MySQL, image uploads to local storage (50 GB today, 200 GB in 12 months)
- Batch jobs
- Nightly thumbnail regen — CPU-heavy, 45 minutes on current VPS
- Budget
- Moderate — prefer 3-year TCO over cheapest monthly
- Location
- Swift Host Edmonton data centre (Canadian data residency)
Your task — server specification
Produce a spec document with: CPU/RAM/disk/NIC, RAID level, backup strategy, OS, and one paragraph justifying bare metal over upgraded VPS.
Model solution
Recommended spec — EDM-BM-WC-01
| Component | Spec | Rationale |
|---|---|---|
| CPU | AMD EPYC 7313P, 16 cores | Cut thumbnail batch from 45m → ~12m; headroom for registration spikes |
| RAM | 64 GB DDR4 ECC | MySQL buffer pool 24 GB, PHP-FPM pools, OS cache |
| Storage | 2× 1.92 TB NVMe, hardware RAID 1 | ~1.92 TB usable; mirror for disk fault tolerance |
| Network | 2× 1 Gbps bonded (optional) | Public traffic + room for backup rsync off-peak |
| IPMI | Dedicated port, VPN-only | Remote recovery per Book 4 IPMI chapter |
Software & backup
- Ubuntu 24.04 LTS, Nginx, PHP 8.3-FPM, MySQL 8
- Nightly mysqldump + weekly full filesystem snapshot to Swift Host backup region (Toronto)
- Retention: 30 daily, 12 weekly — test restore quarterly
Justification vs VPS
Sustained batch CPU and NVMe IOPS during registration exceed cost-effective VPS sizing. Single-tenant hardware removes noisy-neighbour latency on MySQL writes. Three-year lease amortizes vs oversized VPS + separate object storage fees. Staging remains on VPS at 203.0.113.99.
Provisioning outline
- Swift Host racks server; assign
203.0.113.10(or new IP with DNS TTL lowered) - IPMI install Ubuntu; configure RAID 1; harden SSH
- Restore DB/files from VPS backup; run load test
- DNS cutover per Book 1 capstone plan; monitor 48h
Part 2 — cost sanity check
List three metrics you would graph for 30 days before signing bare metal contract.
Answer
- CPU sustained % during batch window (not just average)
- MySQL disk read/write latency (iostat)
- Registration peak — concurrent PHP-FPM workers and p95 response time
Book 5 introduces hypervisors — how Swift Host runs the VPS you are migrating from, and when Workshop Co. might run their own Proxmox cluster.
Book 4 complete
You understand bare metal anatomy, storage, remote management, provisioning, and lifecycle. You can spec a dedicated server for Workshop Co. with defensible numbers — not guesswork.