Planetary Scale Web Architecture: A Gentle Introduction
A high level introduction to massively scalable web servers, intended for an audience with only basic technical background (first year undergraduate level).
like? • What does a typical real world web application look like? • What does a web application serving a billion requests a day from across the planet with low latency and no downtime look like?
Machine Web Server A gatekeeper is useful to keep bad requests out and make sure good requests go to the right place… Database Load Balancer / Proxy … so we add a proxy at the front
• If it is important, have more than one • Slow is better than degraded, degraded is better than down • Practice and prepare for failures Resiliency Principles
Host Web Server Host DB Writer Load Balancer / Proxy Host Job Server Host Web Server Hosts Web Servers Host Job Server Hosts Job Servers Host DB Reader Host DB Standby
Host Web Server Host DB Writer Load Balancer / Proxy Host Job Server Host Web Server Hosts Web Servers Host Job Server Hosts Job Servers Host DB Reader Host DB Standby
Host Web Server Host DB Writer Load Balancers Host Job Server Host Web Server Hosts Web Servers Host Job Server Hosts Job Servers Host DB Reader Host DB Standby Load Balancers Load Balancers Edge Router Edge Router Also add multiple Internet Service Providers (ISPs)
Host Web Server Host DB Writer Load Balancers Host Job Server Host Web Server Hosts Web Servers Host Job Server Hosts Job Servers Host DB Reader Host DB Standby Load Balancers Load Balancers Edge Router Edge Router
Job Server Host Web Server Hosts Web Servers Host Job Server Hosts Job Servers Host DB Standby The Internet Host DB Reader Load Balancers Host DB Writer Edge Router Edge Router Data Center Host Web Server Load Balancers Host Job Server Host Web Server Hosts Web Servers Host Job Server Hosts Job Servers Host DB Standby Host DB Reader Load Balancers Host DB Writer Edge Router Edge Router A Global Scale Resilient Web App CDN
with failure and chaos • Redundancy is heavily used to let failures happen without bringing the whole system down • Production or Infrastructure Engineers build and maintain large scale resilient computer systems Summary