SlideShare a Scribd company logo
1 of 156
Download to read offline
GAMES  FOR  THE  MASSES
           Wie  DevOps  die  Entwicklung  von  Architektur  verändert




 Jesper  Richter-­‐Reichhelm,  @jrirei
Monday, June 4, 2012
DEV  -­‐  OPS




Monday, June 4, 2012
DEV  -­‐  OPS

          Some  say:  Admins  learn  to  be  ‘Agile’
            Scrum  and  Kanban




Monday, June 4, 2012
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
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
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




                                    ???



Monday, June 4, 2012
Monday, June 4, 2012
Our  games  all  look  the  same

                       Flash  client          Backend




Monday, June 4, 2012
Our  games  all  look  the  same

                       Flash  client




                                              Game  Session
                                       Asynch.  CommunicaPon




Monday, June 4, 2012
Our  games  all  look  the  same

                                              Backend


                       State  Changes
                        ValidaPon
                        Persistence




Monday, June 4, 2012
But  the  scale  is  interesPng


                       14  billion  requests  /  month




Monday, June 4, 2012
But  the  scale  is  interesPng


                       14  billion  requests  /  month




Monday, June 4, 2012
But  the  scale  is  interesPng


                          14  billion  requests  /  month



                       >100,000  DB  operaPons  /  second




Monday, June 4, 2012
But  the  scale  is  interesPng


                          14  billion  requests  /  month



                       >100,000  DB  operaPons  /  second



                         >50,000  DB  updates  /  second



Monday, June 4, 2012
Classic  roles  in  IT




                   Arch
                                    Dev
                                          Op




                                    ???



Monday, June 4, 2012
Roles  in  Wooga’s  IT




Monday, June 4, 2012
Roles  in  Wooga’s  IT




                                    Arch




Monday, June 4, 2012
Roles  in  Wooga’s  IT




                                    Arch
                                    Dev




Monday, June 4, 2012
Roles  in  Wooga’s  IT




                                    Arch
                                    Dev
                                     Op




Monday, June 4, 2012
Roles  in  Wooga’s  IT




                                    Arch   Arch
                                    Dev    Dev
                                     Op     Op




Monday, June 4, 2012
Wooga  has  dedicated  game  teams




Monday, June 4, 2012
Architecture  EvoluPon  at  Wooga

          The  Start

          The  Next  Step

          Best  of  Two  Worlds

          Company  Values




Monday, June 4, 2012
First  game:  Try  to  be  flexible




                       Arch




Monday, June 4, 2012
First  game:  Try  to  be  flexible


                               •  Ruby  on  Rails




                       Arch




Monday, June 4, 2012
First  game:  Try  to  be  flexible


                               •  Ruby  on  Rails
                               •  Amazon  EC2



                       Arch




Monday, June 4, 2012
First  game:  Try  to  be  flexible


                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL


                       Arch




Monday, June 4, 2012
EvoluPon  I:  Use  Ruby  (on  Rails)




                       Oct  2009


Monday, June 4, 2012
Basic  setup  using  sharding

                                                 lb




                       app   app   app   app     app    app    app   app   app




                                         My            My
                                         SQL           SQL


                                         slave         slave




Monday, June 4, 2012
250K  daily  users
    &$!!!$!!!"




    %$#!!$!!!"




    %$!!!$!!!"




       #!!$!!!"
                                  Life  was  good

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



Monday, June 4, 2012
250K  daily  users
    &$!!!$!!!"




    %$#!!$!!!"




    %$!!!$!!!"




       #!!$!!!"
                                  Life  was  good NO  MORE

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



Monday, June 4, 2012
Welcome  to  6  weeks  of  pain!




Monday, June 4, 2012
Welcome  to  6  weeks  of  pain!

          Heavy  opPmizaPons  were  necessary




Monday, June 4, 2012
Welcome  to  6  weeks  of  pain!

          Heavy  opPmizaPons  were  necessary
            Numerous  small  fixes  regarding  DB  config




Monday, June 4, 2012
Welcome  to  6  weeks  of  pain!

          Heavy  opPmizaPons  were  necessary
            Numerous  small  fixes  regarding  DB  config
            More  shards




Monday, June 4, 2012
Welcome  to  6  weeks  of  pain!

          Heavy  opPmizaPons  were  necessary
            Numerous  small  fixes  regarding  DB  config
            More  shards
            Even  more  shards




Monday, June 4, 2012
Welcome  to  6  weeks  of  pain!

          Heavy  opPmizaPons  were  necessary
            Numerous  small  fixes  regarding  DB  config
            More  shards
            Even  more  shards
            SpliOng  the  model  to  get  more  shards




Monday, June 4, 2012
Early  sharding  hell:  8+8  DBs

                                                            lb




                          app         app     app   app     app   app     app      app         app


                          app         app     app   app     app   app     app      app         app




                   My           My          My      My            My       My            My          My
                   SQL          SQL         SQL     SQL           SQL      SQL           SQL         SQL


                  slave     slave           slave   slave         slave    slave     slave           slave




Monday, June 4, 2012
At  500K  daily  users  we  were  at  a  dead  end
    &$!!!$!!!"




    %$#!!$!!!"




    %$!!!$!!!"




       #!!$!!!"




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



Monday, June 4, 2012
First  game:  Try  to  be  flexible


                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL


                       Arch




Monday, June 4, 2012
First  game:  Try  to  be  flexible


                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL


                       Arch




                                 Dev
Monday, June 4, 2012
First  game:  Try  to  be  flexible


                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL


                       Arch




                                 Dev                Op
Monday, June 4, 2012
Pick  the  right  tool  for  the  job




Monday, June 4, 2012
Pick  the  right  tool  for  the  job




Monday, June 4, 2012
EvoluPon  II:  Use  Redis  as  main  DB




                                   Jan  2010
                       Oct  2009


