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




Jesper  Richter-­‐Reichhelm,  @jrirei
DEV  -­‐  OPS
DEV  -­‐  OPS

Some  say:  Admins  learn  to  be  ‘Agile’

 •    Scrum  and  Kanban
DEV  -­‐  OPS

Some  say:  Admins  learn  to  be  ‘Agile’

 •    Scrum  and  Kanban

Others  say:  Admins  learn  to  program  their  setup

 •    Chef,  Puppet
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
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op
Classic  roles  in  IT


  Arch
                   Dev
                         Op




                   ???
Games for the Masses (Jax)
Our  games  all  look  the  same

       Flash  client               Backend
Our  games  all  look  the  same

       Flash  client




                                   Game  Session
                              Asynch.  CommunicaMon
Our  games  all  look  the  same

                                   Backend




      State  Changes
        ValidaMon
       Persistence
But  the  scale  is  interesMng


             14  billion  requests  /  month
But  the  scale  is  interesMng


             14  billion  requests  /  month
But  the  scale  is  interesMng


             14  billion  requests  /  month



          >100,000  DB  operaMons  /  second
But  the  scale  is  interesMng


             14  billion  requests  /  month



          >100,000  DB  operaMons  /  second



            >50,000  DB  updates  /  second
Classic  roles  in  IT


  Arch
                   Dev
                         Op




                   ???
Roles  in  Wooga’s  IT
Roles  in  Wooga’s  IT


                Arch
Roles  in  Wooga’s  IT


                Arch
                Dev
Roles  in  Wooga’s  IT


                Arch
                Dev
                 Op
Roles  in  Wooga’s  IT


                Arch     Arch
                Dev      Dev
                 Op       Op
2  Developers  to  do  it  all

 Typical  team  setup
   4  product  managers
   4  ar=sts
   4  frontend  engineers
   2  backend  engineers
      -­‐ design,  implementa7on,  opera7on
Wooga  has  dedicated  game  teams
Games for the Masses (Jax)
Games for the Masses (Jax)
Oct  2009
Oct  2009   Jan  2010
Oct  2009   Jan  2010




Oct  2010
Oct  2009   Jan  2010




Oct  2010   Aug  2011
Architecture  EvoluMon  at  Wooga

  The  Start

  The  Next  Step

  Best  of  Two  Worlds

  Company  Values
Oct  2009:  1st  team  wanted  good  code  quality

 Good  code  quality
   Easy  to  understand
   Easy  to  test
   Easy  to  refactor
Oct  2009:  1st  team  wanted  good  code  quality

 Good  code  quality
   Easy  to  understand
   Easy  to  test
   Easy  to  refactor
EvoluMon  I:  Use  Ruby  (on  Rails)




            Oct  2009
A  basic  setup  using  sharding  worked  fine

                                  lb




        app   app   app   app     app    app    app   app   app




                          My            My
                          SQL           SQL


                          slave         slave
250K  daily  users
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"




 #!!$!!!"
                            Life  was  good

        !"
        '()*%!"   +,-*%!"       ./0*%!"   +12*%%"   '()*%%"   +,-*%%"   ./0*%%"
250K  daily  users
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"




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

        !"
        '()*%!"   +,-*%!"       ./0*%!"   +12*%%"   '()*%%"   +,-*%%"   ./0*%%"
Welcome  to  6  weeks  of  pain!

  Heavy  opMmizaMons  were  necessary
Welcome  to  6  weeks  of  pain!

  Heavy  opMmizaMons  were  necessary
    Numerous  small  fixes  regarding  DB  config
Welcome  to  6  weeks  of  pain!

  Heavy  opMmizaMons  were  necessary
    Numerous  small  fixes  regarding  DB  config
    More  shards
Welcome  to  6  weeks  of  pain!

  Heavy  opMmizaMons  were  necessary
    Numerous  small  fixes  regarding  DB  config
    More  shards
    Even  more  shards
Welcome  to  6  weeks  of  pain!

  Heavy  opMmizaMons  were  necessary
    Numerous  small  fixes  regarding  DB  config
    More  shards
    Even  more  shards
    SpliNng  the  model  to  get  more  shards
Early  sharding  hell:  8  master  and  8  slaves

                                               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
At  500K  daily  users  we  were  at  a  dead  end
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"




 #!!$!!!"




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



http://www.flickr.com/photos/billue_the_bear/
Jan  2010:  Meanwhile  at  the  2nd  team

 Don’t  break  the  bank
   Make  it  faster
   Make  it  cheaper
   Make  it  simpler
Jan  2010:  Meanwhile  at  the  2nd  team

 Don’t  break  the  bank
   Make  it  faster
   Make  it  cheaper
   Make  it  simpler
