Surviving a Prime Time TV Commercial
summary
E-commerce front end built with Symfony2 serves pages under 100 ms behind Varnish and survives thousands of concurrent visitors by using Elasticsearch as primary datastore (products, prices, availability), three cheap ES nodes with MySQL replication via triggers into an append-only table polled every 60s, and automated deployment (Puppet, Capistrano, supervisorD). Traffic splits by protocol so HTTP hits fast front end and HTTPS goes to legacy checkout, cart state uses a marker cookie, assets live on S3/CloudFront, and staging mirrors production for realistic load tests.
AI-written summary · about
chapters (29)
- 0:00Introduction
- 1:48The challenge
- 4:17TV ad traffic spike
- 6:44Scaling e-commerce sites
- 8:51Hybrid architecture
- 10:19Performance and reliability goals
- 13:31Architectural decisions
- 15:17Hosting and cloud
- 18:27Symfony and bundle inheritance
- 20:09Twig and template sharing
- 20:51Elasticsearch as database
- 22:16Hardware simplification
- 24:01MySQL to Elasticsearch replication
- 25:04SupervisorD for tasks
- 26:50Cache invalidation and Varnish
- 28:59Caching strategies and ESI
- 30:21Traffic segregation
- 31:48Shopping cart caching
- 33:14Automated staging and production
- 34:59Vagrant for development
- 36:23Failure testing in staging
- 37:05Profiling and performance
- 38:06Business automation lessons
- 38:48Logging and tracking
- 39:33Load testing with Siege
- 40:15Asset storage on S3
- 41:20Transactional emails
- 43:08Monitoring with New Relic
- 43:49Current performance
related talks
56mLarge scale websites performance optimisation tricks
50mBuilding and Operating Online Shops under Extreme Load
17mMaintaining performance across a highly dynamic commerce site
35mSurviving Black Friday: Tales from an e-Commerce Engineer
27mScaling for the Expected and Unex
22mOptimization strategies for a performant, headless storefront
47mFrom Legacy to High-Load: Evolution of a Web Application
24mCache for Commerce Performance and Optimization for High Volume Sales
