13
How to Power the Back-End in all platforms Philip Fitzsimons (fitz), Solutions Architect - Gaming

AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Embed Size (px)

DESCRIPTION

This presentation details our experience of Gaming and AWS. It also looks at building a back-end for all platforms including the core, scaling it out, autoscaling, caching, analytics and massive scale. Philip Fitzsimons, Solutions Architect - Gaming

Citation preview

Page 1: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

How to Power the Back-End in all platforms

Philip Fitzsimons (fitz), Solutions Architect - Gaming

Page 2: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Our experience of Gaming and AWS

Building a back-end for all platforms

The core

Scaling it out

Autoscaling and caching

Analytics

Massive Scale

Deployment options

Page 3: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Connect with us

Some game companies

Page 4: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Common Backend Design Patterns

Page 5: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

First Stop: Core Backend

Region

Availability

Zone A

ELB

• Choose Region • 9 Globally

• One Availability Zone • Ok for Development • No redundancy

• EC2 Instance • Linux, Windows • App server code

• Elastic Load Balancer • DNS for App

• MySQL Database • RDS or EC2 yourself

Page 6: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Next Stop: Scale It Out

ELB

Availability

Zone A Availability

Zone B

Region

S3

• Add Another AZ • Redundancy (HA) • Load Balancing

• Add Slave Database • RDS Multi-AZ • Or EC2 yourself

• S3 for Game Data • Patches • UGC

Page 7: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Next Stop: Auto Scale + Caching

CloudFront CDN

ELB

Availability

Zone A Availability

Zone B

Region

S3

• Auto Scaling Group • Capacity on Demand • Respond to Users • Recover from Failure

• Memcache • ElastiCache • Or EC2 yourself

• CloudFront CDN • 40 POPs Globally • Edge Cache • DLC, Game Assets

EC2 EC2

Page 8: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Next Stop: Analytics

CloudFront CDN

ELB

Availability

Zone A Availability

Zone B

Region

S3

• Elastic MapReduce • Managed Hadoop • Parse Logs • Parallel Aggregation

• Redshift • Data Warehouse • Column-Oriented • SQL Compatible

EC2 EC2

Page 9: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Region

Security Group

Event-Driven Servers

Elastic Load

Balancing

Security Group

NoSQL EC2 Instances

S3 buckets for

binary data

Server

PUT

Client

GET

CloudFront (optional)

Security Group

ElastiCache Cluster

Auto Scaling Group

HTTP/JSON ServersAuto Scaling Group

HTTP/JSON Servers

SQS for jobs

and alerts

Auto Scaling GroupJob Workers

Security Group

Event-Driven Servers

Writes

Reads

Start Job

Reads

Writes

Job Results

Read Replica Read Replica

Master DB DB Slave

Security Group

NoSQL EC2 Instances

Security Group

ElastiCache Cluster

Stateful

TCP socket

HTTP

Spawn

Async

Job

Send

Message

to Client

Availability Zone BAvailability Zone A

Auto Scaling GroupJob Workers

Destination:

Massive Scale

Page 10: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Deployment options

Page 11: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Elastic Beanstalk

AWS Elastic Beanstalk is an even

easier way for you to quickly deploy and

manage applications in the AWS cloud.

You simply upload your application, and

Elastic Beanstalk automatically handles

the deployment details of capacity

provisioning, load balancing, auto-

scaling, and application health

monitoring

Different Deployment Methods Available

CloudFormation

You can use AWS CloudFormation’s to

create your own templates to describe

the AWS resources, and any associated

dependencies or runtime parameters,

required to run your application.

Once deployed, you can modify and

update the AWS resources in a

controlled and predictable way allowing

you to version control your AWS

infrastructure in the same way as you

version control your software.

Do it yourself

With full API support, you can control

manage and the AWS environment

through scripting, or the console. You

have fine grained control over the

environment.

Alternatively there are a number of third

party tools such as Chef or Puppet to

help manage and build the environment

Page 12: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Game On

Know the audience for our genre

Chose the right platform for your audience

Chose the right Multiplayer for your audience

Have data gathering in place before you release

Create a polished game before release

Understand

your

players

Focus

On

The game

Proven with multiple platforms & genres

Scalable

Reduce the risk & cost of failure

Agility and speed to market

Page 13: AWS "Game On" Event - How to ower the back-end in all platforms - 19 June13

Game On

Understand

your

players

Focus

On

The game

Thank You!

Building

back-ends

For all platforms

Deploy your game and

Evolve with

Configuration management