Monday, June 4, 2012
First  game:  Redis  to  the  mix

                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL



                       Arch




Monday, June 4, 2012
First  game:  Redis  to  the  mix

                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL
                               •  Redis

                       Arch




Monday, June 4, 2012
Hybrid  approach




                        256  GB  data                               60  GB  data
                         10%  writes                                50%  writes
                       hUp://www.flickr.com/photos/erix/245657047/




Monday, June 4, 2012
One  team  saved  the  other  one
    &$!!!$!!!"




    %$#!!$!!!"




    %$!!!$!!!"




       #!!$!!!"




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



Monday, June 4, 2012
One  team  saved  the  other  one
    &$!!!$!!!"




    %$#!!$!!!"




    %$!!!$!!!"




       #!!$!!!"




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



Monday, June 4, 2012
Now  more  than  2M  users  /  day
    &$!!!$!!!"




    %$#!!$!!!"




    %$!!!$!!!"




       #!!$!!!"




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



Monday, June 4, 2012
Now  more  than  2M  users  /  day
    &$!!!$!!!"




    %$#!!$!!!"




    %$!!!$!!!"



                                                  AWS  outage
       #!!$!!!"
                                                   in  Ireland

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



Monday, June 4, 2012
10  single-­‐points-­‐of-­‐failure  -­‐  no  fun  at  all!

                                                             lb         lb


   app          app        app         app     app   app          app        app     app      app   app     app   app


   app          app        app         app     app   app          app        app     app      app   app     app   app


   app          app        app         app     app   app          app        app     app      app   app     app   app


    My             My            My          My      My
                                                                             redis    redis     redis     redis   redis
    SQL            SQL           SQL         SQL     SQL


   slave           slave     slave           slave   slave                   slave    slave     slave     slave   slave




Monday, June 4, 2012
First  game:  Add  Redis  to  the  mix

                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL
                               •  Redis

                       Arch




Monday, June 4, 2012
First  game:  Add  Redis  to  the  mix

                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL
                               •  Redis

                       Arch




                                 Dev
Monday, June 4, 2012
First  game:  Add  Redis  to  the  mix

                               •  Ruby  on  Rails
                               •  Amazon  EC2
                               •  MySQL
                               •  Redis

                       Arch




                                 Dev                Op
Monday, June 4, 2012
Architecture  EvoluPon  at  Wooga

          The  Start:  Ruby

          The  Next  Step

          Best  of  Two  Worlds

          Company  Values




Monday, June 4, 2012
Stateless  servers  and  DBs


                       Server             Database




Monday, June 4, 2012
Stateless  servers  and  DBs


                       Server             Database




Monday, June 4, 2012
Stateless  servers  and  DBs


                       Server             Database




Monday, June 4, 2012
Stateless  servers  and  DBs


                       Server             Database




Monday, June 4, 2012
Stateless  servers  and  DBs


                       Server             Database




Monday, June 4, 2012
Stateless  servers  and  DBs


                       Server             Database




Monday, June 4, 2012
Find  the  flaw




Monday, June 4, 2012
Find  the  flaw


           “Stateless  applicaPon  servers  
               guarantee  one  thing:




Monday, June 4, 2012
Find  the  flaw


           “Stateless  applicaPon  servers  
               guarantee  one  thing:
                        The  data  is  never
                       where  you  need  it!”
                        Paolo  Negri,  Developer  @  Wooga


Monday, June 4, 2012
Strong  session  pamern




Monday, June 4, 2012
Strong  session  pamern

          User  starts  playing




Monday, June 4, 2012
Strong  session  pamern

          User  starts  playing


          Many  transformaPons  on  
          the  same  data  set




Monday, June 4, 2012
Strong  session  pamern

          User  starts  playing


          Many  transformaPons  on  
          the  same  data  set


          User  stops  playing




Monday, June 4, 2012
Strong  session  pamern

          User  starts  playing


          Many  transformaPons  on  
          the  same  data  set


          User  stops  playing




Monday, June 4, 2012
Stateful  servers  and  DBs


                       Server            Database




Monday, June 4, 2012
Stateful  servers  and  DBs


                       Server            Database




Monday, June 4, 2012
Stateful  servers  and  DBs


                       Server            Database




Monday, June 4, 2012
Stateful  servers  and  DBs


                       Server                        Database




                                One  Game  Session




Monday, June 4, 2012
Stateful  servers  and  DBs


                       Server                        Database




                                One  Game  Session




Monday, June 4, 2012
Next  game:  Don’t  use  a  DB  at  all




                       Arch




Monday, June 4, 2012
Next  game:  Don’t  use  a  DB  at  all


                               •  Erlang  OTP




                       Arch




Monday, June 4, 2012
Next  game:  Don’t  use  a  DB  at  all


                               •  Erlang  OTP
                               •  Amazon  EC2



                       Arch




Monday, June 4, 2012
Next  game:  Don’t  use  a  DB  at  all


                               •  Erlang  OTP
                               •  Amazon  EC2
                               •  Amazon  S3


                       Arch




Monday, June 4, 2012
EvoluPon  III:  Erlang  and  stateful  servers




                                               Oct  2010
                                   Jan  2010
                       Oct  2009


Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                session




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                      session
                                    session
                                  session
                                session




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                   Server


                                      session
                                    session
                                  session
                                session




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                   Server


                                      session
                                    session
                                  session
                                session




                                     S3




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                   Server


                                      session
                                    session
                                  session
                                session




                                     S3




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                   Server


                                      session
                                    session
                                  session
                                session




                                     S3




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                   Server


                                      session
                                    session
                                  session
                                session




                                     S3




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                   Server


                                      session
                                    session
                                  session
                                session




                                     S3




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                                   Server


                                      session
                                    session
                                  session
                                session




                                     S3




