This document outlines best practices for scaling websites based on eBay's experience managing over 2 billion page views per day. The five best practices are: 1) Partition everything to split problems into manageable chunks, 2) Use asynchrony everywhere to improve scalability, availability, and latency, 3) Automate everything to scale with machines rather than humans, 4) Remember that everything fails and build systems to tolerate failure, and 5) Embrace inconsistency since consistency cannot be guaranteed in distributed systems according to Brewer's CAP theorem. Patterns for implementing each practice like partitioning by data range, using event queues, and graceful degradation are also described.