magento imagine 2013: fabrizio branca - learning to fly: how angry birds reached the heights of...

46

Upload: aoe

Post on 11-May-2015

2.263 views

Category:

Technology


3 download

DESCRIPTION

Apr 11, 2013

TRANSCRIPT

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

Learning To Fly: How Angry

Birds Reached the Heights of

Store Performance

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

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

San Francisco, CA

Janine

Fiona

that’s me

It’s a boy!

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

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

Magento Imagine 2012 Meet Magento 2012 Meet Magento 2011

Part II Part I

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

Lessons Learned ...from running a

High Performance Magento Store

original title of this presentation!

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

PC games (download)

Plush toys, shirts, ...

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

> 24.000.000 likes > 500.000 followers

Social Media Impact

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

1.000.000 unique visitors. per day.

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

concurrent users.

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

Orders.

10

5 6 7

8

9

per second. Yes, per second!

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

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

Downtime

Number of lost carts

Number of lost sessions and logins

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

Stores …and GeoIP redirection!

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

Themes

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

Growing Data

Trimming the fat!

Orders

Promotions

cms / banners

Aoe_CacheCleaner

Aoe_QuoteCleaner

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

Varnish Reverse Proxy

Magento

Protecting Magento

more traffic, more stores,

more products, more urls,…

less requests hitting Magento!

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

90%

Varnish Tweaking

Cache Hitrate

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

80%

Varnish Tweaking

Cache Hitrate

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

98.6%

Varnish Tweaking

Cache Hitrate

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

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

Cache in a Cache

Magento

Varnish

Aoe_AsyncCache Aoe_VarnishAsyncCache

Updates

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

Bottleneck Database

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

Database Tuning

db.m2.4xlarge

Provisioned IOPS Storage

Percona Toolkit

This is not an iPhone!

“High-Memory Quadruple

Extra Large DB Instance”

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

RDS

(MySQL)

RDS

(MySQL)

Cache Backend

Aoe_DbCache

Database Splitting

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

Sessions

FPC RDS

(MySQL) Redis

Cache Backend

Redis

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

Bottleneck File I/O

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

0

lib

community

core

local

Number of *.php files by location

Less file operations

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

Aoe_ClassPathCache Magento

Compiler

Solution File I/O

…also check Magento 2!

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

Report Generation

Don’t try this at home! on production

Read Replica Background

Process

Delta Pre-

processing

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

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

Code Quality Modules

Don’t let them bring you down!

Uh-Oh!

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

Code Quality Modules

Not enterprise

ready

Not production

ready

Not cloud

ready

Bad

performance

Security

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

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

Broken Testcases

Switch to Selenium 2

Nobody pays attention to test results

Menta

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

Lesson Learned Plan extra time!

Number of unexpected problems

Number of components

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

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: Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reached the Heights of Store Performance

Thank you, Team! You’re awesome!

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

Thank you! Any questions?

[email protected]

http://www.aoemedia.com

http://www.fabrizio-branca.de

@fbrnc Follow me on twitter!

My blog