Monday, June 4, 2012
Stateful  servers  are  not  so  hard




                          Server          Server          Server


                             session
                           session           session
                                           session           session
                                                           session
                         session
                       session           session
                                       session           session
                                                       session




                                            S3




Monday, June 4, 2012
With  stateful  server  the  DB  is  less  used

                           Ruby  Stateless            Erlang  Stateful

         30,000
         22,500
         15,000
            7,500
                       0
                                database  operations  /  sec




Monday, June 4, 2012
With  stateful  server  the  DB  is  less  used

                           Ruby  Stateless            Erlang  Stateful

         30,000
         22,500
         15,000
                                                        700
            7,500
                       0
                                database  operations  /  sec




Monday, June 4, 2012
Next  game:  Don’t  use  a  DB  at  all


                               •  Erlang  OTP
                               •  Amazon  EC2
                               •  Amazon  S3


                       Arch




Monday, June 4, 2012
Next  game:  Don’t  use  a  DB  at  all


                               •  Erlang  OTP
                               •  Amazon  EC2
                               •  Amazon  S3


                       Arch




                                 Dev
Monday, June 4, 2012
Next  game:  Don’t  use  a  DB  at  all


                               •  Erlang  OTP
                               •  Amazon  EC2
                               •  Amazon  S3


                       Arch




                                 Dev                 Op
Monday, June 4, 2012
Architecture  EvoluPon  at  Wooga

          The  Start:  Ruby

          The  Next  Step:  Erlang

          Best  of  Two  Worlds

          Company  Values




Monday, June 4, 2012
Last  game:  The  ideal  architecture




                       Arch




Monday, June 4, 2012
Last  game:  The  ideal  architecture

                              •  Erlang  OTP  (state)




                       Arch




Monday, June 4, 2012
Last  game:  The  ideal  architecture

                              •  Erlang  OTP  (state)
                              •  Ruby  (logic)




                       Arch




Monday, June 4, 2012
Last  game:  The  ideal  architecture

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



                       Arch




Monday, June 4, 2012
Last  game:  The  ideal  architecture

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

                       Arch




Monday, June 4, 2012
Last  game:  The  ideal  architecture

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

                       Arch




                                Dev                     Op
Monday, June 4, 2012
EvoluPon  IV:  The  best  out  of  two  worlds




                                                           Aug  2011
                                               Oct  2010
                                   Jan  2010
                       Oct  2009


Monday, June 4, 2012
The  basic  setup  looks  exactly  like  before




                          Server          Server          Server


                             session
                           session           session
                                           session           session
                                                           session
                         session
                       session           session
                                       session           session
                                                       session




                                            S3




Monday, June 4, 2012
Bringing  2  worlds  together




                                 Server

                       session
                                            URL  +  state

                       session


                         ...
                                          response  +  new  state
                       session




Monday, June 4, 2012
Bringing  2  worlds  together




                                 Server

                       session
                                          sender     URL  +  state

                       session


                         ...
                                                   response  +  new  state
                       session




Monday, June 4, 2012
Bringing  2  worlds  together




                                 Server                                      Worker

                       session
                                          sender     URL  +  state           Worker

                       session
                                                                             Worker

                         ...
                                                                             Worker
                                                   response  +  new  state
                       session
                                                                             Worker



Monday, June 4, 2012
Bringing  2  worlds  together




                                 Server                                        Worker

                       session
                                          sender       URL  +  state           Worker

                       session
                                                                               Worker

                         ...
                                                                               Worker
                                          receiver   response  +  new  state
                       session
                                                                               Worker



Monday, June 4, 2012
Bringing  2  worlds  together




                                 Server                                        Worker

                       session
                                          sender       URL  +  state           Worker

                       session
                                                                               Worker

                         ...
                                                                               Worker
                                          receiver   response  +  new  state
                       session
                                                                               Worker



Monday, June 4, 2012
Bringing  2  worlds  together




                                 Server                                        Worker

                       session
                                          sender       URL  +  state           Worker

                       session
                                                                               Worker

                         ...
                                                                               Worker
                                          receiver   response  +  new  state
                       session
                                                                               Worker



Monday, June 4, 2012
Performance  impact  for  large  payloads

                                          200  kB  payload
                        6000

                        5000

                        4000
      requests  /  s




                        3000

                        2000

                        1000

                          0
                               1           #  of  workers     8



Monday, June 4, 2012
Performance  impact  for  large  payloads

                                          200  kB  payload
                        6000

                        5000

                        4000
      requests  /  s




                                                                    Pure
                        3000                                       Erlang

                        2000

                        1000                                       Ruby
                                                                   ZMQ
                          0
                               1           #  of  workers     8



Monday, June 4, 2012
Performance  impact  for  large  payloads

                                          200  kB  payload
                        6000

                        5000

                        4000
      requests  /  s




                                                                             Pure
                        3000                                                Erlang

                        2000

                        1000                                                Ruby
                                                             400  rps
                                                                            ZMQ
                          0
                               1           #  of  workers               8



Monday, June 4, 2012
NOT  CPU  bound




Monday, June 4, 2012
NOT  CPU  bound




       25%




Monday, June 4, 2012
NOT  CPU  bound




       25%




                Fixed  bandwith  limit  @  300  MB/s




Monday, June 4, 2012
Last  game:  The  ideal  architecture?

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

                       Arch




Monday, June 4, 2012
Last  game:  The  ideal  architecture?

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

                       Arch




                                Dev
Monday, June 4, 2012
Last  game:  The  ideal  architecture?

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

                       Arch




                                Dev                     Op
Monday, June 4, 2012
Last  game:  The  ideal  architecture?

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

                       Arch




                                Dev                      Op
Monday, June 4, 2012
Last  game:  The  ideal  architecture?

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

                       Arch




                                Dev                      Op
Monday, June 4, 2012
Last  game:  The  ideal  architecture?

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

                       Arch




                                Dev                      Op
