SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
DevOps in Mobile Games
Or „How to serve millions of players“
Andreas Katzig
@derFunk
Technical Director of Chimera Entertainment
@ChimeraEnt
Andreas Katzig,
Technical Director
About me
• Online user since 1994
• BBS, FidoNet, Compuserve
• Online programmer since 1996
• PHP 2, MySQL 3
• Founder of Photono Design and
Co-Founder of Photono Software in 1999
Andreas Katzig,
Technical Director
About me
• Graduate Degree in Computer Science
• Co-Founder of Vulcando Games in 2006
• Funded by Exist/BMWi in 2008
• Released 2 MMOG Titles
• Own OpenGL-based Game Engine with dozens of custom tools
Andreas Katzig,
Technical Director
About me
• Joined Chimera Entertainment in 2009
• Now overseeing the Tech Department
• Chimera is the flagship studio of the
remote control productions family
• More than 14 other studios are part of it
Andreas Katzig,
Technical Director
Chimera. Mobile Games.
• Chimera is a Unity 3D studio
• First Unity Engine licensee in Germany
• Since 2010 more than 15 game releases
on more than 7 different platforms
• The most prominent ones being
• Angry Birds Epic (Mobile)
• Our own idea, pitched to Rovio in 2012
• John Woo‘s BloodStroke (Mobile)
• Bernd das Brot (PC)
• Dr. Kawashima (PC)
• Ravensburger Memory™ (PC, Mobile)
Andreas Katzig,
Technical Director
Chimera. Mobile Games.
> 65.000.000 Downloads worldwide
Andreas Katzig,
Technical Director
Chimera. Partners.
Andreas Katzig,
Technical Director
Chimera. Key Technology Partners.
Andreas Katzig,
Technical Director
Chimera. Platforms.
Andreas Katzig,
Technical Director
Chimera. Development Processes.
• Agile / Scrum since 2008
• Define (your own) goals in a two-weeks sprint cycle.
• Daily standups with the Team. Post-Its, Burndown Charts, all that stuff.
• Dedicated DevOps Engineer working 90% from remote
• Slack helps to stay in touch
• DevOps also happens from the Chimera HQ in Munich
• Regular Code Reviews
• Utilizing Atlassian Crucible
• Peer Reviews
• Regular Dev Team Meetings, Focus Days, Social Events etc.
Andreas Katzig,
Technical Director
Chimera. Development Practices and Paradigms.
• „Move fast“
• But try to not break things.
• Yes, originally from Facebook. They also removed „break things“ from their motto this year (because
things broke too often).
• „Does it scale“?
• Default question for every DevOps Engineer.
Andreas Katzig,
Technical Director
Chimera. Development Practices and Paradigms.
• „Convention over Configuration“
• This is true for code, but not necessarily for DevOps, as we have a lot of configuration scripts here.
• “Configuration as Code“
• Prevents „Configuration Drift“
• „Code once, run everywhere“
• That‘s where Docker comes in place
• „Version all the Things“
• „Automize everything“
• „Don‘t repeat yourself“
• „Separation of Concerns“
• „Single Responsibilities“
• „Loose coupling of modular components“
• Wow, can you still read that?
Andreas Katzig,
Technical Director
Chimera. Mobile Games. Tech. Infrastructure.
• Continuous Integration with Jenkins
• One Jenkins head server
• > 5 headless slaves (OSX, Win, Linux)
• Building for mobile platforms, consoles, standalone
• Nightly project builds and integration tests of our own Cross Platform Library
• Parameterized manual builds
• Extended uses of Jenkins
• Auto-install new Unity versions on all buildservers as they are released
• Jobs to manually upload assets to servers and services
• „Project setup script“ that generates SCM repositories and Jenkins build jobs for all mobile platforms
• According to Chimera conventions – Every project setup is similar
• Resigning-Jobs for IPAs and APKs
Andreas Katzig,
Technical Director
Chimera. Mobile Games. Tech. Infrastructure.
• Continuous Delivery
• Apps: Mobile Over The Air distribution
• Simple custom solution
• Artifacts: Deployment via Amazon S3
• Repositories involved
• SVN/GIT
• Docker Hub
• NuGet
Our Build Engineer Grisha will be here this evening! Take the chance to talk to him!
Andreas Katzig,
Technical Director
Chimera. Mobile Games. Tech Stack. Backend.
• We‘re sharing C# code between Unity and the backend
• Of course we do! Data Models (DTOs), Game Logic, Serialization
• To run C# code at the server side, we‘re using Mono
• As FastCGI processes behind NginX
• Communication layer is RESTful web services
• Stateless Microservices
• Server OS is generally Debian
• C# SDKs for all thinkable server components are available
• AWS, MySQL, Redis, Memcached etc
Hyper!
Andreas Katzig,
Technical Director
How we rolled in 2010.
Andreas Katzig,
Technical Director
How we roll today.
• AWS
• Elastic Container Services
• Docker!
• Horizontal Scaling
• High Availability
• And more
Andreas Katzig,
Technical Director
How we roll today. Components.
• AWS
• Classes of problems abstracted away:
Power and network topology, hardware costs and
vendor differences, network storage systems, etc...
• Flexibility to start new servers or whole new environments in minutes.
• Auto scaling and zero setup costs. Wow.
Our DevOps Engineer Giannicola is here today! Take the chance to talk to him!
Andreas Katzig,
Technical Director
How we roll today. Components.
• ECS
• Management of Docker containers on a cluster
• Basic scheduling of containers based on resource
needs, isolation policies, and availability requirements
• Integrates with auto scaling and ELB
• Easy Blue/Green deployments solution
• We run our stateless game backends on it
Andreas Katzig,
Technical Director
How we roll today. Components.
• Terraform
• A tool for building, changing, and versioning
infrastructure safely and efficiently
• Infrastructure as Code
• Change Automation
• We used it to create our whole AWS infrastructure
• We use it for basic configuration management too
• but it cannot completely substitute Ansible or equivalent tool
Andreas Katzig,
Technical Director
How we roll today. Components.
• Docker
• Developers have full control over the execution
environment of an application
• Reduced risks when deploying
• Infrastructure as Code
• Lightweight virtualization
• Standard packaging unit for builds, tests and deployments
Andreas Katzig,
Technical Director
How we roll today. Components.
• CoreOS
• Operating system for the cloud age
• Everything runs in containers
• Does not ship with a package manager, basic shippable units are Docker containers
• The goal is to have the build system output a container as the final artifact: then
systemd and fleet deal with containers lifecycle
Andreas Katzig,
Technical Director
How we roll today. Components.
• CoreOS
• Fleet works by receiving systemd unit files and scheduling
them onto machines in the cluster based on declared conflicts
and other properties
• Easy and robust (replicated) Service Discovery with etcd:
services can scale seamlessly
• We use it to deploy our monitoring infrastructure, our application
logging facility and our chat cluster
Andreas Katzig,
Technical Director
How we roll today. Components.
• Consul
• Service Registration and Discovery through
HTTP and DNS interfaces.
• Distributed and highly available system:
gossip pool, distributed health checking
• We use it for our chat and ELK clusters
• We‘re also using „Registrator“ from Gliderlabs in connection with Consul
• „Registrator automatically registers and deregisters services for any Docker container
by inspecting containers as they come online.”
Andreas Katzig,
Technical Director
How we roll today. Components.
• Consul Web Interface
Andreas Katzig,
Technical Director
How we roll today. Components.
• ELK
• Main open source centralized logging solution
• Elasticsearch containers clusters together thanks to etcd
• Logstash and Kibana containers discover Elasticsearch
query nodes thanks to Consul
• Logstash is powerful enough to be able to parse logs from
various sources (nginx logs, log4net application logs, etc...)
Andreas Katzig,
Technical Director
How we roll today. Components.
• ELK
Andreas Katzig,
Technical Director
How we roll today. Components.
• Collectd
• It gathers statistics about the system it is running on
• Simple and lightweight tool written in C, with more than 90 plugins
• Collected metrics can be sent to Logstash, Influxdb, Librato:
it does not generate graphs, information must be sent to other tools
• We run it as a Docker container on every server we want to monitor
Andreas Katzig,
Technical Director
How we roll today. Components.
• Influxdb
• Time series, metrics and analytics database
• Data can be queried with a SQL-like language
• HTTP(S) API for data ingestion and queries
• It has built-in support for other data protocols such as collectd
Andreas Katzig,
Technical Director
How we roll today. Components.
• Influxdb
• Written in Go with no external dependencies
• Clustering, replication and high-availability is in an alpha state
• We store Collectd metrics from various hosts on it,
running as a Docker container
Andreas Katzig,
Technical Director
How we roll today. Components.
• Grafana
• Graph and dashboard builder for visualizing
time series metrics
• Built in support for many of the most popular
time series data sources: Graphite, Elasticsearch,
Influxdb, CloudWatch
• We run it as a Docker container: it's the perfect pair for Influxdb, we visualize
Collectd metrics gathered on all servers
Andreas Katzig,
Technical Director
How we roll today. Components.
• Grafana
Andreas Katzig,
Technical Director
How we roll today. Components.
• Librato
• SaaS real-time cloud monitoring
• Integrates with more than 100 open-source agents,
turn-key solutions and 3rd-party services:
CloudWatch, Heroku, Collectd, Statsd, etc...
• Fastest and easiest solution to collect, correlate and visualize data at any layer of the
stack
• We send CloudWatch and Collectd metrics to it, in order to have another level of
system dashboards
Andreas Katzig,
Technical Director
How we roll today. Components.
• Librato
Andreas Katzig,
Technical Director
Questions?
Andreas Katzig,
Technical Director
Andreas Katzig,
Technical Director
We‘re hiring!
http://jobs.chimera-entertainment.de
@ChimeraEnt
@derFunk

