angrybirds - overview for a high performance shop

Post on 11-May-2015

571 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Overview of Challanges and Solutions of a high performance shop (at the example of Angrybirds) - E-HandelsSnack in Stockholm 2013

TRANSCRIPT

Challenges for a high performance Shop

Angrybirds in the Cloud

September 12 | E-HandelsSnack | Stockholm

Donnerstag, 19. September 13

@aoepeople

@

danpoetz

DanielPötzinger

Donnerstag, 19. September 13

@aoepeople

�����)

@

danpoetz

DanielPötzinger

Donnerstag, 19. September 13

���$""�'�� !$��!����

� !������

�#)�'%' (�����'��

Donnerstag, 19. September 13

2.5 billion internet users

Donnerstag, 19. September 13

360 495677 785 914 1022 1150

13641560

1764

2013

2265

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011

2.5 billion internet users

Donnerstag, 19. September 13

360 495677 785 914 1022 1150

13641560

1764

2013

2265

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011

2.5 billion internet users

�$� �!���� �� "%��) "$� !���#)�'#�)

Donnerstag, 19. September 13

Donnerstag, 19. September 13

Donnerstag, 19. September 13

Donnerstag, 19. September 13

152,2 Million €

68,5 Million € Consumer Products

Donnerstag, 19. September 13

Donnerstag, 19. September 13

Donnerstag, 19. September 13

> 24.000.000 likes > 500.000 followers

Social MediaImpact

Donnerstag, 19. September 13

Donnerstag, 19. September 13

Irregular Traffic Behaviour

Donnerstag, 19. September 13

Angrybirds frequent Releases

Donnerstag, 19. September 13

Angrybirds frequent Releases

2012 2013

Donnerstag, 19. September 13

Angrybirds frequent Releases

2012 2013

Donnerstag, 19. September 13

Angrybirds frequent Releases

2012 2013

Giftca

rds

Geo IPAsy

nc R

epor

ts

Sear

ch

Targ

eting

Prod

ucts

Donnerstag, 19. September 13

The DevOps Conflict

Donnerstag, 19. September 13

The DevOps Conflict

Frequent development and releasing of new

features

Donnerstag, 19. September 13

The DevOps Conflict

Frequent development and releasing of new

features

Scalable and stable Operation

Donnerstag, 19. September 13

Biggest Problems

Donnerstag, 19. September 13

Biggest Problems

Donnerstag, 19. September 13

Biggest ProblemsChallenges

Donnerstag, 19. September 13

Biggest ProblemsChallenges

1. Handling the tremendous peaks

Donnerstag, 19. September 13

Biggest ProblemsChallenges

1. Handling the tremendous peaks

2. Quick Handling and deploymentof Changes and new Features

Donnerstag, 19. September 13

Donnerstag, 19. September 13

Handling the peaks...

Donnerstag, 19. September 13

How to deal with peaks

Donnerstag, 19. September 13

✓ quick scale on demand✓ pay only for what you use

Donnerstag, 19. September 13

How to deal with peaks

Donnerstag, 19. September 13

