Chapter 8

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

ComponentSpecRationale
CPUAMD EPYC 7313P, 16 coresCut thumbnail batch from 45m → ~12m; headroom for registration spikes
RAM64 GB DDR4 ECCMySQL buffer pool 24 GB, PHP-FPM pools, OS cache
Storage2× 1.92 TB NVMe, hardware RAID 1~1.92 TB usable; mirror for disk fault tolerance
Network2× 1 Gbps bonded (optional)Public traffic + room for backup rsync off-peak
IPMIDedicated port, VPN-onlyRemote 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

  1. Swift Host racks server; assign 203.0.113.10 (or new IP with DNS TTL lowered)
  2. IPMI install Ubuntu; configure RAID 1; harden SSH
  3. Restore DB/files from VPS backup; run load test
  4. 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
What’s next?

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.