Monday, June 4, 2012
Last  game:  The  ideal  architecture?

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

                       Arch




                                Dev                      Op
Monday, June 4, 2012
So  nothing  new?




Monday, June 4, 2012
So  nothing  new?

          We  could  not  combine  Ruby  and  Erlang,  too  bad.
            At  least  not  for  this  game.




Monday, June 4, 2012
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
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
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
The  next  step  in  social  gaming




Monday, June 4, 2012
The  next  step  in  social  gaming




Monday, June 4, 2012
The  next  step  in  social  gaming




Monday, June 4, 2012
The  next  step  in  social  gaming




Monday, June 4, 2012
The  next  step  in  social  gaming




Monday, June 4, 2012
The  next  step  in  social  gaming




Monday, June 4, 2012
The  next  step  in  social  gaming




Monday, June 4, 2012
Architecture  EvoluPon  at  Wooga

          The  Start:  Ruby

          The  Next  Step:  Erlang

          Best  of  Two  Worlds?

          Company  Values




Monday, June 4, 2012
Each  new  game  brought  us  innovaPon




                                                           Aug  2011
                                               Oct  2010
                                   Jan  2010
                       Oct  2009


Monday, June 4, 2012
We’ve  learned  to  value




                       Small teams
                            over
                         big teams

Monday, June 4, 2012
We’ve  learned  to  value




                       Collaboration
                            over
                        competition

Monday, June 4, 2012
We’ve  learned  to  value




                       Generalists
                          over
                        specialists

Monday, June 4, 2012
We’ve  learned  to  value




                  Effort reduction
                         over
                    cost reduction

Monday, June 4, 2012
We’ve  learned  to  value




                       Innovation
                            over
                       risk mitigation

Monday, June 4, 2012
A  good  value  system

         We’ve  learned  to  value
         Small  teams                              over     Big  teams  
         CollaboraPon                        over           Compe??on
         Generalists                                over    Specialists
         Effort  reducPon                over                Cost  reduc?on
         InnovaPon                                  over    Risk  mi?ga?on




Monday, June 4, 2012
It works!



Monday, June 4, 2012
It works!

                  Be fast, be bold!

Monday, June 4, 2012
QuesPons?

                       Jesper  Richter-­‐Reichhelm
                                 @jrirei

                        slideshare.net/wooga
                           wooga.com/jobs




Monday, June 4, 2012
Monday, June 4, 2012

More Related Content

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

Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)Wooga
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
 
Newbies, you are not alone
Newbies, you are not aloneNewbies, you are not alone
Newbies, you are not aloneBrandon Dove
 
Michael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bddMichael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bddMichael Mahlberg
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignAOE
 
Multilingual solutions florian loretan
Multilingual solutions florian loretanMultilingual solutions florian loretan
Multilingual solutions florian loretandrupalconf
 
Help Me Design A Better Homepage
Help Me Design A Better HomepageHelp Me Design A Better Homepage
Help Me Design A Better Homepagejtcchan
 
Análisis de ataques APT
Análisis de ataques APT Análisis de ataques APT
Análisis de ataques APT linenoise
 
FailChat: UX Comes First Because UX is Everything!
FailChat: UX Comes First Because UX is Everything!FailChat: UX Comes First Because UX is Everything!
FailChat: UX Comes First Because UX is Everything!ellendunne
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkinscowboyd
 
Weather Sensebox for Schools
Weather Sensebox for SchoolsWeather Sensebox for Schools
Weather Sensebox for SchoolsThomas Bartoschek
 
Building you own Pharo images with Metacello
Building you own Pharo images with Metacello Building you own Pharo images with Metacello
Building you own Pharo images with Metacello Mariano Martínez Peck
 
Declare independence from your it department sysadmin skills for symfony dev...
Declare independence from your it department  sysadmin skills for symfony dev...Declare independence from your it department  sysadmin skills for symfony dev...
Declare independence from your it department sysadmin skills for symfony dev...Pablo Godel
 
Oop design magma rails 2011
Oop design   magma rails 2011Oop design   magma rails 2011
Oop design magma rails 2011MagmaConf
 
Improving Front End Performance
Improving Front End PerformanceImproving Front End Performance
Improving Front End PerformanceJoseph Scott
 
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012Treasure Data, Inc.
 

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

Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)Games for the Masses (QCon London 2012)
Games for the Masses (QCon London 2012)
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDB
 
Newbies, you are not alone
Newbies, you are not aloneNewbies, you are not alone
Newbies, you are not alone
 
Michael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bddMichael mahlberg exploratory-testing-the_missing_half_of_bdd
Michael mahlberg exploratory-testing-the_missing_half_of_bdd
 
A Dive Into Clojure
A Dive Into ClojureA Dive Into Clojure
A Dive Into Clojure
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Multilingual solutions florian loretan
Multilingual solutions florian loretanMultilingual solutions florian loretan
Multilingual solutions florian loretan
 
Help Me Design A Better Homepage
Help Me Design A Better HomepageHelp Me Design A Better Homepage
Help Me Design A Better Homepage
 
Análisis de ataques APT
Análisis de ataques APT Análisis de ataques APT
Análisis de ataques APT
 
FailChat: UX Comes First Because UX is Everything!
FailChat: UX Comes First Because UX is Everything!FailChat: UX Comes First Because UX is Everything!
FailChat: UX Comes First Because UX is Everything!
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkins
 
Weather Sensebox for Schools
Weather Sensebox for SchoolsWeather Sensebox for Schools
Weather Sensebox for Schools
 
Learning sparql 2012 12
Learning sparql 2012 12Learning sparql 2012 12
Learning sparql 2012 12
 
Jenkins Evolutions
Jenkins EvolutionsJenkins Evolutions
Jenkins Evolutions
 
