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.