Top Banner
GAMES FOR THE MASSES Wie DevOps die Entwicklung von Architektur verändert Jesper RichterReichhelm, @jrirei Monday, June 4, 2012
156

Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Oct 19, 2014

Download

Technology

(Slides in English)
Ein Backend für ein weltweit erfolgreiches Social Game zu entwickeln ist nicht einfach, aber die eigentliche Herausforderung ist der Betrieb der Systeme! Bei Wooga sind dieselben zwei bis drei Entwickler für beides verantwortlich. Über die letzten zwei Jahren hat sich ein halbes Dutzend Teams dieser Herausforderung gestellt. Dabei konnten sie auf die Erfahrungen der vorhergehenden Teams zurückgreifen und hatten die Freiheit, eigene Lösungsansätze zu verfolgen. Der Vortrag wird die entstandene Evolution der Backends nachvollziehen: Anfangs LAMP, dann Ruby statt PHP, dann NoSQL statt MySQL und am Ende ohne Datenbank auf Basis von Erlang OTP. Die Darstellung dieser Reise wird anschaulich zeigen, welche Vorteile es haben kann, Entwicklern auch einmal freie Hand zu lassen.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

GAMES  FOR  THE  MASSESWie  DevOps  die  Entwicklung  von  Architektur  verändert

Jesper  Richter-­‐Reichhelm,  @jrireiMonday, June 4, 2012

Page 2: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

DEV  -­‐  OPS

Monday, June 4, 2012

Page 3: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

DEV  -­‐  OPS

Some  say:  Admins  learn  to  be  ‘Agile’

Scrum  and  Kanban

Monday, June 4, 2012

Page 4: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

DEV  -­‐  OPS

Some  say:  Admins  learn  to  be  ‘Agile’

Scrum  and  Kanban

Others  say:  Admins  learn  to  program  their  setup

Chef,  Puppet

Monday, June 4, 2012

Page 5: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

DEV  -­‐  OPS

Some  say:  Admins  learn  to  be  ‘Agile’

Scrum  and  Kanban

Others  say:  Admins  learn  to  program  their  setup

Chef,  Puppet

I  say:  This  is  all  nice,  but  not  enough

Developers  need  to  learn  a  lot  about  opera?on

Monday, June 4, 2012

Page 6: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 7: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 8: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 9: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 10: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 11: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 12: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 13: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 14: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

Monday, June 4, 2012

Page 15: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

???

Monday, June 4, 2012

Page 16: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Monday, June 4, 2012

Page 17: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Our  games  all  look  the  same

BackendFlash  client

Monday, June 4, 2012

Page 18: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Our  games  all  look  the  same

Game  Session

Asynch.  CommunicaPon

Flash  client

Monday, June 4, 2012

Page 19: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Backend

Our  games  all  look  the  same

State  Changes

ValidaPon

Persistence

Monday, June 4, 2012

Page 20: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

But  the  scale  is  interesPng

14  billion  requests  /  month

Monday, June 4, 2012

Page 21: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

But  the  scale  is  interesPng

14  billion  requests  /  month

Monday, June 4, 2012

Page 22: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

But  the  scale  is  interesPng

14  billion  requests  /  month

>100,000  DB  operaPons  /  second

Monday, June 4, 2012

Page 23: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

But  the  scale  is  interesPng

14  billion  requests  /  month

>100,000  DB  operaPons  /  second

>50,000  DB  updates  /  second

Monday, June 4, 2012

Page 24: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Classic  roles  in  IT

Op

ArchDev

???

Monday, June 4, 2012

Page 25: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Roles  in  Wooga’s  IT

Monday, June 4, 2012

Page 26: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Arch

Roles  in  Wooga’s  IT

Monday, June 4, 2012

Page 27: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

ArchArchDev

Roles  in  Wooga’s  IT

Monday, June 4, 2012

Page 28: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

ArchArchDevArchDevOp

Roles  in  Wooga’s  IT

Monday, June 4, 2012

Page 29: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

ArchArchDevArchDevOp

Roles  in  Wooga’s  IT

ArchArchDevArchDevOp

Monday, June 4, 2012

Page 30: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Wooga  has  dedicated  game  teams

Monday, June 4, 2012

Page 31: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Architecture  EvoluPon  at  Wooga

The  Start

The  Next  Step

Best  of  Two  Worlds

Company  Values

Monday, June 4, 2012

Page 32: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Try  to  be  flexible

Arch

