SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
(re)Building Killzone’s Servers
How We Used AWS in Killzone: Shadow Fall and
Killzone: Mercenary
Tim Darby, Sony Computer Entertainment Europe
November 14, 2013

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Bio
Aims
What is Killzone?
A brief history of Killzone’s servers
Killzone

Killzone
(2004)

•

Serving core multiplayer
experience

•

Centrally developed backend tech

•

No title-specific backend code

•

C/C++

•

Regional real-time gaming servers

•

Centralized core servers

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)
KZ : Liberation

Killzone
(2004)

•

Original real time backend plus …

•

Java 3-tier backend for community
features

•

Shared tech again

•

Customization at presentation layer, plus
configuration

•

Plugins for score processing and
tournament progression in ‘singleton’

•

Leaderboards sat on the DB

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)
Killzone 2

Killzone
(2004)

•

Applying lessons learned from Killzone :
Liberation

•

Materialized views added to leaderboard
backend

•

Battle Replay using shared file system
(NFS)

•

Plugins in ‘singleton’ servers for
Tournament progression

•

Additional webapp delivering XML for
website

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)
Killzone 3

Killzone
(2004)

•

Iteration on previous backend
(java and C++)

•

Redone leaderboards from
Materialized Views to MV + TSDB

•

Plugins to middle tier

•

C++ side matchmaking server with
title-specific MM rules plugin

•

And it wasn’t just us feeling the
constraints…

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)
A Busy Year
September 2013

Killzone
(2004)

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)

November 2013
Re-arch

Killzone
(2004)

• Separately versioned
shared components
• Independent game
projects
• Maven + Jenkins
• Dynamic Scaling
• Use of AWS services

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)
Mercenary

Killzone
(2004)

•

Relatively straightforward REST API

•

Frontend, Scheduler, Admin Elastic
Beanstalk applications

•

Multiple Beanstalk Environments per app
(staging, or dev envs)

•

Both “SingleInstance” and “ELB”
Beanstalk Env types used

•

PSN functionality used for real-time
elements
–

Matching, NAT Traversal, P2P

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)
ShadowFall

Killzone
(2004)

• Straight REST, with addition of
Comet style push messaging
• Similar topology for Elastic
Beanstalk elements to KZM
• Addition of real-time servers

• Hybrid deployment – part Sony
hosting, part AWS

Killzone :
Liberation

Killzone
2

Killzone
3

Killzone : Mercenary
Killzone : ShadowFall

(2006)

(2009)

(2011)

(2013)
Use of AWS Services
Scheduled Jobs
•

Scheduler webapp simple spring-quartz

•

Generates jobs, posts to Amazon SQS

•

Main webapp runs SQS receivers

•

Scheduled job receivers spawn worker threads
per job

•

Wrappers around these jobs provide
–
–

•

Amazon CloudWatch duration/error tracking
Distributed job management

Admin app provides ability to manually
schedule/fire jobs, and view distributed job
state info
Score Posting #1
•

Score posts pushed to SQS for async
processing

•

Listeners on component for game
history store triggered on successful
write to Amazon DynamoDB

•

Individual listeners perform many
secondary tasks

•

Failure modes in secondary tasks not
easily recovered
Score Posting #2
•

Changed game history listeners to
post to secondary game jobs SQS
queue

•

Added separate receiver threads for
secondary game jobs SQS queue
messages

•

Receivers then run secondary jobs

•

Failure modes in secondary jobs now
result in non-confirmation of SQS
message, and re-presentation by SQS
Leaderboards
•

SimpleDB, transitioned to DynamoDB
when available

•

DynamoDB required secondary indices
in some form for multiple sort columns on
a single board

•

Single Table vs. Multiple Table
implementations

•

Fast ranking a problem for both

•

Fast ranking provided by reverse index
rank calculator or statistical predictor
Issues and Lessons Learned
Issues
•

Old-style monitoring of dynamically
scaled environments

•

Manual scaling management on
DynamoDB

•

DynamoDB, leaderboards, and hotspots

•

Surprise! Changes to console

•

Limits of AWS CloudFormation
Lessons Learned
•

Appreciate the change in mindset going
from SQL to NoSQL

•

Swappable implementations generate
flexibility

•

Flexibility around architecture adds
options

•

Dynamic scaling/management doesn’t
necessarily stop at server boxes

•

Still no silver bullet for leaderboards
Summary
Questions?
Please give us your feedback on this
presentation

MBL305
As a thank you, we will select prize
winners daily for completed surveys!

Más contenido relacionado

La actualidad más candente

Netflix Moving To Cloud
Netflix Moving To CloudNetflix Moving To Cloud
Netflix Moving To Cloud
Hien Luu
 
Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017
Amazon Web Services
 
Building and Scaling a Containerized Microservice - DevDay Austin 2017
Building and Scaling a Containerized Microservice - DevDay Austin 2017Building and Scaling a Containerized Microservice - DevDay Austin 2017
Building and Scaling a Containerized Microservice - DevDay Austin 2017
Amazon Web Services
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmap
Ruslan Meshenberg
 

La actualidad más candente (20)

Deploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKSDeploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKS
 
Spinnaker 파트 1
Spinnaker 파트 1Spinnaker 파트 1
Spinnaker 파트 1
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For Development
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
 
Ha of load balancer
Ha of load balancerHa of load balancer
Ha of load balancer
 
ECS and ECR deep dive
ECS and ECR deep diveECS and ECR deep dive
ECS and ECR deep dive
 
Designing Stateful Apps for Cloud and Kubernetes
Designing Stateful Apps for Cloud and KubernetesDesigning Stateful Apps for Cloud and Kubernetes
Designing Stateful Apps for Cloud and Kubernetes
 
Netflix Moving To Cloud
Netflix Moving To CloudNetflix Moving To Cloud
Netflix Moving To Cloud
 
Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017
 
AWS Elastic Container Service (ECS) with a CI Pipeline Overview
AWS Elastic Container Service (ECS) with a CI Pipeline OverviewAWS Elastic Container Service (ECS) with a CI Pipeline Overview
AWS Elastic Container Service (ECS) with a CI Pipeline Overview
 
Building and Scaling a Containerized Microservice - DevDay Austin 2017
Building and Scaling a Containerized Microservice - DevDay Austin 2017Building and Scaling a Containerized Microservice - DevDay Austin 2017
Building and Scaling a Containerized Microservice - DevDay Austin 2017
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetes
 
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmap
 
Infrastructure as code with terraform and packer
Infrastructure as code with terraform and packerInfrastructure as code with terraform and packer
Infrastructure as code with terraform and packer
 
