Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

  • 14,783 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • thanks for sharing fabrizio, beautiful presentation!
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
14,783
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
42
Comments
1
Likes
12

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Learning To Fly: How AngryBirds Reached the Heights ofStore Performance
  • 2. Learning To Fly: How Angry Birds ReachedInsert photo of speaker the here Heights of Store 688 pixels w 891 pixels h x Performance Fabrizio BrancaLead Magento Developer
  • 3. It’s a boy! Janine that’s meSan Francisco, CA Fiona
  • 4. AOE media, a Magento Gold Partner and leading provider forOpen Source-based Portal development, Web ContentManagement and e-Commerce with its headquarters in SanFrancisco, California and Wiesbaden, Germany and more than120 people in seven offices world-wide.
  • 5. Part II Part IMagento Imagine 2012 Meet Magento 2012 Meet Magento 2011
  • 6. Lessons Learned ...from running aoriginal title of High Performancethis presentation! Magento Store
  • 7. Plush toys, shirts, ...PC games (download)
  • 8. Social Media Impact> 24.000.000 likes > 500.000 followers
  • 9. 1.000.000unique visitors. per day.
  • 10. concurrent users.
  • 11. Orders.per second. 5 Yes, per second! 6 7 8 9 10
  • 12. shop.angrybirds.comCloudFront S3 Route 53 CloudFrontCDN for Assets Assets Storage DNS-Service CDN for Skin ELB Load Balancer Monitoring Logging EC2 EC2 Varnish Array EC2 Backend Array EC2 EC2 Frontend Array EC2 Worker Array DRM Mail S3 Cache RDS Deployment MySQL Giftcards Braintree
  • 13. shop.angrybirds.com Route 53 DNS-Service ELB ELB Load Balancer Load Balancer Deployment x Deployment x+1 Varnish Array EC2 EC2 V Release YFrontend Array EC2 Worker Array EC2 Backend Array EC2 EC2 Fro Deployment
  • 14. Downtime Number of lost carts Number oflost sessions and logins
  • 15. Stores…and GeoIPredirection!
  • 16. Themes
  • 17. TrimmingGrowing the fat! Aoe_CacheCleaner Aoe_QuoteCleanerData Orders Promotions cms / banners
  • 18. more traffic, more stores,more products, Protecting more urls,… Magento Varnish Magento Reverse Proxy less requests hitting Magento!
  • 19. VarnishTweakingCache Hitrate90%
  • 20. VarnishTweakingCache Hitrate80%
  • 21. VarnishTweakingCache Hitrate98.6%
  • 22. Browser Varnish Magento Request a page (HTTP Request) RequestAoe_Static Delivering static content deliver static page Placeholders for dynamic parts. Cache-Control headers Render the page Ajax call request dynamic parts and transfers the id of the currently visited product JSON response with dynamic content Replace placeholder Write session id to cookie
  • 23. … hitting Magento ReduceNumber of RequestsDo ajax requests instead of full page loads!»Add to basket»Displaying the mini cartDon’t do ajax requests! Use cookies or»Login status and username»(Number of) cart items localStorage»Geo locationCache 404 pages and redirects!Normalize urls!
  • 24. Aoe_AsyncCache Aoe_VarnishAsyncCache Updates MagentoCache ina Cache Varnish
  • 25. Bottleneck Database
  • 26. Database Tuning “High-Memory QuadrupleThis is not Extra Large DBan iPhone! Instance” db.m2.4xlarge Provisioned IOPS Storage Percona Toolkit
  • 27. Database Splitting RDS RDS(MySQL) (MySQL) Cache Backend Aoe_DbCache
  • 28. Redis Sessions RDS Redis(MySQL) FPC Cache Backend
  • 29. BottleneckFile I/O
  • 30. localcommunity lib Less file operations core Number of *.php files by location
  • 31. SolutionFile I/OMagento Aoe_ClassPathCacheCompiler …also check Magento 2!
  • 32. Don’t try this at home! on productionReportGenerationRead Replica Delta Pre- Background processing Process
  • 33. Processingcron.shcron.php Crons will block other crons performance issues, race conditions! Aoe_SchedulerAoe_Scheduler with multiple cron groups SCHEDULER_WHITELIST=a,b,c’ cron.sh cron2.php SCHEDULER_BLACKLIST=a,b,c cron.sh
  • 34. Code QualityModules Don’t let them Uh-Oh! bring you down!
  • 35. Code QualityModules SecurityNot enterprise Not production Not cloud Bad ready ready ready performance
  • 36. Everything sounds better Continuous with “continuous” Quality Assurance Questioneverything! Aoe_Profiler Code Reviews Profiling, Automate stress tests Part of the dev process!
  • 37. Broken Testcases Nobody pays attention to test resultsMenta Switch to Selenium 2
  • 38. Lesson LearnedPlan extra time! Number of unexpected problems Number of components
  • 39. What’s next? Less bigger instances MySQL? vs. MongoDB? more smaller ones?+ php-fpm+ PHP 5.4Web server EC2 instance Move quotes Cache Backend sizes
  • 40. Thank you, Team!You’re awesome!
  • 41. Thank you!Any questions? fabrizio.branca@aoemedia.com http://www.aoemedia.com http://www.fabrizio-branca.deMy blog @fbrnc Follow me on twitter!