EvoluMon  II:  Use  Redis  as  main  database




                        Jan  2010

            Oct  2009
If  MySQL  is  a  truck
                                                                Fast  enough
                                                                Disk  based
                                                                Robust




       Fast  enough                    disk  based                    robust
If  MySQL  is  a  truck,  Redis  is  a  race  car
                                                                  Super  fast
                                                                  RAM  based
                                                                  Fragile




        Super  fast                    RAM  based                    fragile
Bare  metal  for  low  latency!

                                 lb




             app   app   app     app    app     app   app




                         Re-­‐          Re-­‐
                         dis            dis


                                 disk
                                 (S3)
How  could  we  apply  that  knowledge?
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"




 #!!$!!!"




        !"
        '()*%!"   +,-*%!"   ./0*%!"   +12*%%"   '()*%%"   +,-*%%"   ./0*%%"
Migrate  data  from  MySQL  to  Redis
Migrate  data  from  MySQL  to  Redis

 No  downMmes  allowed
Migrate  data  from  MySQL  to  Redis

 No  downMmes  allowed

 Migrate  data  on  demand
Migrate  data  from  MySQL  to  Redis

 No  downMmes  allowed

 Migrate  data  on  demand
   On  every  access  check  if  data  needs  migra=on
Migrate  data  from  MySQL  to  Redis

 No  downMmes  allowed

 Migrate  data  on  demand
   On  every  access  check  if  data  needs  migra=on
   Migrate  if  needed
Migrate  data  from  MySQL  to  Redis

 No  downMmes  allowed

 Migrate  data  on  demand
   On  every  access  check  if  data  needs  migra=on
   Migrate  if  needed
   Con=nue  using  Redis
Typical  migraMon  throughput  over  3  days
Big  and  staMc  data  in  MySQL,  rest  goes  to  Redis




        256  GB  data                               60  GB  data
         10%  writes                                50%  writes
       hOp://www.flickr.com/photos/erix/245657047/
One  team  saved  the  other  one
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"




 #!!$!!!"




        !"
        '()*%!"   +,-*%!"   ./0*%!"   +12*%%"   '()*%%"   +,-*%%"   ./0*%%"
One  team  saved  the  other  one
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"




 #!!$!!!"




        !"
        '()*%!"   +,-*%!"   ./0*%!"   +12*%%"   '()*%%"   +,-*%%"   ./0*%%"
We  now  have  more  than  2  million  users  /  day
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"




 #!!$!!!"




        !"
        '()*%!"   +,-*%!"   ./0*%!"   +12*%%"   '()*%%"   +,-*%%"   ./0*%%"
We  now  have  more  than  2  million  users  /  day
&$!!!$!!!"




%$#!!$!!!"




%$!!!$!!!"



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

        !"
        '()*%!"   +,-*%!"   ./0*%!"   +12*%%"   '()*%%"   +,-*%%"   ./0*%%"
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
http://www.flickr.com/photos/wolfsavard/




OUCH!
Architecture  EvoluMon  at  Wooga

  The  Start:  Ruby

  The  Next  Step

  Best  of  Two  Worlds

  Company  Values
Stateless  servers  and  DBs

         Server                Database
Stateless  servers  and  DBs

         Server                Database
Stateless  servers  and  DBs

         Server                Database
Stateless  servers  and  DBs

         Server                Database
Stateless  servers  and  DBs

         Server                Database
Stateless  servers  and  DBs

         Server                Database
Stateful  servers  and  DBs

          Server              Database
Stateful  servers  and  DBs

          Server              Database
Stateful  servers  and  DBs

          Server              Database
Stateful  servers  and  DBs

          Server                        Database




                   One  Game  Session
Stateful  servers  and  DBs

          Server                        Database




                   One  Game  Session
Oct  2010:  3rd  team  used  a  stateful  server

 If  DBs  are  the  problem
      Don’t  use  them
      Store  state  in  server
      Need  to  be  robust
Oct  2010:  3rd  team  used  a  stateful  server

 If  DBs  are  the  problem
      Don’t  use  them
      Store  state  in  server
      Need  to  be  robust
EvoluMon  III:  Use  Erlang  for  a  stateful  server




                                     Oct  2010

                         Jan  2010

             Oct  2009
Stateful  servers  are  not  as  hard  as  you  think




                        session
Stateful  servers  are  not  as  hard  as  you  think




                              session
                            session
                          session
                        session
Stateful  servers  are  not  as  hard  as  you  think



                           Server


                              session
                            session
                          session
                        session
Stateful  servers  are  not  as  hard  as  you  think



                           Server


                              session
                            session
                          session
                        session




                             S3
Stateful  servers  are  not  as  hard  as  you  think



                           Server


                              session
                            session
                          session
                        session




                             S3
