+ All Categories
Home > Technology > NoSQL Games_NoSQL Roadshow Berlin

NoSQL Games_NoSQL Roadshow Berlin

Date post: 14-Apr-2017
Category:
Upload: wooga
View: 2,513 times
Download: 0 times
Share this document with a friend
131
games NSQL
Transcript
Page 1: NoSQL Games_NoSQL Roadshow Berlin

gamesNoSQL

Page 2: NoSQL Games_NoSQL Roadshow Berlin

Patrick Hueslertwitter: @phuesler

github: phuesler

Page 3: NoSQL Games_NoSQL Roadshow Berlin
Page 4: NoSQL Games_NoSQL Roadshow Berlin
Page 5: NoSQL Games_NoSQL Roadshow Berlin
Page 6: NoSQL Games_NoSQL Roadshow Berlin
Page 7: NoSQL Games_NoSQL Roadshow Berlin
Page 8: NoSQL Games_NoSQL Roadshow Berlin
Page 9: NoSQL Games_NoSQL Roadshow Berlin
Page 10: NoSQL Games_NoSQL Roadshow Berlin
Page 11: NoSQL Games_NoSQL Roadshow Berlin

GamesHow to build

Page 12: NoSQL Games_NoSQL Roadshow Berlin

Game backend

iOS

Flash

Facebook

Android

Page 13: NoSQL Games_NoSQL Roadshow Berlin

scale

Page 14: NoSQL Games_NoSQL Roadshow Berlin

for Diamond Dash~28,000,000monthly active users

15/04/2013

Page 15: NoSQL Games_NoSQL Roadshow Berlin

for Diamond Dash~4,600,000daily active users

15/04/2013

Page 16: NoSQL Games_NoSQL Roadshow Berlin

engineering

Page 17: NoSQL Games_NoSQL Roadshow Berlin
Page 18: NoSQL Games_NoSQL Roadshow Berlin

DEVOPSYou can call it

Page 19: NoSQL Games_NoSQL Roadshow Berlin

You Build it YOU RUN IT

Page 20: NoSQL Games_NoSQL Roadshow Berlin

Developerfriendly

Page 21: NoSQL Games_NoSQL Roadshow Berlin

Operationsfriendly

Page 22: NoSQL Games_NoSQL Roadshow Berlin

of architectureEVOLUTION

Wooga’s

Page 23: NoSQL Games_NoSQL Roadshow Berlin

PrototypeIt starts with a

Page 24: NoSQL Games_NoSQL Roadshow Berlin
Page 25: NoSQL Games_NoSQL Roadshow Berlin
Page 26: NoSQL Games_NoSQL Roadshow Berlin

Admin interface

Add an

Page 27: NoSQL Games_NoSQL Roadshow Berlin

Simple Backend Services

Page 28: NoSQL Games_NoSQL Roadshow Berlin

GamesPast

Page 29: NoSQL Games_NoSQL Roadshow Berlin

learning1st

Page 30: NoSQL Games_NoSQL Roadshow Berlin

Game backendReporting

iOS

Flash

Facebook

Android

Page 31: NoSQL Games_NoSQL Roadshow Berlin

Game backend

iOS

Flash

Facebook

Android

Reporting

Page 32: NoSQL Games_NoSQL Roadshow Berlin

GAme 1

Game 2Reporting

GAme 3

Game 4

Page 33: NoSQL Games_NoSQL Roadshow Berlin

Kafkahttps://kafka.apache.org/index.html

Page 34: NoSQL Games_NoSQL Roadshow Berlin

TIME

Page 35: NoSQL Games_NoSQL Roadshow Berlin

LAMPBuilt with

Page 36: NoSQL Games_NoSQL Roadshow Berlin

... well, nginx instead of apache

LAMPBuilt with

Page 37: NoSQL Games_NoSQL Roadshow Berlin

learned?what have we

Page 38: NoSQL Games_NoSQL Roadshow Berlin

FAST ENOUGHmysql is o2en

Page 39: NoSQL Games_NoSQL Roadshow Berlin

TIME

Page 40: NoSQL Games_NoSQL Roadshow Berlin

cloudTo the

Page 41: NoSQL Games_NoSQL Roadshow Berlin
Page 42: NoSQL Games_NoSQL Roadshow Berlin
Page 43: NoSQL Games_NoSQL Roadshow Berlin

load balancer

master shard 1 master shard 2

slave shard 1 slave shard 2

app server app server app server

Page 44: NoSQL Games_NoSQL Roadshow Berlin
Page 45: NoSQL Games_NoSQL Roadshow Berlin

load balancer

DB

appapp app app app app

appapp app app app app

appapp app app app app

DB DB DB DB DB

DB DB DB DB DB DB

Page 46: NoSQL Games_NoSQL Roadshow Berlin

learned?what have we

Page 47: NoSQL Games_NoSQL Roadshow Berlin

use casedifferent

Page 48: NoSQL Games_NoSQL Roadshow Berlin

Are NOTarcade games

farming games

Page 49: NoSQL Games_NoSQL Roadshow Berlin
Page 50: NoSQL Games_NoSQL Roadshow Berlin
Page 51: NoSQL Games_NoSQL Roadshow Berlin

