Hasty Briefsbeta

Rearchitecting GitHub Pages (2015)

8 days ago
  • #Rearchitecting
  • #GitHub Pages
  • #Infrastructure
  • GitHub Pages initially ran on a single pair of machines with a simple architecture.
  • The old system had limitations like 30-minute delays for new sites and storage constraints.
  • The new architecture includes a frontend tier with nginx and ngx_lua for routing, and a fileserver tier with DRBD for data replication.
  • MySQL read replicas are used for routing, with mitigations for availability issues.
  • Fastly caches responses to minimize downtime impact.
  • The new system allows instant publishing of new sites and horizontal scaling of storage.
  • ngx_lua's performance is excellent, adding less than 3ms to requests at the 98th percentile.