Contenu connexe

Tendances

DCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application TransformationDCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application TransformationDocker, Inc.
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDocker, Inc.
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker Docker, Inc.
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDocker, Inc.
 
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...Docker, Inc.
 
DevSecOps in a cloudnative world
DevSecOps in a cloudnative worldDevSecOps in a cloudnative world
DevSecOps in a cloudnative worldKarthik Gaekwad
 
PASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksPASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksKellyn Pot'Vin-Gorman
 
Opinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryOpinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryDocker, Inc.
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMatanGoren
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big companyDocker, Inc.
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro servicesSpyros Lambrinidis
 
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & HybridAWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & HybridAmazon Web Services
 
Nanog75, Network Device Property as Code
Nanog75, Network Device Property as CodeNanog75, Network Device Property as Code
Nanog75, Network Device Property as CodeDamien Garros
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realistsKarthik Gaekwad
 
DCSF19 Containerized Databases for Enterprise Applications
DCSF19 Containerized Databases for Enterprise ApplicationsDCSF19 Containerized Databases for Enterprise Applications
DCSF19 Containerized Databases for Enterprise ApplicationsDocker, Inc.
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Lucas Jellema
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Cloud native Continuous Delivery
Cloud native Continuous DeliveryCloud native Continuous Delivery
Cloud native Continuous DeliveryChristian Deger
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)yalini97
 

