47
November 13, 2014 | Las Vegas, NV Chris Gallinaro and Colin Shirley, Electronic Arts

(GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

Embed Size (px)

DESCRIPTION

How do you really architect a game that can handle 5, 6, or 7 million daily active users? Learn about the scalability challenges that EA had to overcome for The Simpsons: Tapped Out. Hear how EA had to redesign their MySQL-based database layer on the fly, migrating over to Amazon DynamoDB, while keeping the game running. See how EA added AWS Elastic Beanstalk and Auto Scaling to simplify their deployments, while also lowering costs by enabling them to respond to changing player counts. EA shows how they switched from sticky sessions to Amazon ElastiCache, solving player disconnects and allowing further scaling out. Finally, EA shares some interesting statistics about The Simpsons: Tapped Out, as well as their overall learnings about how best to develop, deploy, and monitor a game on AWS.

Citation preview

Page 1: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

November 13, 2014 | Las Vegas, NV

Chris Gallinaro and Colin Shirley, Electronic Arts

Page 2: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 3: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 4: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 5: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

marketing activity content release

forced updateurl swap

Page 6: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 7: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 8: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

“I'd be mortified if someone ever made a lousy product with the

Simpson name on it.”

- Lisa Simpson

Page 9: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

“I can't promise I'll try, but I'll try to try.”

- Bart Simpson

Page 10: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

elastic load balancer

haproxy

Problem #1: Complex deployments

Problem #2: No auto-scaling

Problem #3: Expensive database

cluster

Page 11: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 12: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 13: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

elastic load balancer

haproxy

Page 14: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 15: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 16: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 17: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 18: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 19: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 20: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

Key concept: temporarily store

access code on both sides

Amazon

Page 21: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

Recall: previous access code

is stored on both sides

?

Amazon

Page 22: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 23: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 24: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

$$$$

Page 25: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

elastic load balancer

Page 26: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 27: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

MySQL DynamoDB

Game server

Page 28: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

MySQL DynamoDB

conditional put

Page 29: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

MySQL DynamoDB

Game server

Page 30: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 31: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 32: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 33: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

elastic load balancer

Page 34: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 35: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 36: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

manual increase

manual increase

Manual provisioning level

marketing activity

x3 availability zones

Page 37: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 38: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 39: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

Upload Artifact

Scale Up

URL Swap

Page 40: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 41: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 42: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 43: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 44: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014
Page 45: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

elastic load balancer

haproxy

Problem #1: Complex deployments

Easy deployments with Beanstalk

Problem #2: No auto-scaling

Auto-scaling on every component

Problem #3: Expensive database

cluster

Cost-effective DynamoDB

Page 46: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

• Game team has full control– One-man deployments

– One-man incident investigations

• AWS always improving

Page 47: (GAM302) EA's Real-World Hurdles with Millions of Players in the Simpsons: Tapped Out | AWS re:Invent 2014

http://bit.ly/awsevals

"Now for my favorite part of the show....What does that say? Talk to

the audience! Ugghhh, this is always death...”