Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

33
Taking the next hot mobile video game live with Docker and IBM SoftLayer Scott Porter, Daniel Krook, Lennart Goedhart, Shaun Murakami

Transcript of Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Page 1: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Taking the next hot mobile video game live with Docker and IBM SoftLayer Scott Porter, Daniel Krook, Lennart Goedhart, Shaun Murakami

Page 2: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

About us

2

Scott Porter Cloudcell Server Lead, Electronic Arts - Firemonkeys Studio @sl_porter

Daniel Krook Senior Software Engineer, Cloud and Open Source Technologies, IBM @DanielKrook

Lennart Goedhart Server Technical Director, Electronic Arts @lennydafish

Shaun Murakami Senior Software Engineer, Cloud and Open Source Technologies, IBM @stmuraka

Page 3: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Agenda

3

Mobile video gaming on the cloud •  The video gaming market in 2016 •  Typical mobile video gaming architectures

EA Firemonkeys workload characteristics •  Mobile video gaming workload profile and pre-cloud native architecture •  Challenges and opportunities to leverage a new open cloud architecture

EA Firemonkeys cloud solution deep dive

•  Containerizing application components with Docker •  Creating a DevOps pipeline for application deployment orchestration •  Performing service management and cluster configuration •  Improvements in performance, flexibility, and speed to market

Page 4: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Mobile video gaming on the cloud

Page 5: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Mobile PC Console

NORTH AMERICA

LATIN AMERICA EUROPE ASIA

17% 46% 37% 41% 16% 43%

195 M 182 M 553 M 817 M 33% 24% 43% 51% 44% 5%

2015 est. Revenues Consist of Software Gaming Market

There are over a billion video game players worldwide

Page 6: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Mobile games industry has grown 10x in less than a decade

Mobile Gaming Revenue, WW $B

Mobile gaming is powering the next wave of growth

Page 7: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  Mobile gaming backends are very typical web applications •  Frequent updates to game content – infrequent updates to game engine •  Daily peak users in the millions – hundreds of thousands simultaneously •  Need to scale-up/down around release and content pack releases •  Stateless frontends with memory caching and both SQL and NoSQL databases •  Growing use of analytics on user experience, recorded game telemetry, replays

Fire

wal

l

Load

ba

lanc

er

Web

ser

ver

Game engine Key/value store

Cache

Database

PHP PHP PHP PHP App Server

Object storage

Typical mobile game server architectures

bit.ly/game-arch

Page 8: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

EA Firemonkeys workload characteristics

Page 9: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

FIREMONKEYS

Page 10: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

EA Mobile studio based in Melbourne, Australia Formed in 2012 from two EA Mobile studios, Iron Monkey and Firemint

EA MELBOURNE FIREMONKEYS

Page 11: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

What do we do?

Mobile free-to-play live service games Bi-monthly client releases often with new connected features Global market means no downtime, ever

Page 12: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

What is Cloudcell?

Firemonkeys in house client/server tech stack Mobile focused connected features Originally developed by Firemint for Flight Control

Page 13: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Cloudcell is integrated into all Firemonkeys live titles

Page 14: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  13.5k Peak Requests Per Second

•  ~ 900M Requests Per Day

•  ~ 100s of Thousands of Peak Concurrent Players

•  Scalable to Millions of Daily Active Players

•  > 100 TB Player Game Data

•  > 170 Hosts (60 Live Hosts)

•  Team of 8

We handle almost a billion requests a day

Page 15: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Firemonkeys Mobile Video Gaming Architecture

Game Logic Data Storage Load Balancing

External Services

Object Storage StatsD

Page 16: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  Deployments are manual

•  Orchestration is brittle, even with SaltStack

But there are several opportunities to improve operations

•  For scalability we shard by title and provision for the peak expected load on new game features

Page 17: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  Growing ecosystem with automated solutions

•  Run anywhere simplifies scaling with VMs

•  Easy transition, run side by side with existing stack and tightly manage risk

Adopting Docker offers us several benefits

Page 18: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  Focused on the Game Logic Layer

•  Decomposition to MVP •  Web Server •  Game Logic •  Web Services (admin, database) •  Workers

Packaging Cloudcell as Docker containers: Approach

Page 19: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  Generic containers helped simplify workers

•  Run multiple containers - not

processes - for simplicity, load distribution

•  Patching live – trade-off between speed and traceability

•  Orchestration limited to host

Packaging Cloudcell as Docker containers: Decisions

Page 20: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

EA Firemonkeys cloud solution deep dive