slow partsMove

Page 52: NoSQL Games_NoSQL Roadshow Berlin

repeatRinse and

Page 53: NoSQL Games_NoSQL Roadshow Berlin
Page 54: NoSQL Games_NoSQL Roadshow Berlin

learned?what have we

Page 55: NoSQL Games_NoSQL Roadshow Berlin

helps, but only to a certain 4tent

machinesAdding more

Page 56: NoSQL Games_NoSQL Roadshow Berlin

AutomatedServer Provisioning

Page 57: NoSQL Games_NoSQL Roadshow Berlin

RedisPr5 and cons of

Page 58: NoSQL Games_NoSQL Roadshow Berlin

facilitate database changes

AbstractionsGood code

Page 59: NoSQL Games_NoSQL Roadshow Berlin

Testsgive confidence

Page 60: NoSQL Games_NoSQL Roadshow Berlin

are easier to reason aboutChanges

Incremental

Page 61: NoSQL Games_NoSQL Roadshow Berlin

are easier to reason aboutRollouts

Incremental

Page 62: NoSQL Games_NoSQL Roadshow Berlin

crucialmonitoring is

Page 63: NoSQL Games_NoSQL Roadshow Berlin

TIME

Page 64: NoSQL Games_NoSQL Roadshow Berlin

dedicatedBack to

Page 65: NoSQL Games_NoSQL Roadshow Berlin

MachinesFaster

Page 66: NoSQL Games_NoSQL Roadshow Berlin

networkFaster

Page 67: NoSQL Games_NoSQL Roadshow Berlin
Page 68: NoSQL Games_NoSQL Roadshow Berlin

load balancer

REdis master Redis Slave

app server app server app server

Page 69: NoSQL Games_NoSQL Roadshow Berlin

u1_rooms_R1

u1_Pets_P2

u1_Pets_P3

u1_Pets_P4

u1_Pets_P5

u2_Pets_P1

u2_Pets_P2

Page 70: NoSQL Games_NoSQL Roadshow Berlin

u1_rooms_R1

u1_Pets_P2

u1_Pets_P3

u1_Pets_P4

u1_Pets_P5

u2_Pets_P1

u2_Pets_P2

Page 71: NoSQL Games_NoSQL Roadshow Berlin

REDIS HASH

Page 72: NoSQL Games_NoSQL Roadshow Berlin

u1

U2

U3

XPRooms

Patients

XPRooms

Patients

XPRooms

PatientsU4

Page 73: NoSQL Games_NoSQL Roadshow Berlin

learned?What have we

Page 74: NoSQL Games_NoSQL Roadshow Berlin

placeMagicalShowers are a

Page 75: NoSQL Games_NoSQL Roadshow Berlin

a relational databaseNOTRedis is

Page 76: NoSQL Games_NoSQL Roadshow Berlin

to move aroundIs easier

Compound user data

Page 77: NoSQL Games_NoSQL Roadshow Berlin
Page 78: NoSQL Games_NoSQL Roadshow Berlin
Page 79: NoSQL Games_NoSQL Roadshow Berlin

Memory Leaks?

Page 80: NoSQL Games_NoSQL Roadshow Berlin

work again?BGSAVEHow does

Page 81: NoSQL Games_NoSQL Roadshow Berlin

workingno longerDumps are

Page 82: NoSQL Games_NoSQL Roadshow Berlin
Page 83: NoSQL Games_NoSQL Roadshow Berlin
Page 84: NoSQL Games_NoSQL Roadshow Berlin

learned?What have we

Page 85: NoSQL Games_NoSQL Roadshow Berlin

AssumptionsValidate your

Page 86: NoSQL Games_NoSQL Roadshow Berlin
Page 87: NoSQL Games_NoSQL Roadshow Berlin
Page 88: NoSQL Games_NoSQL Roadshow Berlin

Restore on Demand

8x it with

Page 89: NoSQL Games_NoSQL Roadshow Berlin

DiskArchive user to

Page 90: NoSQL Games_NoSQL Roadshow Berlin

RedisRestore to

Page 91: NoSQL Games_NoSQL Roadshow Berlin

(never really supported)Disk Store

Redis

Page 92: NoSQL Games_NoSQL Roadshow Berlin

learned?What have we

Page 93: NoSQL Games_NoSQL Roadshow Berlin

less compl4ityMachines

Less

Page 94: NoSQL Games_NoSQL Roadshow Berlin

Archivingkeeps the working set

small

Page 95: NoSQL Games_NoSQL Roadshow Berlin

compounduser data is easier to

move around

Page 96: NoSQL Games_NoSQL Roadshow Berlin

Trade offUsing Redis as your

main data store

Page 97: NoSQL Games_NoSQL Roadshow Berlin
Page 98: NoSQL Games_NoSQL Roadshow Berlin

TIME

Page 99: NoSQL Games_NoSQL Roadshow Berlin

StatefulLet’s go

Page 100: NoSQL Games_NoSQL Roadshow Berlin

is faster than no databasedatabase

NO

