wednesday march 7 2012 our games all look the same
play

Wednesday, March 7, 2012 Our games all look the same Flash client - PowerPoint PPT Presentation

G AMES FOR THE M ASSES How DevOps Affects Architecture Jesper Richter-Reichhelm, @jrirei Wednesday, March 7, 2012 Wednesday, March 7, 2012 Our games all look the same Flash client Backend Wednesday, March 7,


  1. 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 Wednesday, March 7, 2012

  2. 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 Wednesday, March 7, 2012

  3. EvoluEon ¡III: ¡Use ¡Erlang ¡for ¡a ¡stateful ¡server Oct ¡2010 Jan ¡2010 Oct ¡2009 Wednesday, March 7, 2012

  4. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think session Wednesday, March 7, 2012

  5. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think session session session session Wednesday, March 7, 2012

  6. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think Server session session session session Wednesday, March 7, 2012

  7. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think Server session session session session S3 Wednesday, March 7, 2012

  8. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think Server session session session session S3 Wednesday, March 7, 2012

  9. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think Server session session session session S3 Wednesday, March 7, 2012

  10. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think Server session session session session S3 Wednesday, March 7, 2012

  11. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think Server session session session session S3 Wednesday, March 7, 2012

  12. Stateful ¡servers ¡are ¡not ¡as ¡hard ¡as ¡you ¡think Server session session session session S3 Wednesday, March 7, 2012

  13. 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 Wednesday, March 7, 2012

  14. With ¡stateful ¡server ¡the ¡DB ¡is ¡less ¡used Ruby ¡Stateless Erlang ¡Stateful 30,000 22,500 15,000 7,500 0 database ¡operations ¡/ ¡sec Wednesday, March 7, 2012

  15. 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 Wednesday, March 7, 2012

  16. Deploying ¡with ¡a ¡stateful ¡server In ¡order ¡to ¡bring ¡up ¡a ¡new ¡version Wednesday, March 7, 2012

  17. Deploying ¡with ¡a ¡stateful ¡server In ¡order ¡to ¡bring ¡up ¡a ¡new ¡version Just ¡deploy ¡it Hot ¡code ¡replacement ¡is ¡great! Wednesday, March 7, 2012

  18. There ¡are ¡even ¡more ¡advantages Faster ¡than ¡Ruby ¡(5,000 ¡rps ¡/ ¡node) -­‑ CPU ¡bound Wednesday, March 7, 2012

  19. There ¡are ¡even ¡more ¡advantages Faster ¡than ¡Ruby ¡(5,000 ¡rps ¡/ ¡node) -­‑ CPU ¡bound Very ¡few ¡SPOFs -­‑ ... ¡and ¡those ¡are ¡easy ¡to ¡recover Wednesday, March 7, 2012

  20. There ¡are ¡even ¡more ¡advantages Faster ¡than ¡Ruby ¡(5,000 ¡rps ¡/ ¡node) -­‑ CPU ¡bound Very ¡few ¡SPOFs -­‑ ... ¡and ¡those ¡are ¡easy ¡to ¡recover TransacEonal ¡logic -­‑ Invariants ¡instead ¡of ¡explicit ¡error ¡handling Wednesday, March 7, 2012

  21. Example ¡“controller” ¡in ¡Erlang Wednesday, March 7, 2012

  22. Example ¡“controller” ¡in ¡Erlang Wednesday, March 7, 2012

  23. Example ¡“controller” ¡in ¡Erlang Wednesday, March 7, 2012

  24. Example ¡“controller” ¡in ¡Erlang Wednesday, March 7, 2012

  25. Example ¡“controller” ¡in ¡Erlang Central ¡handling ¡of ¡effects Wednesday, March 7, 2012

  26. Example ¡“controller” ¡in ¡Erlang Central ¡handling ¡of ¡effects TransacEonal ¡behavior Wednesday, March 7, 2012

  27. Example ¡model ¡in ¡Erlang Wednesday, March 7, 2012

  28. Example ¡model ¡in ¡Erlang Wednesday, March 7, 2012

  29. Example ¡model ¡in ¡Erlang Wednesday, March 7, 2012

  30. Example ¡model ¡in ¡Erlang Wednesday, March 7, 2012

  31. Example ¡model ¡in ¡Erlang Wednesday, March 7, 2012

  32. Example ¡model ¡in ¡Erlang Erlang ¡code ¡is ¡not ¡that ¡hard ¡to ¡read, ¡isn’t ¡it? Wednesday, March 7, 2012

  33. http://www.flickr.com/photos/hotreactor/ Wednesday, March 7, 2012

  34. Architecture ¡EvoluEon ¡at ¡Wooga The ¡Start: ¡Ruby The ¡Next ¡Step: ¡Erlang Best ¡of ¡Two ¡Worlds Company ¡Values Wednesday, March 7, 2012

Recommend


More recommend