Stateful  servers  are  not  as  hard  as  you  think



                           Server


                              session
                            session
                          session
                        session




                             S3
Stateful  servers  are  not  as  hard  as  you  think



                           Server


                              session
                            session
                          session
                        session




                             S3
Stateful  servers  are  not  as  hard  as  you  think



                           Server


                              session
                            session
                          session
                        session




                             S3
Stateful  servers  are  not  as  hard  as  you  think



                           Server


                              session
                            session
                          session
                        session




                             S3
Stateful  servers  are  not  as  hard  as  you  think



         Server            Server             Server


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




                             S3
With  stateful  server  the  DB  is  less  used

             Ruby  Stateless            Erlang  Stateful

  30,000
  22,500
  15,000
   7,500
      0
                  database  operations  /  sec
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
Deploying  with  a  stateful  server

 In  order  to  bring  up  a  new  version
Deploying  with  a  stateful  server

 In  order  to  bring  up  a  new  version

 Just  deploy  it
    Hot  code  replacement  is  great!
There  are  even  more  advantages

 Faster  than  Ruby  (5,000  rps  /  node)
     -­‐ CPU  bound
There  are  even  more  advantages

 Faster  than  Ruby  (5,000  rps  /  node)
     -­‐ CPU  bound

 Very  few  SPOFs
     -­‐ ...  and  those  are  easy  to  recover
There  are  even  more  advantages

 Faster  than  Ruby  (5,000  rps  /  node)
     -­‐ CPU  bound

 Very  few  SPOFs
     -­‐ ...  and  those  are  easy  to  recover

 TransacMonal  logic
     -­‐ Invariants  instead  of  explicit  error  handling
Example  “controller”  in  Erlang
Example  “controller”  in  Erlang
Example  “controller”  in  Erlang
Example  “controller”  in  Erlang
Example  “controller”  in  Erlang




 TransacMonal  behavior
Example  “controller”  in  Erlang




 TransacMonal  behavior
 Erlang  code  is  not  that  hard  to  read,  isn’t  it?
http://www.flickr.com/photos/hotreactor/
Architecture  EvoluMon  at  Wooga

  The  Start:  Ruby

  The  Next  Step:  Erlang

  Best  of  Two  Worlds

  Company  Values
Aug  2011:  4th  team  wanted  both

 Erlang  is  great
    Concurrency,  robustness
    Great  for  opera=on
Aug  2011:  4th  team  wanted  both

 Erlang  is  great
    Concurrency,  robustness
    Great  for  opera=on

 Ruby  is  great
   Concise,  expressive,  testable
   Great  for  development
Aug  2011:  4th  team  wanted  both

 Erlang  is  great
    Concurrency,  robustness
    Great  for  opera=on

 Ruby  is  great
   Concise,  expressive,  testable
   Great  for  development
Aug  2011:  4th  team  wanted  both

 Erlang  is  great
    Concurrency,  robustness
    Great  for  opera=on

 Ruby  is  great
   Concise,  expressive,  testable
   Great  for  development
EvoluMon  IV:  The  best  out  of  two  worlds




                                                Aug  2011

                                    Oct  2010

                        Jan  2010

            Oct  2009
The  basic  setup  looks  exactly  like  before



         Server            Server           Server


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




                             S3
Bringing  2  worlds  together




                  Server

        session


        session


          ...


        session
Bringing  2  worlds  together




                  Server

        session
                           sender

        session


          ...


        session
Bringing  2  worlds  together




                  Server            Worker

        session
                           sender   Worker

        session
                                    Worker

          ...
                                    Worker

        session
                                    Worker
Bringing  2  worlds  together




                  Server              Worker

        session
                           sender     Worker

        session
                                      Worker

          ...
                                      Worker
                           receiver
        session
                                      Worker
Bringing  2  worlds  together




                  Server              Worker

        session
                           sender     Worker

        session
                                      Worker

          ...
                                      Worker
                           receiver
        session
                                      Worker
Bringing  2  worlds  together




                  Server              Worker

        session
                           sender     Worker

        session
                                      Worker

          ...
                                      Worker
                           receiver
        session
                                      Worker
Game  state

 Game  state  is  split  in  mulMple  parts
   user,  map,  fruit_trees  etc.
Game  state

 Game  state  is  split  in  mulMple  parts
   user,  map,  fruit_trees  etc.

 Erlang  does  not  care  about  content
    Serialized  Ruby  objects
Game  state

 Game  state  is  split  in  mulMple  parts
   user,  map,  fruit_trees  etc.

 Erlang  does  not  care  about  content
    Serialized  Ruby  objects

 Erlang  does  know  mapping  of  state  parts  to  URLs
    Mapping  provided  by  Ruby  on  startup