Page 21: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Bare metal Linux host 1

Docker containers

Web server

PHP Game Logic 1

Redi

s

Exte

rnal

dat

a se

rvic

es

MyS

QL

Mem

cach

ed

Load

bal

ance

r

Inside the new Docker scale out deployment on SoftLayer (anatomy of an environment)

PHP Game Logic 2

PHP Game Logic x

PHP Worker 1

PHP Worker 2

PHP Worker x

Bare metal Linux host 2

Docker containers

Web server

PHP Game Logic 1

PHP Game Logic 2

PHP Game Logic x

PHP Worker 1

PHP Worker 2

PHP Worker x

Bare metal Linux host x

Docker containers

Web server

PHP Game Logic 1

PHP Game Logic 2

PHP Game Logic x

PHP Worker 1

PHP Worker 2

PHP Worker x Scale out services in Docker containers

Scale out SoftLayerbare metal nodes

Page 22: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Sidekick process – monitors/registers services

confd confd – Configures the load balancer dynamically based on service discovery results

Sidekick Sidekick

Load Balancer

confd

Sidekick Service Service Service

Docker container

Service management: request, registration, discovery

Fleet – manages the lifecycle of the Docker Containers

etcd – holds service registry and configuration

Virtual IP

Page 23: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  Unit files per service type

•  NGINX •  Admin •  Game Logic •  Each Worker

•  Each service has a sidekick service discovery process

Orchestration is managed using fleet (a distributed init system)

Page 24: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Bare metal Linux host

Discovery/Config

Orchestrated Docker containers

Native host services

80 nginx-confd.service

NGINX-confd container

80

Orchestration Docker

172.17.1.xx

172.17.1.xx

[email protected]

ea/php-fpm:latest 1 9000

[email protected]

ea/php-fpm:latest 2 9000 php-fpm-discovery

@2.service

[email protected]

ea/php-worker:latest 2

[email protected]

ea/php-worker:latest 1

php-worker-1-discovery @2.service

php-worker-2-discovery @1.service

[email protected]

ea/php-worker:latest 1

php-worker-1-discovery @1.service

php-fpm-discovery @1.service

Redi

s

Exte

rnal

dat

a se

rvic

es

MyS

QL

Mem

cach

ed

Load

bal

ance

r

Inside the new Docker scale out deployment on SoftLayer (anatomy of a single host)

Page 25: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

1.  Jenkins ships code to build machine

2.  Build machine builds and commits images to Docker private registry

3.  Jenkins generates fleet configuration from templates

4.  Jenkins executes fleet deployments

5.  Jenkins executes scale requests

Jenkins is used to execute build, deploy, and scale jobs

Page 26: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Game Release Code

A pipeline builds releases and packages them as Docker images

Jenkins

Docker Registry

Service Images

nginx

php-fpm

php-worker

Release Images

php-fpm-RR3-v67

php-fpm-RR3-v68

php-worker-X-v68

RR3-v68.tar

NFS-v101.tar

RR3-v67.tar

Dev Env

Jenkins

Application Code (source repo)

Page 27: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

•  Simple management UI for Jenkins and fleet APIs

•  Maps Cloudcell deployments to the state of each environment

•  Maintains history of code promotions, status changes, error messages

A Configuration Editor is used to manage and track deployments

Page 28: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Configuration, orchestration, and deployment pipeline

host host

host srv

Configure topology, maintain state.

Build images with code, deploy to or scale target environments.

srv

srv

Run containers in staging, load test, and production.

Capture metrics.

Page 29: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

“Using IBM and Docker container solutions, we have been able to build a gaming platform that is massively scalable, highly performant, and meets our deployment velocity needs.”

29

Page 30: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Thank you

30

Scott Porter Cloudcell Server Lead, Electronic Arts - Firemonkeys Studio @sl_porter

Daniel Krook Senior Software Engineer, Cloud and Open Source Technologies, IBM @DanielKrook

Lennart Goedhart Server Technical Director, Electronic Arts @lennydafish

Shaun Murakami Senior Software Engineer, Cloud and Open Source Technologies, IBM @stmuraka

Page 31: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Notices and disclaimers

31

Copyright © 2016 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.

U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.

Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.

Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.

Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.

References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.

Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.

It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law

Page 32: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Notices and disclaimers con’t.

32

Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.

IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Page 33: Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer

Thank You Your Feedback is Important!

Access the InterConnect 2016 Conference Attendee Portal to complete your session surveys from your

smartphone, laptop or conference kiosk.