Page 101: NoSQL Games_NoSQL Roadshow Berlin

s3Am9on

Page 102: NoSQL Games_NoSQL Roadshow Berlin
Page 105: NoSQL Games_NoSQL Roadshow Berlin
Page 106: NoSQL Games_NoSQL Roadshow Berlin

learned?What have we

Page 107: NoSQL Games_NoSQL Roadshow Berlin

Erlangis a great environment to build distributed

systems

Page 108: NoSQL Games_NoSQL Roadshow Berlin

choice of databasetrumps

Architecture

Page 109: NoSQL Games_NoSQL Roadshow Berlin

Statefulis more compl4

Page 110: NoSQL Games_NoSQL Roadshow Berlin

lockingDistributed

Page 111: NoSQL Games_NoSQL Roadshow Berlin

lockerhttps://github.com/wooga/locker

Page 112: NoSQL Games_NoSQL Roadshow Berlin

warlockhttps://github.com/wooga/warlock

http://uu.diva-portal.org/smash/record.jsf?pid=diva2:615805

Page 113: NoSQL Games_NoSQL Roadshow Berlin

TIME

Page 114: NoSQL Games_NoSQL Roadshow Berlin
Page 115: NoSQL Games_NoSQL Roadshow Berlin

EventMAchine

Page 116: NoSQL Games_NoSQL Roadshow Berlin
Page 117: NoSQL Games_NoSQL Roadshow Berlin

load balancer

Riak Riak Riak Riak Riak

appapp app app

appapp app app

Page 118: NoSQL Games_NoSQL Roadshow Berlin

learned?What have we

Page 119: NoSQL Games_NoSQL Roadshow Berlin

RiakLife with

Page 120: NoSQL Games_NoSQL Roadshow Berlin

Single Point of Failure

NO!!!!!

Page 121: NoSQL Games_NoSQL Roadshow Berlin

DataModelling and Access

Page 122: NoSQL Games_NoSQL Roadshow Berlin

Redis

Riak Cluster

User DataLevel

XPBuildings

Scenes

Meta DaTa

Friend Index

HighScoreS

Page 123: NoSQL Games_NoSQL Roadshow Berlin

clusterRiak

Page 124: NoSQL Games_NoSQL Roadshow Berlin

App Server

Riak ?

Page 125: NoSQL Games_NoSQL Roadshow Berlin

BackupRiak

Page 126: NoSQL Games_NoSQL Roadshow Berlin

Amazon S3Archive to

Page 129: NoSQL Games_NoSQL Roadshow Berlin

CreditsPolar bear: http://www.flickr.com/photos/bestrated1/167630455/sizes/o/Family: http://www.flickr.com/photos/adwriter/212098009/sizes/o/cart: http://www.flickr.com/photos/41304880@N05/6187541490/cow closeup: http://www.flickr.com/photos/sovietuk/227465632/sizes/o/sparta: http://www.flickr.com/photos/legofenris/5008721616/sizes/l/tank: http://www.flickr.com/photos/markkelley/1581559810/sizes/l/bomb: http://www.flickr.com/photos/7969902@N07/511234695/scale: http://www.flickr.com/photos/31818720@N00/3273587681/engineering: http://www.flickr.com/photos/31704690@N05/8253753576/duck: http://www.flickr.com/photos/12836528@N00/2785398344/gear: http://www.flickr.com/photos/neurolysis/3335080917/cat: http://www.flickr.com/photos/55753993@N00/2898378081/

Page 130: NoSQL Games_NoSQL Roadshow Berlin

Creditschronos: http://www.flickr.com/photos/seeminglee/8581497525clouds: http://www.flickr.com/photos/nirak/644335254dead end: http://www.flickr.com/photos/ableman/298520443sloth: http://www.flickr.com/photos/matthijs/461893969stairs: http://www.flickr.com/photos/the_pale_side_of_insomnia/3010459970server rack: http://www.flickr.com/photos/jamisonjudd/2433102356gauge: http://www.flickr.com/photos/thatguyfromcchs08/2300190277pipe: http://www.flickr.com/photos/autowitch/102513226shower: http://www.flickr.com/photos/pagedooley/2047183582archive: http://www.flickr.com/photos/kasaa/2693784352water tap: http://www.flickr.com/photos/nachett/7852629550

Page 131: NoSQL Games_NoSQL Roadshow Berlin

Creditswrenches: http://www.flickr.com/photos/batega/1596898776bike locks: http://www.flickr.com/photos/ibcbulk/256435870lock master: http://www.flickr.com/photos/darwinbelllock : http://www.flickr.com/photos/dzarro72water wheel: http://www.flickr.com/photos/30649191@N00/8686135236starwars family: http://www.flickr.com/photos/kalexanderson/6312014327playdo: http://www.flickr.com/photos/manueb/1674681674microphone: http://www.flickr.com/photos/auralasia/4381121155cluster: http://www.flickr.com/photos/rogersmith/280267119backup: http://www.flickr.com/photos/dippy_duck/4562866718architecture: http://www.flickr.com/photos/bzyla/1331648993library: http://www.flickr.com/photos/fahdad/1718853829


Recommended