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

1,004 views

Published on

Presentation at the IBM InterConnect Conference in Las Vegas, Nevada on February 24, 2016.

Mobile games are the fastest-growing sector of the $70 billion video game industry, far outpacing traditional consoles. But companies that aspire to create the next hot title have to account for more than just the app downloaded to a user device. They must prepare for huge spikes in game play with scalable backends to handle massive data and transactions behind socially linked user profiles and global leaderboards. This talk looks at how IBM successfully partnered with Firemonkeys, a major studio that had hit their vertical scaling limit, to design and deploy a new Docker-based architecture on SoftLayer. This scale-out architecture is able to handle an order of magnitude more customers for their next major release.

Published in: Software
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,004
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. Taking the next hot mobile video game live with Docker and IBM SoftLayer Scott Porter, Daniel Krook, Lennart Goedhart, Shaun Murakami
  2. 2. 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
  3. 3. 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
  4. 4. Mobile video gaming on the cloud
  5. 5. 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
  6. 6. 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
  7. 7. •  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 Firewall Load balancer Webserver Game engine Key/value store Cache Database PHPPHPPHPPHPApp Server Object storage Typical mobile game server architectures bit.ly/game-arch
  8. 8. EA Firemonkeys workload characteristics
  9. 9. FIREMONKEYS
  10. 10. EA Mobile studio based in Melbourne, Australia Formed in 2012 from two EA Mobile studios, Iron Monkey and Firemint EA MELBOURNE FIREMONKEYS
  11. 11. 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
  12. 12. What is Cloudcell? Firemonkeys in house client/server tech stack Mobile focused connected features Originally developed by Firemint for Flight Control
  13. 13. Cloudcell is integrated into all Firemonkeys live titles
  14. 14. •  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
  15. 15. Firemonkeys Mobile Video Gaming Architecture Game Logic Data Storage Load Balancing External Services Object Storage StatsD
  16. 16. •  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
  17. 17. •  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
  18. 18. •  Focused on the Game Logic Layer •  Decomposition to MVP •  Web Server •  Game Logic •  Web Services (admin, database) •  Workers Packaging Cloudcell as Docker containers: Approach
  19. 19. •  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
  20. 20. EA Firemonkeys cloud solution deep dive
  21. 21. Bare metal Linux host 1 Docker containers Web server PHP Game Logic 1 Redis Externaldataservices MySQL Memcached Loadbalancer 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 SoftLayer
 bare metal nodes
  22. 22. 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
  23. 23. •  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)
  24. 24. 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 php-fpm@1.service ea/php- fpm:latest 1 9000 php-fpm@2.service ea/php- fpm:latest 2 9000 php-fpm-discovery @2.service php-worker-1@2.service ea/php-worker:latest 2 php-worker-2@1.service ea/php-worker:latest 1 php-worker-1-discovery @2.service php-worker-2-discovery @1.service php-worker-1@1.service ea/php-worker:latest 1 php-worker-1-discovery @1.service php-fpm-discovery @1.service Redis Externaldataservices MySQL Memcached Loadbalancer Inside the new Docker scale out deployment on SoftLayer (anatomy of a single host)
  25. 25. 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
  26. 26. 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)
  27. 27. •  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
  28. 28. 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.
  29. 29. “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
  30. 30. 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
  31. 31. 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
  32. 32. 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.
  33. 33. 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.

×