Tendances (20)

DCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application TransformationDCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application Transformation
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to Microservices
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
 
DevSecOps in a cloudnative world
DevSecOps in a cloudnative worldDevSecOps in a cloudnative world
DevSecOps in a cloudnative world
 
PASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksPASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and Tricks
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Opinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryOpinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan Fosberry
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big company
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro services
 
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & HybridAWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
 
Nanog75, Network Device Property as Code
Nanog75, Network Device Property as CodeNanog75, Network Device Property as Code
Nanog75, Network Device Property as Code
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
DCSF19 Containerized Databases for Enterprise Applications
DCSF19 Containerized Databases for Enterprise ApplicationsDCSF19 Containerized Databases for Enterprise Applications
DCSF19 Containerized Databases for Enterprise Applications
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Cloud native Continuous Delivery
Cloud native Continuous DeliveryCloud native Continuous Delivery
Cloud native Continuous Delivery
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 

Similaire à DevOpsCon 2015 - DevOps in Mobile Games

Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development PipelineGlobalLogic Ukraine
 
Respawn 2015: Chimera Entertainment - A decade of game development
Respawn 2015: Chimera Entertainment - A decade of game developmentRespawn 2015: Chimera Entertainment - A decade of game development
Respawn 2015: Chimera Entertainment - A decade of game developmentAndreas Katzig
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talksRuslan Meshenberg
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationNils Hofmeister
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
Technical Debt - SOTR14 - Clarkie
Technical Debt -  SOTR14 - ClarkieTechnical Debt -  SOTR14 - Clarkie
Technical Debt - SOTR14 - ClarkieAndrew Clarke
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...Docker, Inc.
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET DevelopersMike Melusky
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
Ansible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIAnsible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIJoel W. King
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices Hendri Karisma
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
 