Monday, June 4, 2012

Page 33: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Try  to  be  flexible

Arch

•  Ruby  on  Rails

Monday, June 4, 2012

Page 34: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Try  to  be  flexible

Arch

•  Ruby  on  Rails•  Amazon  EC2

Monday, June 4, 2012

Page 35: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Try  to  be  flexible

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL

Monday, June 4, 2012

Page 36: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

EvoluPon  I:  Use  Ruby  (on  Rails)

Oct  2009

Monday, June 4, 2012

Page 37: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Basic  setup  using  sharding

app app app app app app app app app

lb

MySQL

MySQL

slave slave

Monday, June 4, 2012

Page 38: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

250K  daily  users

!"

#!!$!!!"

%$!!!$!!!"

%$#!!$!!!"

&$!!!$!!!"

'()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%"

Life  was  good

Monday, June 4, 2012

Page 39: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

250K  daily  users

!"

#!!$!!!"

%$!!!$!!!"

%$#!!$!!!"

&$!!!$!!!"

'()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%"

Life  was  good NO  MORE

Monday, June 4, 2012

Page 40: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Welcome  to  6  weeks  of  pain!

Monday, June 4, 2012

Page 41: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Welcome  to  6  weeks  of  pain!

Heavy  opPmizaPons  were  necessary

Monday, June 4, 2012

Page 42: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Welcome  to  6  weeks  of  pain!

Heavy  opPmizaPons  were  necessary

Numerous  small  fixes  regarding  DB  config

Monday, June 4, 2012

Page 43: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Welcome  to  6  weeks  of  pain!

Heavy  opPmizaPons  were  necessary

Numerous  small  fixes  regarding  DB  configMore  shards

Monday, June 4, 2012

Page 44: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Welcome  to  6  weeks  of  pain!

Heavy  opPmizaPons  were  necessary

Numerous  small  fixes  regarding  DB  configMore  shardsEven  more  shards

Monday, June 4, 2012

Page 45: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Welcome  to  6  weeks  of  pain!

Heavy  opPmizaPons  were  necessary

Numerous  small  fixes  regarding  DB  configMore  shardsEven  more  shardsSpliOng  the  model  to  get  more  shards

Monday, June 4, 2012

Page 46: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Early  sharding  hell:  8+8  DBs

app app app app appapp app

app app app app app app app app app

appapp

lb

MySQL

MySQL

MySQL

MySQL

MySQL

MySQL

MySQL

MySQL

slave slave slave slaveslave slave slave slave

Monday, June 4, 2012

Page 47: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

At  500K  daily  users  we  were  at  a  dead  end

!"

#!!$!!!"

%$!!!$!!!"

%$#!!$!!!"

&$!!!$!!!"

'()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%"

Monday, June 4, 2012

Page 48: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Try  to  be  flexible

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL

Monday, June 4, 2012

Page 49: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Try  to  be  flexible

Dev

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL

Monday, June 4, 2012

Page 50: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Try  to  be  flexible

Dev

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL

OpMonday, June 4, 2012

Page 51: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Pick  the  right  tool  for  the  job

Monday, June 4, 2012

Page 52: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Pick  the  right  tool  for  the  job

Monday, June 4, 2012

Page 53: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

EvoluPon  II:  Use  Redis  as  main  DB

Oct  2009

Jan  2010

Monday, June 4, 2012

Page 54: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Redis  to  the  mix

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL

Monday, June 4, 2012

Page 55: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Redis  to  the  mix

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL•  Redis

Monday, June 4, 2012

Page 56: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Hybrid  approach

60  GB  data

50%  writes

256  GB  data

10%  writeshUp://www.flickr.com/photos/erix/245657047/

Monday, June 4, 2012

Page 57: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

One  team  saved  the  other  one

!"

#!!$!!!"

%$!!!$!!!"

%$#!!$!!!"

&$!!!$!!!"

'()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%"

Monday, June 4, 2012

Page 58: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

One  team  saved  the  other  one

!"

#!!$!!!"

%$!!!$!!!"

%$#!!$!!!"

&$!!!$!!!"

'()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%"

Monday, June 4, 2012

Page 59: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Now  more  than  2M  users  /  day

!"

#!!$!!!"

%$!!!$!!!"

%$#!!$!!!"

&$!!!$!!!"

'()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%"

Monday, June 4, 2012

Page 60: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Now  more  than  2M  users  /  day

!"

#!!$!!!"

%$!!!$!!!"

