Server-Side Framework ngServer      Powered by Node.js
about: me   Yusuke Shinozaki   DeNA CTO   2011/3 ~ DeNA   @bad_at_math
DeNA with Node.js
Client   Smartphone developmentTool                  Server
ClientSmartphone development
ngCore  Game Engine
ngCore  Game Engine               JavaScript      native APIs      native APIs         iOS            Android
ngCore  Game Engine        JavaScript              bind sources to      Device                                      N de  ...
ngCore          Game Engine   Smartphone developmentTool
ngBuilder  Game DevelopmentTool
ngCore                           Game Engine          Smartphone developmentngBuilder  Game DevelopmentTool               ...
ngServer   Powered by Node.js N de                     ngCore                            Game Engine           Smartphone ...
Node.js in production?
Mayday, Mayday!Houston, we’ve got a problem!
unexpectedCPU SPIKES!!!      100      90      80      70      60CPU      50      40      30      20      10       0       ...
Suspects
Suspects#1 our code?#2 Node itself?#3 middleware?
Suspects#1 our code?#2 Node itself?#3 middleware?
Real.....V8 GCwith bigger heap
var http = require(http);http.createServer(function (req, res) {    res.writeHead(200, {Content-Type: text/plain});    res...
experiencesngServer  Powered by Node.js
ngServer  Powered by Node.js
Server-side Framework    ngServer   for social by Node.js        Powered game
ngServer   Architecture             Powered by Node.js                Auth Header                   JSON   Device         ...
ngServer   Functions  Powered by Node.js       ngServer command     Models and Controllers            MobageAPI   project ...
ngServer   Deployment  Powered by Node.js                             Cache                             Storage  HAProxy  ...
HostingService
Why international? TK/JP        SF/USHigh-Traffic    Node.js  MySQL       MongoDB
Challenges
Challenges
Challenges   daily sync
Challenges   17hrs
Challenges           17hrs18:00                1:003:00                 10:007:00                 14:008:00               ...
Challenges           17hrs 7:00                   14:00        hot time zone11:00                   18:00
Challenges
Challengesproblems,bugs    awesome! great!   horrible          LGTM!!! doesn’t work   my suggestion is...   (><)          ...
ChallengesSUPER!! WORTH!!       awesome! great!EXCELLLLLENT!!!           LGTM!!! another way is...   my suggestion is...  ...
Make everyone delight.                         Thank you!
Make everyone delight.                         Thank you!
I’M SOOOO GLAD TO MEEET       YOU GUYS!!! It’s super GREAT experience for me to speak              HERE in DEVSUMi.  wanna...
ngServer and-collaboratived-development-between-san-francisco-and-tokyo
ngServer and-collaboratived-development-between-san-francisco-and-tokyo
ngServer and-collaboratived-development-between-san-francisco-and-tokyo
Upcoming SlideShare
Loading in...5
×

ngServer and-collaboratived-development-between-san-francisco-and-tokyo

18,016

Published on

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

No Downloads
Views
Total Views
18,016
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
20
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

ngServer and-collaboratived-development-between-san-francisco-and-tokyo

  1. 1. Server-Side Framework ngServer Powered by Node.js
  2. 2. about: me Yusuke Shinozaki DeNA CTO 2011/3 ~ DeNA @bad_at_math
  3. 3. DeNA with Node.js
  4. 4. Client Smartphone developmentTool Server
  5. 5. ClientSmartphone development
  6. 6. ngCore Game Engine
  7. 7. ngCore Game Engine JavaScript native APIs native APIs iOS Android
  8. 8. ngCore Game Engine JavaScript bind sources to Device N de 1 JS file native APIs native APIs iOS Android * Development Phase
  9. 9. ngCore Game Engine Smartphone developmentTool
  10. 10. ngBuilder Game DevelopmentTool
  11. 11. ngCore Game Engine Smartphone developmentngBuilder Game DevelopmentTool Server
  12. 12. ngServer Powered by Node.js N de ngCore Game Engine Smartphone development ngBuilder Game DevelopmentTool Server
  13. 13. Node.js in production?
  14. 14. Mayday, Mayday!Houston, we’ve got a problem!
  15. 15. unexpectedCPU SPIKES!!! 100 90 80 70 60CPU 50 40 30 20 10 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 time
  16. 16. Suspects
  17. 17. Suspects#1 our code?#2 Node itself?#3 middleware?
  18. 18. Suspects#1 our code?#2 Node itself?#3 middleware?
  19. 19. Real.....V8 GCwith bigger heap
  20. 20. var http = require(http);http.createServer(function (req, res) { res.writeHead(200, {Content-Type: text/plain}); res.end(Hello Worldn);}).listen(1337, "127.0.0.1");var data = [];for(var i=0;i<10000000;i++) { data.push({a:1,b:2,c:3,d:4});}setInterval(function() { data.length;},1000);console.log(Server running at http://127.0.0.1:1337/); https://gist.github.com/1851152
  21. 21. experiencesngServer Powered by Node.js
  22. 22. ngServer Powered by Node.js
  23. 23. Server-side Framework ngServer for social by Node.js Powered game
  24. 24. ngServer Architecture Powered by Node.js Auth Header JSON Device Express Social APIs Mobage OAuth routing rendering JSON Controller memcache Tokenstore job Datastore queue Model mongodb MySQL
  25. 25. ngServer Functions Powered by Node.js ngServer command Models and Controllers MobageAPI project template (generator) profiler benchmarking analytics (abacus) debug hot-reload
  26. 26. ngServer Deployment Powered by Node.js Cache Storage HAProxy HAProxy ngServer ngServer Storage Storage queue Storage 1 ngServer process per 1 cpu core
  27. 27. HostingService
  28. 28. Why international? TK/JP SF/USHigh-Traffic Node.js MySQL MongoDB
  29. 29. Challenges
  30. 30. Challenges
  31. 31. Challenges daily sync
  32. 32. Challenges 17hrs
  33. 33. Challenges 17hrs18:00 1:003:00 10:007:00 14:008:00 15:00
  34. 34. Challenges 17hrs 7:00 14:00 hot time zone11:00 18:00
  35. 35. Challenges
  36. 36. Challengesproblems,bugs awesome! great! horrible LGTM!!! doesn’t work my suggestion is... (><) :D
  37. 37. ChallengesSUPER!! WORTH!! awesome! great!EXCELLLLLENT!!! LGTM!!! another way is... my suggestion is... :D :D
  38. 38. Make everyone delight. Thank you!
  39. 39. Make everyone delight. Thank you!
  40. 40. I’M SOOOO GLAD TO MEEET YOU GUYS!!! It’s super GREAT experience for me to speak HERE in DEVSUMi. wanna talk you more so plz pick me up later, let’s talk about node.js, architecture or anything you want!!! SEE YOU LATERZ, THANK YOU SO MUCH!!!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×