Building you own Pharo images with Metacello
Building you own Pharo images with Metacello Building you own Pharo images with Metacello
Building you own Pharo images with Metacello
 
TermGenie and Shoge
TermGenie and ShogeTermGenie and Shoge
TermGenie and Shoge
 
Declare independence from your it department sysadmin skills for symfony dev...
Declare independence from your it department  sysadmin skills for symfony dev...Declare independence from your it department  sysadmin skills for symfony dev...
Declare independence from your it department sysadmin skills for symfony dev...
 
Oop design magma rails 2011
Oop design   magma rails 2011Oop design   magma rails 2011
Oop design magma rails 2011
 
Improving Front End Performance
Improving Front End PerformanceImproving Front End Performance
Improving Front End Performance
 
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
 

More from Wooga

Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile Wooga
 
Leveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario QuondamstefanoLeveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario QuondamstefanoWooga
 
Evoloution of Ideas
Evoloution of IdeasEvoloution of Ideas
Evoloution of IdeasWooga
 
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid Wooga
 
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam TelferSaying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam TelferWooga
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Wooga
 
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed BidenBig Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed BidenWooga
 
Review mining aps2014 berlin
Review mining aps2014 berlinReview mining aps2014 berlin
Review mining aps2014 berlinWooga
 
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 BerlinRiak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 BerlinWooga
 
Staying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile marketStaying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile marketWooga
 
Startup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp StelzerStartup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp StelzerWooga
 
DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)Wooga
 
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-ReichhelmDevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-ReichhelmWooga
 
CodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game DevelopmentCodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game DevelopmentWooga
 
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014Wooga
 
How to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of PeopleHow to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of PeopleWooga
 
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014Wooga
 
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean MarketPocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean MarketWooga
 
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...Wooga
 
DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)Wooga
 

More from Wooga (20)

Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile Story of Warlords: Bringing a turn-based strategy game to mobile
Story of Warlords: Bringing a turn-based strategy game to mobile
 
Leveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario QuondamstefanoLeveling up in localization! - Susan Alma & Dario Quondamstefano
Leveling up in localization! - Susan Alma & Dario Quondamstefano
 
Evoloution of Ideas
Evoloution of IdeasEvoloution of Ideas
Evoloution of Ideas
 
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
 
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam TelferSaying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
 
Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)
 
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed BidenBig Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
 
Review mining aps2014 berlin
Review mining aps2014 berlinReview mining aps2014 berlin
Review mining aps2014 berlin
 
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 BerlinRiak & Wooga_Geeek2Geeek Meetup2014 Berlin
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
 
Staying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile marketStaying in the Game: Game localization practices for the mobile market
Staying in the Game: Game localization practices for the mobile market
 
Startup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp StelzerStartup Weekend_Makers and Games_Philipp Stelzer
Startup Weekend_Makers and Games_Philipp Stelzer
 
DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)DevOps goes Mobile (daho.am)
DevOps goes Mobile (daho.am)
 
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-ReichhelmDevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
 
CodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game DevelopmentCodeFest 2014_Mobile Game Development
CodeFest 2014_Mobile Game Development
 
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
 
How to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of PeopleHow to hire the best people for your startup-Gitta Blat-Head of People
How to hire the best people for your startup-Gitta Blat-Head of People
 
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
 
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean MarketPocket Gamer Connects 2014_The Experience of Entering the Korean Market
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market
 
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
How to stand out in a hit driven business - Game Connection Paris 2013 - SebK...
 
DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)
 

Recently uploaded

Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 