Docker adventures in Continuous Delivery - Alex Vranceanu
Docker adventures in Continuous Delivery - Alex VranceanuDocker adventures in Continuous Delivery - Alex Vranceanu
Docker adventures in Continuous Delivery - Alex VranceanuITCamp
 
Architecture evolution
Architecture evolutionArchitecture evolution
Architecture evolutionamit bezalel
 
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceCodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Codemotion
 

Similaire à DevOpsCon 2015 - DevOps in Mobile Games (20)

Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
Respawn 2015: Chimera Entertainment - A decade of game development
Respawn 2015: Chimera Entertainment - A decade of game developmentRespawn 2015: Chimera Entertainment - A decade of game development
Respawn 2015: Chimera Entertainment - A decade of game development
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Technical Debt - SOTR14 - Clarkie
Technical Debt -  SOTR14 - ClarkieTechnical Debt -  SOTR14 - Clarkie
Technical Debt - SOTR14 - Clarkie
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Microservices
MicroservicesMicroservices
Microservices
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Ansible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIAnsible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACI
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
Docker adventures in Continuous Delivery - Alex Vranceanu
Docker adventures in Continuous Delivery - Alex VranceanuDocker adventures in Continuous Delivery - Alex Vranceanu
Docker adventures in Continuous Delivery - Alex Vranceanu
 
Architecture evolution
Architecture evolutionArchitecture evolution
Architecture evolution
 
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceCodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
 
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
 

Dernier

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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 productivityPrincipled Technologies
 
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 AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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 Processorsdebabhi2
 
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.pdfhans926745
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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 WorkerThousandEyes
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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 textsMaria Levchenko
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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?Antenna Manufacturer Coco
 

