Overview
Explore the evolution of Shopify's multi-tenant architecture from a single-database, single-datacenter Rails application to a multi-database, multi-datacenter setup in this 39-minute conference talk from SREcon16 Europe. Discover the advantages of resource sharing among customers, including the ability to handle high-traffic events like flash sales. Learn about the challenges of scaling such architectures and isolating issues like resource starvation and back-end outages. Follow the journey through various stages of development, including partitioning, stateless servers, and the implementation of floating capacity. Gain insights into strategies for improving resiliency, scalability, and disaster recovery. Understand the trade-offs between isolation and utilization, and explore future directions for Shopify's infrastructure. Delve into topics such as datacenter failure handling, multiple load balancers, and the use of EngineX to enhance system performance and reliability.
Syllabus
Intro
About Shopify
The Spectrum
Conventional Rails
Partitioning
Why do we want to do this
How this looks
How failure was used
The advantage of one script
Stateless servers
Parting
Sorting Hat
Isolation vs Utilization
Floating Capacity
Next Chapter
Datacenter Failure
Multiple Load Balancers
Summary
EngineX
Conclusion
Taught by
USENIX