![Page 1: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/1.jpg)
![Page 2: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/2.jpg)
Learning To Fly: How Angry
Birds Reached the Heights of
Store Performance
![Page 3: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/3.jpg)
Insert photo of speaker
here
891 pixels h x 688 pixels w
Learning To Fly:
How Angry Birds
Reached the
Heights of Store
Performance
Lead Magento Developer
Fabrizio Branca
![Page 4: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/4.jpg)
San Francisco, CA
Janine
Fiona
that’s me
It’s a boy!
![Page 5: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/5.jpg)
AOE media, a Magento Gold Partner and leading provider for
Open Source-based Portal development, Web Content
Management and e-Commerce with its headquarters in San
Francisco, California and Wiesbaden, Germany and more than
120 people in seven offices world-wide.
![Page 6: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/6.jpg)
Magento Imagine 2012 Meet Magento 2012 Meet Magento 2011
Part II Part I
![Page 7: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/7.jpg)
![Page 8: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/8.jpg)
Lessons Learned ...from running a
High Performance Magento Store
original title of this presentation!
![Page 9: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/9.jpg)
![Page 10: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/10.jpg)
PC games (download)
Plush toys, shirts, ...
![Page 11: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/11.jpg)
> 24.000.000 likes > 500.000 followers
Social Media Impact
![Page 12: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/12.jpg)
1.000.000 unique visitors. per day.
![Page 13: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/13.jpg)
concurrent users.
![Page 14: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/14.jpg)
Orders.
10
5 6 7
8
9
per second. Yes, per second!
![Page 15: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/15.jpg)
![Page 16: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/16.jpg)
S3 Assets Storage
Varnish Array EC2
Frontend Array
CloudFront CDN for Skin
RDS MySQL
S3 Deployment
Cache
ELB Load Balancer
CloudFront CDN for Assets
Monitoring
Backend Array EC2 EC2
EC2
Worker Array EC2
Braintree
Mail DRM
Giftcards
Logging
EC2
Route 53 DNS-Service
shop.angrybirds.com
![Page 17: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/17.jpg)
Varnish Array
Frontend Array Worker Array EC2
Deployment x
ELB Load Balancer
Varnish ArrayEC2
Frontend ArrayBackend Array EC2 EC2
EC2
EC2
Deployment x+1 Release Y
ELB Load Balancer
Route 53 DNS-Service
shop.angrybirds.com
Deployment
![Page 18: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/18.jpg)
Downtime
Number of lost carts
Number of lost sessions and logins
![Page 19: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/19.jpg)
![Page 20: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/20.jpg)
Stores …and GeoIP redirection!
![Page 21: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/21.jpg)
Themes
![Page 22: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/22.jpg)
Growing Data
Trimming the fat!
Orders
Promotions
cms / banners
Aoe_CacheCleaner
Aoe_QuoteCleaner
![Page 23: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/23.jpg)
Varnish Reverse Proxy
Magento
Protecting Magento
more traffic, more stores,
more products, more urls,…
less requests hitting Magento!
![Page 24: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/24.jpg)
90%
Varnish Tweaking
Cache Hitrate
![Page 25: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/25.jpg)
80%
Varnish Tweaking
Cache Hitrate
![Page 26: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/26.jpg)
98.6%
Varnish Tweaking
Cache Hitrate
![Page 27: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/27.jpg)
Request a page (HTTP Request)
deliver static page
Request
Delivering static content
Placeholders for dynamic parts.
Cache-Control headers
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
Render the page
Browser Varnish Magento
Aoe_Static
![Page 28: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/28.jpg)
Reduce Number of Requests Do ajax requests instead of full page loads! »Add to basket
»Displaying the mini cart
Don’t do ajax requests! »Login status and username
»(Number of) cart items
»Geo location
Cache 404 pages and redirects!
Normalize urls!
… hitting Magento
Use cookies or localStorage
![Page 29: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/29.jpg)
Cache in a Cache
Magento
Varnish
Aoe_AsyncCache Aoe_VarnishAsyncCache
Updates
![Page 30: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/30.jpg)
Bottleneck Database
![Page 31: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/31.jpg)
Database Tuning
db.m2.4xlarge
Provisioned IOPS Storage
Percona Toolkit
This is not an iPhone!
“High-Memory Quadruple
Extra Large DB Instance”
![Page 32: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/32.jpg)
RDS
(MySQL)
RDS
(MySQL)
Cache Backend
Aoe_DbCache
Database Splitting
![Page 33: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/33.jpg)
Sessions
FPC RDS
(MySQL) Redis
Cache Backend
Redis
![Page 34: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/34.jpg)
Bottleneck File I/O
![Page 35: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/35.jpg)
0
lib
community
core
local
Number of *.php files by location
Less file operations
![Page 36: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/36.jpg)
Aoe_ClassPathCache Magento
Compiler
Solution File I/O
…also check Magento 2!
![Page 37: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/37.jpg)
Report Generation
Don’t try this at home! on production
Read Replica Background
Process
Delta Pre-
processing
![Page 38: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/38.jpg)
Processing Crons
cron.sh
cron.php
Aoe_Scheduler with multiple cron groups
will block other crons
performance issues, race conditions!
SCHEDULER_WHITELIST='a,b,c’
cron.sh cron2.php
SCHEDULER_BLACKLIST='a,b,c'
cron.sh
Aoe_Scheduler
![Page 39: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/39.jpg)
Code Quality Modules
Don’t let them bring you down!
Uh-Oh!
![Page 40: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/40.jpg)
Code Quality Modules
Not enterprise
ready
Not production
ready
Not cloud
ready
Bad
performance
Security
![Page 41: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/41.jpg)
Continuous Quality Assurance
Code Reviews Profiling,
stress tests Automate
Aoe_Profiler
Everything sounds better with “continuous”
Question everything!
Part of the dev process!
![Page 42: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/42.jpg)
Broken Testcases
Switch to Selenium 2
Nobody pays attention to test results
Menta
![Page 43: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/43.jpg)
Lesson Learned Plan extra time!
Number of unexpected problems
Number of components
![Page 44: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/44.jpg)
What’s next?
Move quotes Cache Backend
+ php-fpm
+ PHP 5.4
Web server EC2 instance
sizes
MySQL? MongoDB?
Less bigger instances vs.
more smaller ones?
![Page 45: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/45.jpg)
Thank you, Team! You’re awesome!
![Page 46: Learning To Fly: How Angryinfo2.magento.com/rs/magentoenterprise/images/... · shop.angrybirds.com . Varnish Array Frontend Array EC2 Worker Array Deployment x ELB Load Balancer EC2Release](https://reader034.vdocuments.net/reader034/viewer/2022042911/5f43043f909f5b40e6794c98/html5/thumbnails/46.jpg)
Thank you! Any questions?
http://www.aoemedia.com
http://www.fabrizio-branca.de
@fbrnc Follow me on twitter!
My blog