*)$(��! #�

How to deal with peaks

Donnerstag, 19. September 13

��'�� $#(�, )�������+� !�� ! ).�/$#�(

�!$)�$��„�����(�'+�'(0��$'��$#)�#)���! +�'.

Global Cloud Infrastructure

Donnerstag, 19. September 13

Think cleanly about your operation infrastructureDonnerstag, 19. September 13

Setting up a new environment should always be faster

than fixing an existing oneDonnerstag, 19. September 13

What you should do

Donnerstag, 19. September 13

What you should do

Automate the setup of new servers

Donnerstag, 19. September 13

What you should do

Automate the setup of new servers

Automate failover

Donnerstag, 19. September 13

What you should do

Automate the setup of new servers

Automate failover

Automate scaling

Donnerstag, 19. September 13

What you should do

Automate the setup of new servers

Automate failover

Automate scaling

Save work by using AWS concepts

Donnerstag, 19. September 13

Donnerstag, 19. September 13

Backend Array

Frontend Array

Worker Array

Varnish Array

Donnerstag, 19. September 13

Backend Array

Frontend Array

Worker Array

Varnish Array

Loadbalancer

Donnerstag, 19. September 13

Deployment X

Backend Array

Frontend Array

Worker Array

Varnish Array

Loadbalancer

Donnerstag, 19. September 13

Deployment X

Backend Array

Frontend Array

Worker Array

Varnish Array

DNS

shop.angrybirds.com

Loadbalancer

Donnerstag, 19. September 13

Deployment X

Backend Array

Frontend Array

Worker Array

Varnish Array

DNS

shop.angrybirds.com

File Storage

File Storage DatabaseCache

CDN CDN

Braintree

MailDRM

Giftcards

Loadbalancer

Donnerstag, 19. September 13

Load Balancer

Backend Array

Frontend Array

Worker Array

Varnish Array

Deployment X

DNS

Donnerstag, 19. September 13

Worker Array

Deployment X

DNS

Donnerstag, 19. September 13

Worker Array

Deployment X

DNS

Donnerstag, 19. September 13

Worker Array

Deployment X

DNS

Deployment X+1

Donnerstag, 19. September 13

Worker Array

Deployment X

DNS

Deployment X+1 Loadbalancer

Backend Array

Frontend Array

Worker Array

Varnish Array

Donnerstag, 19. September 13

Worker Array

Deployment X

DNS

Backend Array

Frontend Array

Worker Array

Varnish Array

Deployment X+1 Loadbalancer

Donnerstag, 19. September 13

Frontend Array

Worker Array

Varnish Array

Deployment X

DNS

Backend Array

Deployment X+1Loadbalancer Loadbalancer

Donnerstag, 19. September 13

DNS

Backend Array

Deployment X+1

Frontend Array

Worker Array

Varnish Array

Deployment XLoadbalancer Loadbalancer

Donnerstag, 19. September 13

DNS

Backend Array

Deployment X+1

Frontend Array

Worker Array

Varnish Array

Deployment XLoadbalancer Loadbalancer

Donnerstag, 19. September 13

DNS

Backend Array

Deployment X+1 Loadbalancer

Donnerstag, 19. September 13

0Donnerstag, 19. September 13

0Downtime

Donnerstag, 19. September 13

0Downtime

Number of lost carts

Donnerstag, 19. September 13

0Downtime

Number of lost carts

Number of lost sessions and

logins

Donnerstag, 19. September 13

Scaling is about finding the bottleneck

Donnerstag, 19. September 13

The fastest HTTP Request is..

Donnerstag, 19. September 13

The fastest HTTP Request is..

the one- never made!Donnerstag, 19. September 13

Traffic

HTTP Cacheing

Donnerstag, 19. September 13

App

licat

ion

Traffic

HTTP Cacheing

Donnerstag, 19. September 13

App

licat

ion

TrafficBr

owse

rTraffic

HTTP Cacheing

Donnerstag, 19. September 13

App

licat

ion

Traffic

CDN

Brow

ser

Traffic

HTTP Cacheing

Donnerstag, 19. September 13

App

licat

ion

Varnish (Reverse Proxy) Traffic

Traffic

CDN

Brow

ser

Traffic

HTTP Cacheing

Donnerstag, 19. September 13

App

licat

ion

Varnish (Reverse Proxy) Traffic

Traffic

CDN

Brow

ser

TrafficPurging

HTTP Cacheing

Donnerstag, 19. September 13

Caches„protect“ your

application

Donnerstag, 19. September 13

Caches„protect“ your

application

#�+�

'�%*

'��

Donnerstag, 19. September 13

Caches„protect“ your

application

#�+�

'�%*

'��

����

��,

�'"

#�

Donnerstag, 19. September 13

10.000+Possible Pages / Seconde

from ELB & Varnish

Donnerstag, 19. September 13

Traffic

Autoscaling

Donnerstag, 19. September 13

Traffic

Fron

tend

Arr

ay

EC2

EC2

EC2

Autoscaling

Donnerstag, 19. September 13

Traffic

Fron

tend

Arr

ay

EC2

EC2

EC2

Autoscaling

Donnerstag, 19. September 13

Traffic

Fron

tend

Arr

ay

EC2

EC2

EC2

EC2

EC2

EC2

Autoscaling

Donnerstag, 19. September 13

10.000possible Orders / Hour

Donnerstag, 19. September 13

Search and Layered Nav���'��� (�*#��'�

�$%���%���(

#��'!.�*#�������!�

�-%�#( +�

Donnerstag, 19. September 13

Bro

wse

r

Enterprise Search

Mage

nto

Donnerstag, 19. September 13

Bro

wse

r

���!�) "���#��- #�

Enterprise Search

Mage

nto

Donnerstag, 19. September 13

Be prepared for changes

Donnerstag, 19. September 13

Donnerstag, 19. September 13

Continuous Deployment

Donnerstag, 19. September 13

Don‘t be scared of releasing to production

Donnerstag, 19. September 13

Late night bugfixing?Donnerstag, 19. September 13

That’s how a deployment should look like

Donnerstag, 19. September 13

Continuous Deployment

Donnerstag, 19. September 13

We want on-demand deployment

Continuous Deployment

Donnerstag, 19. September 13

We want on-demand deploymentof tested features and fixes

Continuous Deployment

Donnerstag, 19. September 13

We want on-demand deploymentof tested features and fixesin a quick and reliable way

Continuous Deployment

Donnerstag, 19. September 13

We reach this by

Donnerstag, 19. September 13

We reach this by

Automating everything

Donnerstag, 19. September 13

We reach this by

Build

Automating everything

Donnerstag, 19. September 13

We reach this by

BuildTesting

Automating everything

Donnerstag, 19. September 13

We reach this by

BuildTesting

Deployment

Automating everything

Donnerstag, 19. September 13

..and

Donnerstag, 19. September 13

..and

doing it frequently

Donnerstag, 19. September 13

..and

flickr deploys 3

times a day...

doing it frequently

Donnerstag, 19. September 13

ContentMaster

Backup

Version

Deployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Backup

Version

Build

Deployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Backup

Version

Build

Unit TestsDeployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Backup

Version

Build

Unit TestsAutomatic Deploy on „Latest“

Deployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Backup

Version

Build

Unit TestsAutomatic Deploy on „Latest“ Acceptance

Tests

Deployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Backup

Version

Build

Unit TestsAutomatic Deploy on „Latest“ Acceptance

Tests

Deploy on

„Deploy“

Deployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Backup

Version

Build

Unit TestsAutomatic Deploy on „Latest“ Acceptance

Tests Deploy to Staging+ Test

Deploy on

„Deploy“

Deployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Live

Backup

Version

Build

Unit TestsAutomatic Deploy on „Latest“ Acceptance

Tests Deploy to Staging+ Test

Deploy on

„Deploy“

Deployment Pipeline

Donnerstag, 19. September 13

ContentMaster

Live

Backup

Version

Build

Unit TestsAutomatic Deploy on „Latest“ Acceptance

Tests Deploy to Staging+ Test

Deploy on

„Deploy“

Deployment Pipeline

Test Strategy

Donnerstag, 19. September 13

ContentMaster

Live

Backup

Version

Build

Unit TestsAutomatic Deploy on „Latest“ Acceptance

Tests Deploy to Staging+ Test

Deploy on

„Deploy“

Deployment Pipeline

Test Strategy

Feedback for the TeamDonnerstag, 19. September 13

Donnerstag, 19. September 13

The real live

Donnerstag, 19. September 13

Day 1 - Release 1

Donnerstag, 19. September 13

Day 2 - Release 2 - “Get ready for Space”

Donnerstag, 19. September 13

Day 3 - „People want it so badly“

Donnerstag, 19. September 13

New release deployed

Day 3 - „People want it so badly“

Donnerstag, 19. September 13

New release deployed

Space game launchedArray scales up

Day 3 - „People want it so badly“

Donnerstag, 19. September 13

New release deployed

Space game launchedArray scales up

USA wakes up

Day 3 - „People want it so badly“

Donnerstag, 19. September 13

Day 4 - Release 3 „Performance Improvement“

Donnerstag, 19. September 13

40% average CPU usage.

1-2 FE Servers are enough for normal operations

Day 4 - Release 3 „Performance Improvement“

Donnerstag, 19. September 13

Thanks!

Follow us on Twitter:

AOE: @aoemediaDaniel P: @danpoetz

Flickr photo contributions in the slide:http://www.flickr.com/photos/the-wanderers-eye/4494147652/sizes/l/http://www.flickr.com/photos/51293088@N05/8195327886/sizes/l/http://www.flickr.com/photos/k1rsch/3818553037/sizes/l/

Donnerstag, 19. September 13

top related