Dernier (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - 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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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?
 

DevOpsCon 2015 - DevOps in Mobile Games

  • 1. DevOps in Mobile Games Or „How to serve millions of players“ Andreas Katzig @derFunk Technical Director of Chimera Entertainment @ChimeraEnt
  • 2. Andreas Katzig, Technical Director About me • Online user since 1994 • BBS, FidoNet, Compuserve • Online programmer since 1996 • PHP 2, MySQL 3 • Founder of Photono Design and Co-Founder of Photono Software in 1999
  • 3. Andreas Katzig, Technical Director About me • Graduate Degree in Computer Science • Co-Founder of Vulcando Games in 2006 • Funded by Exist/BMWi in 2008 • Released 2 MMOG Titles • Own OpenGL-based Game Engine with dozens of custom tools
  • 4. Andreas Katzig, Technical Director About me • Joined Chimera Entertainment in 2009 • Now overseeing the Tech Department • Chimera is the flagship studio of the remote control productions family • More than 14 other studios are part of it
  • 5. Andreas Katzig, Technical Director Chimera. Mobile Games. • Chimera is a Unity 3D studio • First Unity Engine licensee in Germany • Since 2010 more than 15 game releases on more than 7 different platforms • The most prominent ones being • Angry Birds Epic (Mobile) • Our own idea, pitched to Rovio in 2012 • John Woo‘s BloodStroke (Mobile) • Bernd das Brot (PC) • Dr. Kawashima (PC) • Ravensburger Memory™ (PC, Mobile)
  • 6. Andreas Katzig, Technical Director Chimera. Mobile Games. > 65.000.000 Downloads worldwide
  • 10. Andreas Katzig, Technical Director Chimera. Development Processes. • Agile / Scrum since 2008 • Define (your own) goals in a two-weeks sprint cycle. • Daily standups with the Team. Post-Its, Burndown Charts, all that stuff. • Dedicated DevOps Engineer working 90% from remote • Slack helps to stay in touch • DevOps also happens from the Chimera HQ in Munich • Regular Code Reviews • Utilizing Atlassian Crucible • Peer Reviews • Regular Dev Team Meetings, Focus Days, Social Events etc.
  • 11. Andreas Katzig, Technical Director Chimera. Development Practices and Paradigms. • „Move fast“ • But try to not break things. • Yes, originally from Facebook. They also removed „break things“ from their motto this year (because things broke too often). • „Does it scale“? • Default question for every DevOps Engineer.
  • 12. Andreas Katzig, Technical Director Chimera. Development Practices and Paradigms. • „Convention over Configuration“ • This is true for code, but not necessarily for DevOps, as we have a lot of configuration scripts here. • “Configuration as Code“ • Prevents „Configuration Drift“ • „Code once, run everywhere“ • That‘s where Docker comes in place • „Version all the Things“ • „Automize everything“ • „Don‘t repeat yourself“ • „Separation of Concerns“ • „Single Responsibilities“ • „Loose coupling of modular components“ • Wow, can you still read that?
  • 13. Andreas Katzig, Technical Director Chimera. Mobile Games. Tech. Infrastructure. • Continuous Integration with Jenkins • One Jenkins head server • > 5 headless slaves (OSX, Win, Linux) • Building for mobile platforms, consoles, standalone • Nightly project builds and integration tests of our own Cross Platform Library • Parameterized manual builds • Extended uses of Jenkins • Auto-install new Unity versions on all buildservers as they are released • Jobs to manually upload assets to servers and services • „Project setup script“ that generates SCM repositories and Jenkins build jobs for all mobile platforms • According to Chimera conventions – Every project setup is similar • Resigning-Jobs for IPAs and APKs
  • 14. Andreas Katzig, Technical Director Chimera. Mobile Games. Tech. Infrastructure. • Continuous Delivery • Apps: Mobile Over The Air distribution • Simple custom solution • Artifacts: Deployment via Amazon S3 • Repositories involved • SVN/GIT • Docker Hub • NuGet Our Build Engineer Grisha will be here this evening! Take the chance to talk to him!
  • 15. Andreas Katzig, Technical Director Chimera. Mobile Games. Tech Stack. Backend. • We‘re sharing C# code between Unity and the backend • Of course we do! Data Models (DTOs), Game Logic, Serialization • To run C# code at the server side, we‘re using Mono • As FastCGI processes behind NginX • Communication layer is RESTful web services • Stateless Microservices • Server OS is generally Debian • C# SDKs for all thinkable server components are available • AWS, MySQL, Redis, Memcached etc Hyper!
  • 17. Andreas Katzig, Technical Director How we roll today. • AWS • Elastic Container Services • Docker! • Horizontal Scaling • High Availability • And more
  • 18. Andreas Katzig, Technical Director How we roll today. Components. • AWS • Classes of problems abstracted away: Power and network topology, hardware costs and vendor differences, network storage systems, etc... • Flexibility to start new servers or whole new environments in minutes. • Auto scaling and zero setup costs. Wow. Our DevOps Engineer Giannicola is here today! Take the chance to talk to him!
  • 19. Andreas Katzig, Technical Director How we roll today. Components. • ECS • Management of Docker containers on a cluster • Basic scheduling of containers based on resource needs, isolation policies, and availability requirements • Integrates with auto scaling and ELB • Easy Blue/Green deployments solution • We run our stateless game backends on it
  • 20. Andreas Katzig, Technical Director How we roll today. Components. • Terraform • A tool for building, changing, and versioning infrastructure safely and efficiently • Infrastructure as Code • Change Automation • We used it to create our whole AWS infrastructure • We use it for basic configuration management too • but it cannot completely substitute Ansible or equivalent tool
  • 21. Andreas Katzig, Technical Director How we roll today. Components. • Docker • Developers have full control over the execution environment of an application • Reduced risks when deploying • Infrastructure as Code • Lightweight virtualization • Standard packaging unit for builds, tests and deployments
  • 22. Andreas Katzig, Technical Director How we roll today. Components. • CoreOS • Operating system for the cloud age • Everything runs in containers • Does not ship with a package manager, basic shippable units are Docker containers • The goal is to have the build system output a container as the final artifact: then systemd and fleet deal with containers lifecycle
  • 23. Andreas Katzig, Technical Director How we roll today. Components. • CoreOS • Fleet works by receiving systemd unit files and scheduling them onto machines in the cluster based on declared conflicts and other properties • Easy and robust (replicated) Service Discovery with etcd: services can scale seamlessly • We use it to deploy our monitoring infrastructure, our application logging facility and our chat cluster
  • 24. Andreas Katzig, Technical Director How we roll today. Components. • Consul • Service Registration and Discovery through HTTP and DNS interfaces. • Distributed and highly available system: gossip pool, distributed health checking • We use it for our chat and ELK clusters • We‘re also using „Registrator“ from Gliderlabs in connection with Consul • „Registrator automatically registers and deregisters services for any Docker container by inspecting containers as they come online.”
  • 25. Andreas Katzig, Technical Director How we roll today. Components. • Consul Web Interface
  • 26. Andreas Katzig, Technical Director How we roll today. Components. • ELK • Main open source centralized logging solution • Elasticsearch containers clusters together thanks to etcd • Logstash and Kibana containers discover Elasticsearch query nodes thanks to Consul • Logstash is powerful enough to be able to parse logs from various sources (nginx logs, log4net application logs, etc...)
  • 27. Andreas Katzig, Technical Director How we roll today. Components. • ELK
  • 28. Andreas Katzig, Technical Director How we roll today. Components. • Collectd • It gathers statistics about the system it is running on • Simple and lightweight tool written in C, with more than 90 plugins • Collected metrics can be sent to Logstash, Influxdb, Librato: it does not generate graphs, information must be sent to other tools • We run it as a Docker container on every server we want to monitor
  • 29. Andreas Katzig, Technical Director How we roll today. Components. • Influxdb • Time series, metrics and analytics database • Data can be queried with a SQL-like language • HTTP(S) API for data ingestion and queries • It has built-in support for other data protocols such as collectd
  • 30. Andreas Katzig, Technical Director How we roll today. Components. • Influxdb • Written in Go with no external dependencies • Clustering, replication and high-availability is in an alpha state • We store Collectd metrics from various hosts on it, running as a Docker container
  • 31. Andreas Katzig, Technical Director How we roll today. Components. • Grafana • Graph and dashboard builder for visualizing time series metrics • Built in support for many of the most popular time series data sources: Graphite, Elasticsearch, Influxdb, CloudWatch • We run it as a Docker container: it's the perfect pair for Influxdb, we visualize Collectd metrics gathered on all servers
  • 32. Andreas Katzig, Technical Director How we roll today. Components. • Grafana
  • 33. Andreas Katzig, Technical Director How we roll today. Components. • Librato • SaaS real-time cloud monitoring • Integrates with more than 100 open-source agents, turn-key solutions and 3rd-party services: CloudWatch, Heroku, Collectd, Statsd, etc... • Fastest and easiest solution to collect, correlate and visualize data at any layer of the stack • We send CloudWatch and Collectd metrics to it, in order to have another level of system dashboards
  • 34. Andreas Katzig, Technical Director How we roll today. Components. • Librato
  • 37. Andreas Katzig, Technical Director We‘re hiring! http://jobs.chimera-entertainment.de @ChimeraEnt @derFunk