%$#!!$!!!"

&$!!!$!!!"

'()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%"

AWS  outagein  Ireland

Monday, June 4, 2012

Page 61: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

10  single-­‐points-­‐of-­‐failure  -­‐  no  fun  at  all!

app app app app app app app app app app app appapp

app app app app app app app app app app app appapp

app app app app app app app app app app app appapp

lb lb

redis redis redis redis redisMySQL

MySQL

MySQL

MySQL

MySQL

slave slave slave slave slaveslave slave slave slave slave

Monday, June 4, 2012

Page 62: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Add  Redis  to  the  mix

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL•  Redis

Monday, June 4, 2012

Page 63: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Add  Redis  to  the  mix

Dev

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL•  Redis

Monday, June 4, 2012

Page 64: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

First  game:  Add  Redis  to  the  mix

Dev

Arch

•  Ruby  on  Rails•  Amazon  EC2•  MySQL•  Redis

OpMonday, June 4, 2012

Page 65: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Architecture  EvoluPon  at  Wooga

The  Start:  Ruby

The  Next  Step

Best  of  Two  Worlds

Company  Values

Monday, June 4, 2012

Page 66: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateless  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 67: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateless  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 68: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateless  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 69: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateless  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 70: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateless  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 71: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateless  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 72: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Find  the  flaw

Monday, June 4, 2012

Page 73: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Find  the  flaw

“Stateless  applicaPon  servers  guarantee  one  thing:

Monday, June 4, 2012

Page 74: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Find  the  flaw

“Stateless  applicaPon  servers  guarantee  one  thing:

The  data  is  neverwhere  you  need  it!”

Paolo  Negri,  Developer  @  Wooga

Monday, June 4, 2012

Page 75: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Strong  session  pamern

Monday, June 4, 2012

Page 76: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Strong  session  pamern

User  starts  playing

Monday, June 4, 2012

Page 77: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Strong  session  pamern

User  starts  playing

Many  transformaPons  on  the  same  data  set

Monday, June 4, 2012

Page 78: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Strong  session  pamern

User  starts  playing

Many  transformaPons  on  the  same  data  set

User  stops  playing

Monday, June 4, 2012

Page 79: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Strong  session  pamern

User  starts  playing

Many  transformaPons  on  the  same  data  set

User  stops  playing

Monday, June 4, 2012

Page 80: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 81: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 82: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  and  DBs

Server Database

Monday, June 4, 2012

Page 83: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  and  DBs

Server Database

One  Game  Session

Monday, June 4, 2012

Page 84: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  and  DBs

Server Database

One  Game  Session

Monday, June 4, 2012

Page 85: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Next  game:  Don’t  use  a  DB  at  all

Arch

Monday, June 4, 2012

Page 86: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Next  game:  Don’t  use  a  DB  at  all

Arch

•  Erlang  OTP

Monday, June 4, 2012

Page 87: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Next  game:  Don’t  use  a  DB  at  all

Arch

•  Erlang  OTP•  Amazon  EC2

Monday, June 4, 2012

Page 88: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Next  game:  Don’t  use  a  DB  at  all

Arch

•  Erlang  OTP•  Amazon  EC2•  Amazon  S3

Monday, June 4, 2012

Page 89: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

EvoluPon  III:  Erlang  and  stateful  servers

Oct  2009

Jan  2010

Oct  2010

Monday, June 4, 2012

Page 90: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

session

Monday, June 4, 2012

Page 91: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

sessionsessionsessionsession

Monday, June 4, 2012

Page 92: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

Monday, June 4, 2012

Page 93: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 94: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 95: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 96: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 97: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 98: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 99: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Stateful  servers  are  not  so  hard

Server

sessionsessionsessionsession

Server

sessionsessionsessionsession

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 100: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

With  stateful  server  the  DB  is  less  used

0

7,500

15,000

22,500

30,000

database  operations  /  sec

Ruby  Stateless Erlang  Stateful

Monday, June 4, 2012

Page 101: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

With  stateful  server  the  DB  is  less  used

0

7,500

15,000

22,500

30,000

database  operations  /  sec

Ruby  Stateless Erlang  Stateful

700

Monday, June 4, 2012

Page 102: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Next  game:  Don’t  use  a  DB  at  all

Arch

•  Erlang  OTP•  Amazon  EC2•  Amazon  S3

Monday, June 4, 2012

Page 103: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Next  game:  Don’t  use  a  DB  at  all

