Presentation: "Etsy: Architecture Optimized for Change"
Time: Monday 12:05 - 13:05
Location: Salon D
The interesting bits of Etsy's architecture are not about the what, but the why. Two years ago, in the face of poor uptime and brittleness, we rolled out a new architecture that, in addition to providing horizontal scalability and performance, optimized for some non-traditional goals:
* rapid change, experimentation and low drag
* mean time to resolve
* organizational resilience
We prefer global appropriateness to local optimization, failure recovery to failure avoidance, confidence building techniques to QA, and iteration to releases. We've collapsed a diverse set of languages and datastores to PHP backed by sharded MySQL with heavy lifting in Java, removed message queues in favor of job servers, removed frameworks in preference of home rolled, and collapsed a multi-tier SOA into a primarily monolithic codebase. In particular we use PHP, Apache, MySQL, Gearman, S3, Elastic Map Reduce, Cascading, SQLite, Statsd, Deployinator, Squid, Graphite, and Ganglia.
Etsy serves between 1-2 billion page views a month, did $525 million in sales last year, deployed the site 10,000+ times, released 35 open source projects, added 14,000 automated tests and checks, and gathered 260,000 different site metrics.