(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests
(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests
(GAM402) Turbine: A Microservice Approach to 3 Billion Game Requests
 
Running containers in AWS
Running containers in AWSRunning containers in AWS
Running containers in AWS
 
IP Multicast on ec2
IP Multicast on ec2IP Multicast on ec2
IP Multicast on ec2
 
Terraform Concepts
Terraform ConceptsTerraform Concepts
Terraform Concepts
 

Similar a Killzone's Servers: Flexible Architecture and Component-Based Design (MBL305) | AWS re:Invent 2013

Developing For The Windows Azure Platform
Developing For The Windows Azure PlatformDeveloping For The Windows Azure Platform
Developing For The Windows Azure Platform
drmarcustillett
 
201507131408448146
201507131408448146201507131408448146
201507131408448146
Mason Mei
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222
Minko3D
 

Similar a Killzone's Servers: Flexible Architecture and Component-Based Design (MBL305) | AWS re:Invent 2013 (20)

Continuous Delivery the hard way with Kubernetes
Continuous Delivery the hard way with KubernetesContinuous Delivery the hard way with Kubernetes
Continuous Delivery the hard way with Kubernetes
 
컴퓨팅 서비스 업데이트 - EC2, ECS, Lambda (김상필) :: re:Invent re:Cap Webinar 2015
컴퓨팅 서비스 업데이트 - EC2, ECS, Lambda (김상필) :: re:Invent re:Cap Webinar 2015컴퓨팅 서비스 업데이트 - EC2, ECS, Lambda (김상필) :: re:Invent re:Cap Webinar 2015
컴퓨팅 서비스 업데이트 - EC2, ECS, Lambda (김상필) :: re:Invent re:Cap Webinar 2015
 
DevOps, Microservices and Serverless Architecture
DevOps, Microservices and Serverless ArchitectureDevOps, Microservices and Serverless Architecture
DevOps, Microservices and Serverless Architecture
 
Developing For The Windows Azure Platform
Developing For The Windows Azure PlatformDeveloping For The Windows Azure Platform
Developing For The Windows Azure Platform
 
Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes
 
Amazon API Gateway を活用したゲームサーバー構築
Amazon API Gateway を活用したゲームサーバー構築Amazon API Gateway を活用したゲームサーバー構築
Amazon API Gateway を活用したゲームサーバー構築
 
AWS Summit Auckland - Getting Started with AWS Lambda and the Serverless Cloud
AWS Summit Auckland - Getting Started with AWS Lambda and the Serverless CloudAWS Summit Auckland - Getting Started with AWS Lambda and the Serverless Cloud
AWS Summit Auckland - Getting Started with AWS Lambda and the Serverless Cloud
 
Patterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWSPatterns for building resilient and scalable microservices platform on AWS
Patterns for building resilient and scalable microservices platform on AWS
 
Photon Session / Unite12 Conference
Photon Session / Unite12 ConferencePhoton Session / Unite12 Conference
Photon Session / Unite12 Conference
 
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo YueUGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
 
Couchbase Usecase : Mobile Game Cookierun
Couchbase Usecase : Mobile Game CookierunCouchbase Usecase : Mobile Game Cookierun
Couchbase Usecase : Mobile Game Cookierun
 
Serverless Node.js
Serverless Node.jsServerless Node.js
Serverless Node.js
 
Continuous Deployment in AWS Lambda
Continuous Deployment in AWS LambdaContinuous Deployment in AWS Lambda
Continuous Deployment in AWS Lambda
 
게임을 위한 Cloud Native on AWS (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 Cloud Native on AWS (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임을 위한 Cloud Native on AWS (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 Cloud Native on AWS (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLift
 
17-virtualization.pptx
17-virtualization.pptx17-virtualization.pptx
17-virtualization.pptx
 
201507131408448146
201507131408448146201507131408448146
201507131408448146
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222
 
Amazon EC2 to Amazon VPC: A case study (CPN301) | AWS re:Invent 2013
Amazon EC2 to Amazon VPC: A case study (CPN301) | AWS re:Invent 2013Amazon EC2 to Amazon VPC: A case study (CPN301) | AWS re:Invent 2013
Amazon EC2 to Amazon VPC: A case study (CPN301) | AWS re:Invent 2013
 
Hybrid Cloud Enablement Technologies
Hybrid Cloud Enablement TechnologiesHybrid Cloud Enablement Technologies
Hybrid Cloud Enablement Technologies
 

Más de Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

Más de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

Killzone's Servers: Flexible Architecture and Component-Based Design (MBL305) | AWS re:Invent 2013

  • 1. (re)Building Killzone’s Servers How We Used AWS in Killzone: Shadow Fall and Killzone: Mercenary Tim Darby, Sony Computer Entertainment Europe November 14, 2013 © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 2. Bio
  • 5. A brief history of Killzone’s servers
  • 6. Killzone Killzone (2004) • Serving core multiplayer experience • Centrally developed backend tech • No title-specific backend code • C/C++ • Regional real-time gaming servers • Centralized core servers Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013)
  • 7. KZ : Liberation Killzone (2004) • Original real time backend plus … • Java 3-tier backend for community features • Shared tech again • Customization at presentation layer, plus configuration • Plugins for score processing and tournament progression in ‘singleton’ • Leaderboards sat on the DB Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013)
  • 8. Killzone 2 Killzone (2004) • Applying lessons learned from Killzone : Liberation • Materialized views added to leaderboard backend • Battle Replay using shared file system (NFS) • Plugins in ‘singleton’ servers for Tournament progression • Additional webapp delivering XML for website Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013)
  • 9. Killzone 3 Killzone (2004) • Iteration on previous backend (java and C++) • Redone leaderboards from Materialized Views to MV + TSDB • Plugins to middle tier • C++ side matchmaking server with title-specific MM rules plugin • And it wasn’t just us feeling the constraints… Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013)
  • 10. A Busy Year September 2013 Killzone (2004) Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013) November 2013
  • 11. Re-arch Killzone (2004) • Separately versioned shared components • Independent game projects • Maven + Jenkins • Dynamic Scaling • Use of AWS services Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013)
  • 12. Mercenary Killzone (2004) • Relatively straightforward REST API • Frontend, Scheduler, Admin Elastic Beanstalk applications • Multiple Beanstalk Environments per app (staging, or dev envs) • Both “SingleInstance” and “ELB” Beanstalk Env types used • PSN functionality used for real-time elements – Matching, NAT Traversal, P2P Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013)
  • 13. ShadowFall Killzone (2004) • Straight REST, with addition of Comet style push messaging • Similar topology for Elastic Beanstalk elements to KZM • Addition of real-time servers • Hybrid deployment – part Sony hosting, part AWS Killzone : Liberation Killzone 2 Killzone 3 Killzone : Mercenary Killzone : ShadowFall (2006) (2009) (2011) (2013)
  • 14. Use of AWS Services
  • 15. Scheduled Jobs • Scheduler webapp simple spring-quartz • Generates jobs, posts to Amazon SQS • Main webapp runs SQS receivers • Scheduled job receivers spawn worker threads per job • Wrappers around these jobs provide – – • Amazon CloudWatch duration/error tracking Distributed job management Admin app provides ability to manually schedule/fire jobs, and view distributed job state info
  • 16. Score Posting #1 • Score posts pushed to SQS for async processing • Listeners on component for game history store triggered on successful write to Amazon DynamoDB • Individual listeners perform many secondary tasks • Failure modes in secondary tasks not easily recovered
  • 17. Score Posting #2 • Changed game history listeners to post to secondary game jobs SQS queue • Added separate receiver threads for secondary game jobs SQS queue messages • Receivers then run secondary jobs • Failure modes in secondary jobs now result in non-confirmation of SQS message, and re-presentation by SQS
  • 18. Leaderboards • SimpleDB, transitioned to DynamoDB when available • DynamoDB required secondary indices in some form for multiple sort columns on a single board • Single Table vs. Multiple Table implementations • Fast ranking a problem for both • Fast ranking provided by reverse index rank calculator or statistical predictor
  • 20. Issues • Old-style monitoring of dynamically scaled environments • Manual scaling management on DynamoDB • DynamoDB, leaderboards, and hotspots • Surprise! Changes to console • Limits of AWS CloudFormation
  • 21. Lessons Learned • Appreciate the change in mindset going from SQL to NoSQL • Swappable implementations generate flexibility • Flexibility around architecture adds options • Dynamic scaling/management doesn’t necessarily stop at server boxes • Still no silver bullet for leaderboards
  • 24. Please give us your feedback on this presentation MBL305 As a thank you, we will select prize winners daily for completed surveys!