Arch

•  Erlang  OTP•  Amazon  EC2•  Amazon  S3

DevMonday, June 4, 2012

Page 104: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Next  game:  Don’t  use  a  DB  at  all

Arch

•  Erlang  OTP•  Amazon  EC2•  Amazon  S3

Dev OpMonday, June 4, 2012

Page 105: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Architecture  EvoluPon  at  Wooga

The  Start:  Ruby

The  Next  Step:  Erlang

Best  of  Two  Worlds

Company  Values

Monday, June 4, 2012

Page 106: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture

Arch

Monday, June 4, 2012

Page 107: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture

Arch

•  Erlang  OTP  (state)

Monday, June 4, 2012

Page 108: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture

Arch

•  Erlang  OTP  (state)•  Ruby  (logic)

Monday, June 4, 2012

Page 109: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture

Arch

•  Erlang  OTP  (state)•  Ruby  (logic)•  Amazon  EC2

Monday, June 4, 2012

Page 110: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture

Arch

•  Erlang  OTP  (state)•  Ruby  (logic)•  Amazon  EC2•  Amazon  S3

Monday, June 4, 2012

Page 111: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture

Arch

•  Erlang  OTP  (state)•  Ruby  (logic)•  Amazon  EC2•  Amazon  S3

OpDevMonday, June 4, 2012

Page 112: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

EvoluPon  IV:  The  best  out  of  two  worlds

Oct  2009

Jan  2010

Oct  2010

Aug  2011

Monday, June 4, 2012

Page 113: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  basic  setup  looks  exactly  like  before

Server

sessionsessionsessionsession

Server

sessionsessionsessionsession

Server

sessionsessionsessionsession

S3

Monday, June 4, 2012

Page 114: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Bringing  2  worlds  together

Server

session

session

...

session

URL  +  state

response  +  new  state

Monday, June 4, 2012

Page 115: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Bringing  2  worlds  together

Server

session

session

...

session

sender URL  +  state

response  +  new  state

Monday, June 4, 2012

Page 116: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Bringing  2  worlds  together

Server

session

session

...

session

Worker

Worker

Worker

Worker

Worker

sender URL  +  state

response  +  new  state

Monday, June 4, 2012

Page 117: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Bringing  2  worlds  together

Server

session

session

...

session

receiver

Worker

Worker

Worker

Worker

Worker

sender URL  +  state

response  +  new  state

Monday, June 4, 2012

Page 118: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Bringing  2  worlds  together

Server

session

session

...

session

receiver

Worker

Worker

Worker

Worker

Worker

sender URL  +  state

response  +  new  state

Monday, June 4, 2012

Page 119: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Bringing  2  worlds  together

Server

session

session

...

session

receiver

Worker

Worker

Worker

Worker

Worker

sender URL  +  state

response  +  new  state

Monday, June 4, 2012

Page 120: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Performance  impact  for  large  payloads

1 80

1000

2000

3000

4000

5000

6000

#  of  workers

requ

ests  /  s

200  kB  payload

Monday, June 4, 2012

Page 121: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Performance  impact  for  large  payloads

1 80

1000

2000

3000

4000

5000

6000

#  of  workers

requ

ests  /  s

PureErlang

RubyZMQ

200  kB  payload

Monday, June 4, 2012

Page 122: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Performance  impact  for  large  payloads

1 80

1000

2000

3000

4000

5000

6000

#  of  workers

requ

ests  /  s

PureErlang

RubyZMQ

400  rps

200  kB  payload

Monday, June 4, 2012

Page 123: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

NOT  CPU  bound

Monday, June 4, 2012

Page 124: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

NOT  CPU  bound

25%

Monday, June 4, 2012

Page 125: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

NOT  CPU  bound

25%

Fixed  bandwith  limit  @  300  MB/s

Monday, June 4, 2012

Page 126: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

•  Erlang  OTP  (state)•  Ruby  (logic)•  Amazon  EC2•  Amazon  S3

Last  game:  The  ideal  architecture?

Arch

Monday, June 4, 2012

Page 127: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

•  Erlang  OTP  (state)•  Ruby  (logic)•  Amazon  EC2•  Amazon  S3

Last  game:  The  ideal  architecture?

Arch

DevMonday, June 4, 2012

Page 128: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

•  Erlang  OTP  (state)•  Ruby  (logic)•  Amazon  EC2•  Amazon  S3