Recently uploaded (20)

Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 

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

  • 1. GAMES  FOR  THE  MASSES Wie  DevOps  die  Entwicklung  von  Architektur  verändert Jesper  Richter-­‐Reichhelm,  @jrirei Monday, June 4, 2012
  • 3. DEV  -­‐  OPS Some  say:  Admins  learn  to  be  ‘Agile’ Scrum  and  Kanban Monday, June 4, 2012
  • 4. 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
  • 5. 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
  • 6. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 7. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 8. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 9. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 10. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 11. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 12. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 13. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 14. Classic  roles  in  IT Arch Dev Op Monday, June 4, 2012
  • 15. Classic  roles  in  IT Arch Dev Op ??? Monday, June 4, 2012
  • 17. Our  games  all  look  the  same Flash  client Backend Monday, June 4, 2012
  • 18. Our  games  all  look  the  same Flash  client Game  Session Asynch.  CommunicaPon Monday, June 4, 2012
  • 19. Our  games  all  look  the  same Backend State  Changes ValidaPon Persistence Monday, June 4, 2012
  • 20. But  the  scale  is  interesPng 14  billion  requests  /  month Monday, June 4, 2012
  • 21. But  the  scale  is  interesPng 14  billion  requests  /  month Monday, June 4, 2012
  • 22. But  the  scale  is  interesPng 14  billion  requests  /  month >100,000  DB  operaPons  /  second Monday, June 4, 2012
  • 23. But  the  scale  is  interesPng 14  billion  requests  /  month >100,000  DB  operaPons  /  second >50,000  DB  updates  /  second Monday, June 4, 2012
  • 24. Classic  roles  in  IT Arch Dev Op ??? Monday, June 4, 2012
  • 25. Roles  in  Wooga’s  IT Monday, June 4, 2012
  • 26. Roles  in  Wooga’s  IT Arch Monday, June 4, 2012
  • 27. Roles  in  Wooga’s  IT Arch Dev Monday, June 4, 2012
  • 28. Roles  in  Wooga’s  IT Arch Dev Op Monday, June 4, 2012
  • 29. Roles  in  Wooga’s  IT Arch Arch Dev Dev Op Op Monday, June 4, 2012
  • 30. Wooga  has  dedicated  game  teams Monday, June 4, 2012
  • 31. Architecture  EvoluPon  at  Wooga The  Start The  Next  Step Best  of  Two  Worlds Company  Values Monday, June 4, 2012
  • 32. First  game:  Try  to  be  flexible Arch Monday, June 4, 2012
  • 33. First  game:  Try  to  be  flexible •  Ruby  on  Rails Arch Monday, June 4, 2012
  • 34. First  game:  Try  to  be  flexible •  Ruby  on  Rails •  Amazon  EC2 Arch Monday, June 4, 2012
  • 35. First  game:  Try  to  be  flexible •  Ruby  on  Rails •  Amazon  EC2 •  MySQL Arch Monday, June 4, 2012
  • 36. EvoluPon  I:  Use  Ruby  (on  Rails) Oct  2009 Monday, June 4, 2012
  • 37. Basic  setup  using  sharding lb app app app app app app app app app My My SQL SQL slave slave Monday, June 4, 2012
  • 38. 250K  daily  users &$!!!$!!!" %$#!!$!!!" %$!!!$!!!" #!!$!!!" Life  was  good !" '()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%" Monday, June 4, 2012
  • 39. 250K  daily  users &$!!!$!!!" %$#!!$!!!" %$!!!$!!!" #!!$!!!" Life  was  good NO  MORE !" '()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%" Monday, June 4, 2012
  • 40. Welcome  to  6  weeks  of  pain! Monday, June 4, 2012
  • 41. Welcome  to  6  weeks  of  pain! Heavy  opPmizaPons  were  necessary Monday, June 4, 2012
  • 42. Welcome  to  6  weeks  of  pain! Heavy  opPmizaPons  were  necessary Numerous  small  fixes  regarding  DB  config Monday, June 4, 2012
  • 43. Welcome  to  6  weeks  of  pain! Heavy  opPmizaPons  were  necessary Numerous  small  fixes  regarding  DB  config More  shards Monday, June 4, 2012
  • 44. Welcome  to  6  weeks  of  pain! Heavy  opPmizaPons  were  necessary Numerous  small  fixes  regarding  DB  config More  shards Even  more  shards Monday, June 4, 2012
  • 45. Welcome  to  6  weeks  of  pain! Heavy  opPmizaPons  were  necessary Numerous  small  fixes  regarding  DB  config More  shards Even  more  shards SpliOng  the  model  to  get  more  shards Monday, June 4, 2012
  • 46. Early  sharding  hell:  8+8  DBs lb app app app app app app app app app app app app app app app app app app My My My My My My My My SQL SQL SQL SQL SQL SQL SQL SQL slave slave slave slave slave slave slave slave Monday, June 4, 2012
  • 47. At  500K  daily  users  we  were  at  a  dead  end &$!!!$!!!" %$#!!$!!!" %$!!!$!!!" #!!$!!!" !" '()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%" Monday, June 4, 2012
  • 48. First  game:  Try  to  be  flexible •  Ruby  on  Rails •  Amazon  EC2 •  MySQL Arch Monday, June 4, 2012
  • 49. First  game:  Try  to  be  flexible •  Ruby  on  Rails •  Amazon  EC2 •  MySQL Arch Dev Monday, June 4, 2012
  • 50. First  game:  Try  to  be  flexible •  Ruby  on  Rails •  Amazon  EC2 •  MySQL Arch Dev Op Monday, June 4, 2012
  • 51. Pick  the  right  tool  for  the  job Monday, June 4, 2012
  • 52. Pick  the  right  tool  for  the  job Monday, June 4, 2012
  • 53. EvoluPon  II:  Use  Redis  as  main  DB Jan  2010 Oct  2009 Monday, June 4, 2012
  • 54. First  game:  Redis  to  the  mix •  Ruby  on  Rails •  Amazon  EC2 •  MySQL Arch Monday, June 4, 2012
  • 55. First  game:  Redis  to  the  mix •  Ruby  on  Rails •  Amazon  EC2 •  MySQL •  Redis Arch Monday, June 4, 2012
  • 56. Hybrid  approach 256  GB  data 60  GB  data 10%  writes 50%  writes hUp://www.flickr.com/photos/erix/245657047/ Monday, June 4, 2012
  • 57. One  team  saved  the  other  one &$!!!$!!!" %$#!!$!!!" %$!!!$!!!" #!!$!!!" !" '()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%" Monday, June 4, 2012
  • 58. One  team  saved  the  other  one &$!!!$!!!" %$#!!$!!!" %$!!!$!!!" #!!$!!!" !" '()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%" Monday, June 4, 2012
  • 59. Now  more  than  2M  users  /  day &$!!!$!!!" %$#!!$!!!" %$!!!$!!!" #!!$!!!" !" '()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%" Monday, June 4, 2012
  • 60. Now  more  than  2M  users  /  day &$!!!$!!!" %$#!!$!!!" %$!!!$!!!" AWS  outage #!!$!!!" in  Ireland !" '()*%!" +,-*%!" ./0*%!" +12*%%" '()*%%" +,-*%%" ./0*%%" Monday, June 4, 2012
  • 61. 10  single-­‐points-­‐of-­‐failure  -­‐  no  fun  at  all! lb lb app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app app My My My My My redis redis redis redis redis SQL SQL SQL SQL SQL slave slave slave slave slave slave slave slave slave slave Monday, June 4, 2012
  • 62. First  game:  Add  Redis  to  the  mix •  Ruby  on  Rails •  Amazon  EC2 •  MySQL •  Redis Arch Monday, June 4, 2012
  • 63. First  game:  Add  Redis  to  the  mix •  Ruby  on  Rails •  Amazon  EC2 •  MySQL •  Redis Arch Dev Monday, June 4, 2012
  • 64. First  game:  Add  Redis  to  the  mix •  Ruby  on  Rails •  Amazon  EC2 •  MySQL •  Redis Arch Dev Op Monday, June 4, 2012
  • 65. Architecture  EvoluPon  at  Wooga The  Start:  Ruby The  Next  Step Best  of  Two  Worlds Company  Values Monday, June 4, 2012
  • 66. Stateless  servers  and  DBs Server Database Monday, June 4, 2012
  • 67. Stateless  servers  and  DBs Server Database Monday, June 4, 2012
  • 68. Stateless  servers  and  DBs Server Database Monday, June 4, 2012
  • 69. Stateless  servers  and  DBs Server Database Monday, June 4, 2012
  • 70. Stateless  servers  and  DBs Server Database Monday, June 4, 2012
  • 71. Stateless  servers  and  DBs Server Database Monday, June 4, 2012
  • 73. Find  the  flaw “Stateless  applicaPon  servers   guarantee  one  thing: Monday, June 4, 2012
  • 74. Find  the  flaw “Stateless  applicaPon  servers   guarantee  one  thing: The  data  is  never where  you  need  it!” Paolo  Negri,  Developer  @  Wooga Monday, June 4, 2012
  • 76. Strong  session  pamern User  starts  playing Monday, June 4, 2012
  • 77. Strong  session  pamern User  starts  playing Many  transformaPons  on   the  same  data  set Monday, June 4, 2012
  • 78. Strong  session  pamern User  starts  playing Many  transformaPons  on   the  same  data  set User  stops  playing Monday, June 4, 2012
  • 79. Strong  session  pamern User  starts  playing Many  transformaPons  on   the  same  data  set User  stops  playing Monday, June 4, 2012
  • 80. Stateful  servers  and  DBs Server Database Monday, June 4, 2012
  • 81. Stateful  servers  and  DBs Server Database Monday, June 4, 2012
  • 82. Stateful  servers  and  DBs Server Database Monday, June 4, 2012
  • 83. Stateful  servers  and  DBs Server Database One  Game  Session Monday, June 4, 2012
  • 84. Stateful  servers  and  DBs Server Database One  Game  Session Monday, June 4, 2012
  • 85. Next  game:  Don’t  use  a  DB  at  all Arch Monday, June 4, 2012
  • 86. Next  game:  Don’t  use  a  DB  at  all •  Erlang  OTP Arch Monday, June 4, 2012
  • 87. Next  game:  Don’t  use  a  DB  at  all •  Erlang  OTP •  Amazon  EC2 Arch Monday, June 4, 2012
  • 88. Next  game:  Don’t  use  a  DB  at  all •  Erlang  OTP •  Amazon  EC2 •  Amazon  S3 Arch Monday, June 4, 2012
  • 89. EvoluPon  III:  Erlang  and  stateful  servers Oct  2010 Jan  2010 Oct  2009 Monday, June 4, 2012
  • 90. Stateful  servers  are  not  so  hard session Monday, June 4, 2012
  • 91. Stateful  servers  are  not  so  hard session session session session Monday, June 4, 2012
  • 92. Stateful  servers  are  not  so  hard Server session session session session Monday, June 4, 2012
  • 93. Stateful  servers  are  not  so  hard Server session session session session S3 Monday, June 4, 2012
  • 94. Stateful  servers  are  not  so  hard Server session session session session S3 Monday, June 4, 2012
  • 95. Stateful  servers  are  not  so  hard Server session session session session S3 Monday, June 4, 2012
  • 96. Stateful  servers  are  not  so  hard Server session session session session S3 Monday, June 4, 2012
  • 97. Stateful  servers  are  not  so  hard Server session session session session S3 Monday, June 4, 2012
  • 98. Stateful  servers  are  not  so  hard Server session session session session S3 Monday, June 4, 2012
  • 99. Stateful  servers  are  not  so  hard Server Server Server session session session session session session session session session session session session S3 Monday, June 4, 2012
  • 100. With  stateful  server  the  DB  is  less  used Ruby  Stateless Erlang  Stateful 30,000 22,500 15,000 7,500 0 database  operations  /  sec Monday, June 4, 2012
  • 101. With  stateful  server  the  DB  is  less  used Ruby  Stateless Erlang  Stateful 30,000 22,500 15,000 700 7,500 0 database  operations  /  sec Monday, June 4, 2012
  • 102. Next  game:  Don’t  use  a  DB  at  all •  Erlang  OTP •  Amazon  EC2 •  Amazon  S3 Arch Monday, June 4, 2012
  • 103. Next  game:  Don’t  use  a  DB  at  all •  Erlang  OTP •  Amazon  EC2 •  Amazon  S3 Arch Dev Monday, June 4, 2012
  • 104. Next  game:  Don’t  use  a  DB  at  all •  Erlang  OTP •  Amazon  EC2 •  Amazon  S3 Arch Dev Op Monday, June 4, 2012
  • 105. Architecture  EvoluPon  at  Wooga The  Start:  Ruby The  Next  Step:  Erlang Best  of  Two  Worlds Company  Values Monday, June 4, 2012
  • 106. Last  game:  The  ideal  architecture Arch Monday, June 4, 2012
  • 107. Last  game:  The  ideal  architecture •  Erlang  OTP  (state) Arch Monday, June 4, 2012
  • 108. Last  game:  The  ideal  architecture •  Erlang  OTP  (state) •  Ruby  (logic) Arch Monday, June 4, 2012
  • 109. Last  game:  The  ideal  architecture •  Erlang  OTP  (state) •  Ruby  (logic) •  Amazon  EC2 Arch Monday, June 4, 2012
  • 110. Last  game:  The  ideal  architecture •  Erlang  OTP  (state) •  Ruby  (logic) •  Amazon  EC2 •  Amazon  S3 Arch Monday, June 4, 2012
  • 111. Last  game:  The  ideal  architecture •  Erlang  OTP  (state) •  Ruby  (logic) •  Amazon  EC2 •  Amazon  S3 Arch Dev Op Monday, June 4, 2012
  • 112. EvoluPon  IV:  The  best  out  of  two  worlds Aug  2011 Oct  2010 Jan  2010 Oct  2009 Monday, June 4, 2012
  • 113. The  basic  setup  looks  exactly  like  before Server Server Server session session session session session session session session session session session session S3 Monday, June 4, 2012
  • 114. Bringing  2  worlds  together Server session URL  +  state session ... response  +  new  state session Monday, June 4, 2012
  • 115. Bringing  2  worlds  together Server session sender URL  +  state session ... response  +  new  state session Monday, June 4, 2012
  • 116. Bringing  2  worlds  together Server Worker session sender URL  +  state Worker session Worker ... Worker response  +  new  state session Worker Monday, June 4, 2012
  • 117. Bringing  2  worlds  together Server Worker session sender URL  +  state Worker session Worker ... Worker receiver response  +  new  state session Worker Monday, June 4, 2012
  • 118. Bringing  2  worlds  together Server Worker session sender URL  +  state Worker session Worker ... Worker receiver response  +  new  state session Worker Monday, June 4, 2012
  • 119. Bringing  2  worlds  together Server Worker session sender URL  +  state Worker session Worker ... Worker receiver response  +  new  state session Worker Monday, June 4, 2012
  • 120. Performance  impact  for  large  payloads 200  kB  payload 6000 5000 4000 requests  /  s 3000 2000 1000 0 1 #  of  workers 8 Monday, June 4, 2012
  • 121. Performance  impact  for  large  payloads 200  kB  payload 6000 5000 4000 requests  /  s Pure 3000 Erlang 2000 1000 Ruby ZMQ 0 1 #  of  workers 8 Monday, June 4, 2012
  • 122. Performance  impact  for  large  payloads 200  kB  payload 6000 5000 4000 requests  /  s Pure 3000 Erlang 2000 1000 Ruby 400  rps ZMQ 0 1 #  of  workers 8 Monday, June 4, 2012
  • 123. NOT  CPU  bound Monday, June 4, 2012
  • 124. NOT  CPU  bound 25% Monday, June 4, 2012
  • 125. NOT  CPU  bound 25% Fixed  bandwith  limit  @  300  MB/s Monday, June 4, 2012
  • 126. Last  game:  The  ideal  architecture? •  Erlang  OTP  (state) •  Ruby  (logic) •  Amazon  EC2 •  Amazon  S3 Arch Monday, June 4, 2012
  • 127. Last  game:  The  ideal  architecture? •  Erlang  OTP  (state) •  Ruby  (logic) •  Amazon  EC2 •  Amazon  S3 Arch Dev Monday, June 4, 2012
  • 128. Last  game:  The  ideal  architecture? •  Erlang  OTP  (state) •  Ruby  (logic) •  Amazon  EC2 •  Amazon  S3 Arch Dev Op Monday, June 4, 2012
  • 129. Last  game:  The  ideal  architecture? •  Erlang  OTP  (state) •  Erlang  OTP  (logic)  !!! •  Amazon  EC2 •  Amazon  S3 Arch Dev Op Monday, June 4, 2012
  • 130. Last  game:  The  ideal  architecture? •  Erlang  OTP  (state) •  Erlang  OTP  (logic)  !!! •  Amazon  EC2 •  Amazon  S3 Arch Dev Op Monday, June 4, 2012
  • 131. Last  game:  The  ideal  architecture? •  Erlang  OTP  (state) •  Erlang  OTP  (logic)  !!! •  Amazon  EC2 •  Amazon  S3 Arch Dev Op Monday, June 4, 2012
  • 132. Last  game:  The  ideal  architecture? •  Erlang  OTP  (state) •  Erlang  OTP  (logic)  !!! •  Amazon  EC2 •  Amazon  S3 Arch Dev Op Monday, June 4, 2012
  • 134. So  nothing  new? We  could  not  combine  Ruby  and  Erlang,  too  bad. At  least  not  for  this  game. Monday, June 4, 2012
  • 135. 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
  • 136. 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
  • 137. 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
  • 138. The  next  step  in  social  gaming Monday, June 4, 2012
  • 139. The  next  step  in  social  gaming Monday, June 4, 2012
  • 140. The  next  step  in  social  gaming Monday, June 4, 2012
  • 141. The  next  step  in  social  gaming Monday, June 4, 2012
  • 142. The  next  step  in  social  gaming Monday, June 4, 2012
  • 143. The  next  step  in  social  gaming Monday, June 4, 2012
  • 144. The  next  step  in  social  gaming Monday, June 4, 2012
  • 145. Architecture  EvoluPon  at  Wooga The  Start:  Ruby The  Next  Step:  Erlang Best  of  Two  Worlds? Company  Values Monday, June 4, 2012
  • 146. Each  new  game  brought  us  innovaPon Aug  2011 Oct  2010 Jan  2010 Oct  2009 Monday, June 4, 2012
  • 147. We’ve  learned  to  value Small teams over big teams Monday, June 4, 2012
  • 148. We’ve  learned  to  value Collaboration over competition Monday, June 4, 2012
  • 149. We’ve  learned  to  value Generalists over specialists Monday, June 4, 2012
  • 150. We’ve  learned  to  value Effort reduction over cost reduction Monday, June 4, 2012
  • 151. We’ve  learned  to  value Innovation over risk mitigation Monday, June 4, 2012
  • 152. A  good  value  system We’ve  learned  to  value Small  teams                              over   Big  teams   CollaboraPon                        over Compe??on Generalists                                over Specialists Effort  reducPon                over Cost  reduc?on InnovaPon                                  over Risk  mi?ga?on Monday, June 4, 2012
  • 154. It works! Be fast, be bold! Monday, June 4, 2012
  • 155. QuesPons? Jesper  Richter-­‐Reichhelm @jrirei slideshare.net/wooga wooga.com/jobs Monday, June 4, 2012