Looking  back  at  the  game  acMon
Looking  back  at  the  game  acMon
Looking  back  at  the  game  acMon




 Mapping  of  state  parts  to  game  acMons
Looking  back  at  the  game  acMon




 Mapping  of  state  parts  to  game  acMons
   Worker  knows  mapping
Looking  back  at  the  game  acMon




 Mapping  of  state  parts  to  game  acMons
   Worker  knows  mapping
   Worker  pushes  mapping  to  Erlang  on  startup
Looking  back  at  the  game  acMon




 Mapping  of  state  parts  to  game  acMons
   Worker  knows  mapping
   Worker  pushes  mapping  to  Erlang  on  startup
   Erlang  can  query  mapping  if  needed
NICE!
        http://www.flickr.com/photos/aigle_dore/
Architecture  EvoluMon  at  Wooga

  The  Start:  Ruby

  The  Next  Step:  Erlang

  Best  of  Two  Worlds

  Company  Values
Each  new  game  brought  us  innovaMon




                                               Aug  2011

                                   Oct  2010

                       Jan  2010

           Oct  2009
We’ve  learned  to    value



          Small teams
              over
           big teams
We’ve  learned  to    value



        Collaboration
             over
         competition
We’ve  learned  to    value



            Generalists
               over
            specialists
We’ve  learned  to    value



     Effort reduction
           over
      cost reduction
We’ve  learned  to    value



           Innovation
              over
         risk mitigation
A  good  value  system

 We’ve  learned  to  value
 Small  teams                              over     Big  teams  
 CollaboraMon                        over           Compe==on
 Generalists                                over    Specialists
 Effort  reducMon                over                Cost  reduc=on
 InnovaMon                                  over    Risk  mi=ga=on
It works!
It works!

Be fast, be bold!
QuesMons?

Jesper  Richter-­‐Reichhelm
          @jrirei

 slideshare.net/wooga
    wooga.com/jobs
Games for the Masses (Jax)

More Related Content

Similar to Games for the Masses (Jax)

Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015
Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015
Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015AboutYouGmbH
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowAll Things Open
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the CloudTony Tam
 
MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012jackdanger
 
Concurrent Ruby Application Servers
Concurrent Ruby Application ServersConcurrent Ruby Application Servers
Concurrent Ruby Application ServersLin Jen-Shin
 
When Devs Do Ops
When Devs Do OpsWhen Devs Do Ops
When Devs Do OpsWooga
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...Amazon Web Services
 
Work Queues
Work QueuesWork Queues
Work Queuesciconf
 
Gearman and CodeIgniter
Gearman and CodeIgniterGearman and CodeIgniter
Gearman and CodeIgniterErik Giberti
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's ArchitectureTony Tam
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?Katarzyna Hoffman
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?Cloud 66
 
At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)Wooga
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled CucumbersJoseph Wilk
 
Grown-up javascript with AngularJS
Grown-up javascript with AngularJSGrown-up javascript with AngularJS
Grown-up javascript with AngularJSMykhailo Kotsur
 
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...Ernie Souhrada
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
 

Similar to Games for the Masses (Jax) (20)

Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015
Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015
Jesper Richter-Reichhelm - Continuous Evolution at Wooga - code.talks 2015
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the Cloud
 
MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012
 
Concurrent Ruby Application Servers
Concurrent Ruby Application ServersConcurrent Ruby Application Servers
Concurrent Ruby Application Servers
 
When Devs Do Ops
When Devs Do OpsWhen Devs Do Ops
When Devs Do Ops
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
 
Work Queues
Work QueuesWork Queues
Work Queues
 
Gearman and CodeIgniter
Gearman and CodeIgniterGearman and CodeIgniter
Gearman and CodeIgniter
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?
 
At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)At Scale With Style (Erlang User Conference 2012)
At Scale With Style (Erlang User Conference 2012)
 
At Scale With Style
At Scale With StyleAt Scale With Style
At Scale With Style
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled Cucumbers
 
Grown-up javascript with AngularJS
Grown-up javascript with AngularJSGrown-up javascript with AngularJS
Grown-up javascript with AngularJS
 
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...
All Your IOPS Are Belong To Us - A Pinteresting Case Study in MySQL Performan...
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 

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
 
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015Wooga
 
In it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retentionIn it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retentionWooga
 
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
 
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
 
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
 
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
 
In it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retentionIn it for the long haul - How Wooga boosts long-term retention
In it for the long haul - How Wooga boosts long-term retention
 
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
 
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
 
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

VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
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
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
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
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
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
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 

Recently uploaded (20)

VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
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
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
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
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
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
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 

Games for the Masses (Jax)