Last  game:  The  ideal  architecture?

Arch

Dev OpMonday, June 4, 2012

Page 129: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture?

Arch

•  Erlang  OTP  (state)•  Erlang  OTP  (logic)  !!!•  Amazon  EC2•  Amazon  S3

Dev OpMonday, June 4, 2012

Page 130: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture?

Arch

•  Erlang  OTP  (state)•  Erlang  OTP  (logic)  !!!•  Amazon  EC2•  Amazon  S3

Dev OpMonday, June 4, 2012

Page 131: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture?

Arch

•  Erlang  OTP  (state)•  Erlang  OTP  (logic)  !!!•  Amazon  EC2•  Amazon  S3

Dev OpDevMonday, June 4, 2012

Page 132: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Last  game:  The  ideal  architecture?

Arch

•  Erlang  OTP  (state)•  Erlang  OTP  (logic)  !!!•  Amazon  EC2•  Amazon  S3

Dev OpDevMonday, June 4, 2012

Page 133: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

So  nothing  new?

Monday, June 4, 2012

Page 134: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

So  nothing  new?

We  could  not  combine  Ruby  and  Erlang,  too  bad.

At  least  not  for  this  game.

Monday, June 4, 2012

Page 135: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

So  nothing  new?

We  could  not  combine  Ruby  and  Erlang,  too  bad.

At  least  not  for  this  game.

Erlang  is  great  for  inter  process  messaging...

User  sessions  are  represented  by  Erlang  processes.

Monday, June 4, 2012

Page 136: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

So  nothing  new?

We  could  not  combine  Ruby  and  Erlang,  too  bad.

At  least  not  for  this  game.

Erlang  is  great  for  inter  process  messaging...

User  sessions  are  represented  by  Erlang  processes.

...  and  Server  Side  Events  just  work.

The  server  can  push  updates  to  the  client.

Monday, June 4, 2012

Page 137: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

So  nothing  new?

We  could  not  combine  Ruby  and  Erlang,  too  bad.

At  least  not  for  this  game.

Erlang  is  great  for  inter  process  messaging...

User  sessions  are  represented  by  Erlang  processes.

...  and  Server  Side  Events  just  work.

The  server  can  push  updates  to  the  client.

Now,  what  could  you  do  with  this?

Monday, June 4, 2012

Page 138: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  next  step  in  social  gaming

Monday, June 4, 2012

Page 139: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  next  step  in  social  gaming

Monday, June 4, 2012

Page 140: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  next  step  in  social  gaming

Monday, June 4, 2012

Page 141: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  next  step  in  social  gaming

Monday, June 4, 2012

Page 142: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  next  step  in  social  gaming

Monday, June 4, 2012

Page 143: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  next  step  in  social  gaming

Monday, June 4, 2012

Page 144: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

The  next  step  in  social  gaming

Monday, June 4, 2012

Page 145: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Architecture  EvoluPon  at  Wooga

The  Start:  Ruby

The  Next  Step:  Erlang

Best  of  Two  Worlds?

Company  Values

Monday, June 4, 2012

Page 146: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Each  new  game  brought  us  innovaPon

Oct  2009

Jan  2010

Oct  2010

Aug  2011

Monday, June 4, 2012

Page 147: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Small teams

overbig teams

We’ve  learned  to  value

Monday, June 4, 2012

Page 148: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Collaboration

overcompetition

We’ve  learned  to  value

Monday, June 4, 2012

Page 149: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Generalists

overspecialists

We’ve  learned  to  value

Monday, June 4, 2012

Page 150: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Effort reduction

overcost reduction

We’ve  learned  to  value

Monday, June 4, 2012

Page 151: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Innovation

overrisk mitigation

We’ve  learned  to  value

Monday, June 4, 2012

Page 152: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

A  good  value  system

We’ve  learned  to  value

Small  teams                              over  

CollaboraPon                        over

Generalists                                over

Effort  reducPon                over

InnovaPon                                  over

Big  teams  

Compe??on

Specialists

Cost  reduc?on

Risk  mi?ga?on

Monday, June 4, 2012

Page 153: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

It works!

Monday, June 4, 2012

Page 154: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

It works!

Be fast, be bold!

Monday, June 4, 2012

Page 155: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

QuesPons?

Jesper  Richter-­‐Reichhelm@jrirei

slideshare.net/woogawooga.com/jobs

Monday, June 4, 2012

Page 156: Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (Webinale)

Monday, June 4, 2012