Painful Success - Lessons Learned while Scaling Up

510 views

Published on

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/19siM4E.

Jesper Richter-Reichhelm shares lessons learned from failures while scaling Wooga games to millions of daily users.Filmed at qconlondon.com.

Jesper Richter-Reichhelm is working as Head of Engineering at Wooga, one of the most popular social games developers for web and mobile in the world. Jesper is passionate about playing and working on games as well as developing highly scalable software that is used by millions of players. He also loves sharing his knowledge and passion at conferences. Twitter: @jrirei

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
510
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Painful Success - Lessons Learned while Scaling Up

  1. 1. PAINFUL SUCCESS Jesper Richter-Reichhelm (@jrirei) / session 4853 Monday, 18 March 13
  2. 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /scalability-case-study
  3. 3. Presented at QCon London www.qconlondon.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  4. 4. Pain Monday, 18 March 13
  5. 5. Monday, 18 March 13
  6. 6. Monday, 18 March 13
  7. 7. Monday, 18 March 13
  8. 8. Flash client Backend Monday, 18 March 13
  9. 9. 7M players / month Monday, 18 March 13
  10. 10. 7M players / month 10K API calls / second Monday, 18 March 13
  11. 11. 7M players / month 10K API calls / second 200K DB operations / second Monday, 18 March 13
  12. 12. 7M players / month 10K API calls / second 200K DB operations / second 100K DB writes / second Monday, 18 March 13
  13. 13. 7M players / month 10K API calls / second 200K DB operations / second 100K DB writes / second 2 devops since 2009 Monday, 18 March 13
  14. 14. Success Monday, 18 March 13
  15. 15. Monday, 18 March 13
  16. 16. Monday, 18 March 13
  17. 17. Painful Success Monday, 18 March 13
  18. 18. Painful Success Monday, 18 March 13
  19. 19. 2009 Decisions Monday, 18 March 13
  20. 20. Monday, 18 March 13
  21. 21. Monday, 18 March 13
  22. 22. What is the right software stack? Monday, 18 March 13
  23. 23. Monday, 18 March 13
  24. 24. Monday, 18 March 13
  25. 25. Monday, 18 March 13
  26. 26. SQL ap lb SQL Browser sql sql apap Monday, 18 March 13
  27. 27. 2010 Scaling Up Monday, 18 March 13
  28. 28. Monday, 18 March 13
  29. 29. Monday, 18 March 13
  30. 30. 0%# 20%# 40%# 60%# 80%# 100%# 0# 5# 10# 15# 20# 25# 30# 35# 40# Monday, 18 March 13
  31. 31. 0%# 20%# 40%# 60%# 80%# 100%# 0# 5# 10# 15# 20# 25# 30# 35# 40# Monday, 18 March 13
  32. 32. 0%# 20%# 40%# 60%# 80%# 100%# 0# 5# 10# 15# 20# 25# 30# 35# 40# Monday, 18 March 13
  33. 33. Small things... Monday, 18 March 13
  34. 34. AMF responses Monday, 18 March 13
  35. 35. Checking connection ‘status’ Monday, 18 March 13
  36. 36. ActiveRecord caching Monday, 18 March 13
  37. 37. Always check back on reality! Lesson 1: Monday, 18 March 13
  38. 38. Big Things... Monday, 18 March 13
  39. 39. Lot’s of tuning Monday, 18 March 13
  40. 40. Lot’s of tuning and more memory Monday, 18 March 13
  41. 41. app slave master Monday, 18 March 13
  42. 42. app slave master master slave 1. create new DBs Monday, 18 March 13
  43. 43. app slave master master slave 1. create new DBs 2. setup replication Monday, 18 March 13
  44. 44. app slave master master slave 1. create new DBs 2. setup replication Monday, 18 March 13
  45. 45. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters Monday, 18 March 13
  46. 46. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication Monday, 18 March 13
  47. 47. app master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication Monday, 18 March 13
  48. 48. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters Monday, 18 March 13
  49. 49. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. remove old DBs Monday, 18 March 13
  50. 50. app master slave 1. create new DBs 2. setup replication 3. start using masters 4. remove old DBs Monday, 18 March 13
  51. 51. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters Monday, 18 March 13
  52. 52. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  53. 53. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  54. 54. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  55. 55. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  56. 56. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  57. 57. app 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  58. 58. app 1. create new DBs 2. setup replication 3. start using masters 4. drop database; Monday, 18 March 13
  59. 59. You will make mistakes! Lesson 2: Monday, 18 March 13
  60. 60. More things... Monday, 18 March 13
  61. 61. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication Monday, 18 March 13
  62. 62. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication AB AB AB AB Monday, 18 March 13
  63. 63. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters BA AB AB AB AB Monday, 18 March 13
  64. 64. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication BA AB AB AB AB Monday, 18 March 13
  65. 65. app slave master master slave 1. create new DBs 2. setup replication 3. start using masters 4. cut replication BA AB AB AB AB Monday, 18 March 13
  66. 66. app slave master master slave slave master master slave AC AC BD BD Monday, 18 March 13
  67. 67. app slave master master slave slave master master slave AC AC BD BD AC AC BD BD Monday, 18 March 13
  68. 68. app slave master master slave slave master master slave AC AC BD BD AC AC BD BD Monday, 18 March 13
  69. 69. app slave master master slave slave master master slave AC AC BD BD AC AC BD BD Monday, 18 March 13
  70. 70. The right thing... Monday, 18 March 13
  71. 71. Monday, 18 March 13
  72. 72. Monday, 18 March 13
  73. 73. Monday, 18 March 13
  74. 74. Software is easy, data is hard! Lesson 3: Monday, 18 March 13
  75. 75. 24 GB 44 GB in 8 days Monday, 18 March 13
  76. 76. Not enough memory Monday, 18 March 13
  77. 77. Not enough memory => no backups Monday, 18 March 13
  78. 78. Not enough memory => no backups => no new slaves Monday, 18 March 13
  79. 79. Not enough memory => no backups => no new slaves => big problem Monday, 18 March 13
  80. 80. 24 GB 38 GB in 3 days Monday, 18 March 13
  81. 81. 24 GB 38 GB in 3 days Fixed in v2.2 Monday, 18 March 13
  82. 82. 2011 Operation Hell Monday, 18 March 13
  83. 83. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  84. 84. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  85. 85. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap SQL EBS EBS EBS EBS lb lblblb Monday, 18 March 13
  86. 86. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  87. 87. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  88. 88. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  89. 89. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  90. 90. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  91. 91. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  92. 92. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  93. 93. EBSSQLBrowser lb lb lb lb ap ap ap ap ap ap ap ap Monday, 18 March 13
  94. 94. 0" 500,000" 1,000,000" 1,500,000" 2,000,000" Apr*10" Jul*10" Oct*10" Jan*11" Apr*11" Jul*11" Oct*11" Monday, 18 March 13
  95. 95. 0" 500,000" 1,000,000" 1,500,000" 2,000,000" Apr*10" Jul*10" Oct*10" Jan*11" Apr*11" Jul*11" Oct*11" AWS outage in Ireland Monday, 18 March 13
  96. 96. http://en.wikipedia.org/wiki/File:St%C3%B6wer_Titanic.jpg Monday, 18 March 13
  97. 97. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  98. 98. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  99. 99. Monday, 18 March 13
  100. 100. Installed in 3 years: Monday, 18 March 13
  101. 101. Installed in 3 years: 98 MySQL machines Monday, 18 March 13
  102. 102. Installed in 3 years: 98 MySQL machines 195 Redis machines Monday, 18 March 13
  103. 103. Monday, 18 March 13
  104. 104. Monday, 18 March 13
  105. 105. Monday, 18 March 13
  106. 106. Monday, 18 March 13
  107. 107. 2012/2013 Refactoring Monday, 18 March 13
  108. 108. Lessons learned Monday, 18 March 13
  109. 109. Server Database Monday, 18 March 13
  110. 110. Server Database Monday, 18 March 13
  111. 111. Server Database Monday, 18 March 13
  112. 112. Server Database Monday, 18 March 13
  113. 113. Server Database Monday, 18 March 13
  114. 114. Server Database Monday, 18 March 13
  115. 115. Server Database Monday, 18 March 13
  116. 116. Server Database Monday, 18 March 13
  117. 117. Server Database Monday, 18 March 13
  118. 118. Server Database One Game Session Monday, 18 March 13
  119. 119. Server Database One Game Session Monday, 18 March 13
  120. 120. Rd rd SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  121. 121. Rd rd ap apap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap apap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  122. 122. Rd rd ap apap lb lblblb Monday, 18 March 13
  123. 123. Monday, 18 March 13
  124. 124. 1. Separate user and world DBs Monday, 18 March 13
  125. 125. 1. Separate user and world DBs 2. Migrate to JRuby Monday, 18 March 13
  126. 126. 1. Separate user and world DBs 2. Migrate to JRuby 3. Introduce life cycle Monday, 18 March 13
  127. 127. 1. Separate user and world DBs 2. Migrate to JRuby 3. Introduce life cycle 4. Remove (user) DBs Monday, 18 March 13
  128. 128. 1. Separate user and world DBs 2. Migrate to JRuby 3. Introduce life cycle 4. Remove (user) DBs 5. Enjoy! Monday, 18 March 13
  129. 129. Separate user DBs Monday, 18 March 13
  130. 130. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd lb lblblb Monday, 18 March 13
  131. 131. SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL SQL sql sql SQL SQL sql sql SQL sql lb lblblb Monday, 18 March 13
  132. 132. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL lb lblblb Monday, 18 March 13
  133. 133. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  134. 134. JRuby Monday, 18 March 13
  135. 135. http://www.flickr.com/photos/biblicone/3425903181/sizes/l/in/photostream/ Monday, 18 March 13
  136. 136. JRuby v2 Monday, 18 March 13
  137. 137. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Throughput Monday, 18 March 13
  138. 138. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Throughput Monday, 18 March 13
  139. 139. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Throughput Monday, 18 March 13
  140. 140. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput Monday, 18 March 13
  141. 141. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark Monday, 18 March 13
  142. 142. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark Monday, 18 March 13
  143. 143. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark multi threaded Monday, 18 March 13
  144. 144. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark multi threaded tuning Monday, 18 March 13
  145. 145. 0 50 100 150 200 Rails 2.3.11 MRI 1.8.7 Rails 3.2.8 MRI 1.8.7 Rails 3.2.8 MRI 1.9.3 Rails 3.2.8 JRuby 1.7.2 Throughput no benchmark multi threaded tuning cpu saturation Monday, 18 March 13
  146. 146. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap ap apap ap ap lb lblblb Monday, 18 March 13
  147. 147. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd SQL SQL SQL SQL SQL ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap apap ap ap lb lblblb ap ap ap ap ap ap ap ap ap ap ap ap ap ap Monday, 18 March 13
  148. 148. Monday, 18 March 13
  149. 149. Monday, 18 March 13
  150. 150. Monday, 18 March 13
  151. 151. NEW OLD Monday, 18 March 13
  152. 152. NEW OLD Monday, 18 March 13
  153. 153. NEW OLD Monday, 18 March 13
  154. 154. NEW OLD Monday, 18 March 13
  155. 155. Life cycle Monday, 18 March 13
  156. 156. app Monday, 18 March 13
  157. 157. app Monday, 18 March 13
  158. 158. app servlet Monday, 18 March 13
  159. 159. app servlet archiver Monday, 18 March 13
  160. 160. User Registry app servlet archiver Monday, 18 March 13
  161. 161. User Registry S3 app servlet archiver Monday, 18 March 13
  162. 162. User Registry SQL Rd S3 app servlet archiver Monday, 18 March 13
  163. 163. User Registry SQL Rd S3 app servlet archiver Monday, 18 March 13
  164. 164. World Data User Registry SQL Rd S3 app servlet archiver Monday, 18 March 13
  165. 165. World Data User Registry SQL Rd S3 Load Balancer app servlet archiver Monday, 18 March 13
  166. 166. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd rd Rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  167. 167. SQL SQL sql sql SQL SQL sql sql SQL SQL sql Rd Rd rd rd Rd Rd rd rd Rd Rd rd rd Rd rd Rd rd SQL SQL SQL SQL ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd Rd rd lb lblblb Monday, 18 March 13
  168. 168. Removing DBs Monday, 18 March 13
  169. 169. SQL SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQLSQL SQL sql sql SQL SQL sql sql Rd Rd rd rd Rd Rd rd rd Rd rd SQL SQL SQL SQL Rd rd Rd rd Rd rd lb lblblb Monday, 18 March 13
  170. 170. SQL SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  171. 171. SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  172. 172. Enjoy Monday, 18 March 13
  173. 173. SQL sql Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  174. 174. Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd SQL sql SQL Rd rd Rd rd lb lblblb Monday, 18 March 13
  175. 175. Rd rd Rd rd Rd rd ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap ap apap ap ap ap ap ap ap ap ap apap ap ap Rd rd Rd rd Rd rd lb lblblb Monday, 18 March 13
  176. 176. http://www.flickr.com/photos/aigle_dore/ Monday, 18 March 13
  177. 177. http://www.flickr.com/photos/aigle_dore/ Monday, 18 March 13
  178. 178. Looking Back Monday, 18 March 13
  179. 179. What is the right software stack? Monday, 18 March 13
  180. 180. Monday, 18 March 13
  181. 181. Monday, 18 March 13
  182. 182. What is the right software stack? Monday, 18 March 13
  183. 183. What is the right software stack? Monday, 18 March 13
  184. 184. What kind of application are we building? Monday, 18 March 13
  185. 185. User Monday, 18 March 13
  186. 186. User Avatar Monday, 18 March 13
  187. 187. User Avatar Cus- tomer Monday, 18 March 13
  188. 188. User GardenAvatar Cus- tomer Monday, 18 March 13
  189. 189. User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  190. 190. User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  191. 191. User GardenAvatar Cus- tomer Tiles Deco- rations User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  192. 192. User GardenAvatar Cus- tomer Tiles Deco- rations User GardenAvatar Cus- tomer Tiles Deco- rations Monday, 18 March 13
  193. 193. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  194. 194. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  195. 195. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  196. 196. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  197. 197. http://en.wikipedia.org/wiki/File:Columbus_Breaking_the_Egg%27_(Christopher_Columbus)_by_William_Hogarth.jpg Monday, 18 March 13
  198. 198. What kind of application are we building? Monday, 18 March 13
  199. 199. Monday, 18 March 13
  200. 200. Monday, 18 March 13
  201. 201. Monday, 18 March 13
  202. 202. Monday, 18 March 13
  203. 203. Monday, 18 March 13
  204. 204. Plain File System Monday, 18 March 13
  205. 205. Monday, 18 March 13
  206. 206. Handle state the right way! Monday, 18 March 13
  207. 207. Software is easy, data is hard! Lesson 3: Monday, 18 March 13
  208. 208. You will make mistakes! Lesson 2: Monday, 18 March 13
  209. 209. Always check back on reality! Lesson 1: Monday, 18 March 13
  210. 210. Always check back on your assumptions! Lesson 1: Monday, 18 March 13
  211. 211. Thank you Monday, 18 March 13
  212. 212. Jesper Richter-Reichhelm @jrirei woo.ga/backend wooga.com/jobs Monday, 18 March 13
  213. 213. Jesper Richter- Reichhelm @jrirei wooga.com/jobs woo.ga/backend Monday, 18 March 13
  214. 214. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/scalability -case-study

×