{"action":"created","issue":{"url":"https://api.github.com/repos/IdleLands/IdleLands/issues/770","labels_url":"https://api.github.com/repos/IdleLands/IdleLands/issues/770/labels{/name}","comments_url":"https://api.github.com/repos/IdleLands/IdleLands/issues/770/comments","events_url":"https://api.github.com/repos/IdleLands/IdleLands/issues/770/events","html_url":"https://github.com/IdleLands/IdleLands/issues/770","id":56842062,"number":770,"title":"Battle plan for new infrastructure","user":{"login":"Oipo","id":212134,"avatar_url":"https://avatars.githubusercontent.com/u/212134?v=3","gravatar_id":"","url":"https://api.github.com/users/Oipo","html_url":"https://github.com/Oipo","followers_url":"https://api.github.com/users/Oipo/followers","following_url":"https://api.github.com/users/Oipo/following{/other_user}","gists_url":"https://api.github.com/users/Oipo/gists{/gist_id}","starred_url":"https://api.github.com/users/Oipo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Oipo/subscriptions","organizations_url":"https://api.github.com/users/Oipo/orgs","repos_url":"https://api.github.com/users/Oipo/repos","events_url":"https://api.github.com/users/Oipo/events{/privacy}","received_events_url":"https://api.github.com/users/Oipo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/IdleLands/IdleLands/labels/needs%20discussion","name":"needs discussion","color":"bfdadc"},{"url":"https://api.github.com/repos/IdleLands/IdleLands/labels/no%20code","name":"no code","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-02-06T17:31:25Z","updated_at":"2015-02-13T02:59:29Z","closed_at":null,"body":"# Introduction\r\n\r\nIn wanting to increase the maximum amount of players, an infrastructure change is coming up. In this issue we'll be discussing the most important decisions and requirements for the new infrastructure.\r\n\r\n# Requirements\r\n* At least 200 concurrent players\r\n* Future scalable to a higher amount of players\r\n* Supporting the load coming from the extra clients currently in development\r\n* Supporting idle.land\r\n\r\n# Important questions\r\n* Is a load balancer necessary?<br />\r\n  -> Only between idle.land's meteor instances or also game nodes?\r\n* Monolithic or a lot of separate smaller instances?\r\n* Can mongodb utilize multiple CPUs efficiently or do we need something like sharding?\r\n\r\n# Current specs\r\n![test](http://puu.sh/fyivR/7af63954eb.png)\r\nBased on Runabove's pricing at the time of writing, this comes to $45/mo.\r\n\r\nCurrently that means that both mongo and IdleLands run on the same instance, sharing 4 GB and 1 CPU.\r\n\r\n# Guesstimates\r\n* The mongo server probably requires about 1 GB of HDD (and going up) and as much RAM as possible to keep indexes and stuff in memory. SSDs will have a noticable impact.\r\n* Redis is not much\r\n* The IdleLands core game requires the most CPU, SSDs are not necessary, a good CPU and enough RAM is.\r\n* The idle.land instances both probably require about 500 MB RAM and negligable HDD and CPU\r\n\r\n# Proposal 1 - online.net monolithic setup\r\nTo have one specific dedicated DB server specifically for mongo and another dedicated server for everything else. The biggest advantage of this setup is the unmetered bandwidth of the servers, meaning no extra cost for using a lot of bandwidth.\r\n\r\n[A small server](http://www.online.net/en/dedicated-server/dedibox-xc) to host mongo on, with 8 GB RAM, 120 GB SSD and a budget CPU, probably the perfect machine for mongo for €16/mo.\r\n\r\nAnd for the rest a [Slightly bigger server](http://www.online.net/en/dedicated-server/dedibox-classic) with 16 GB RAM, 2 TB HDD and a reasonable CPU, a very good contender at €30/mo to put both IdleLands, idle.land and redis on. This means about ~14 GB of RAM just for the IdleLands game.\r\n\r\nThe total comes to €46/mo or $52.64/mo (at time of writing) with a one time setup fee of €60 or $68.66.\r\n\r\n# Proposal 2 - TBD\r\n"},"comment":{"url":"https://api.github.com/repos/IdleLands/IdleLands/issues/comments/74197377","html_url":"https://github.com/IdleLands/IdleLands/issues/770#issuecomment-74197377","issue_url":"https://api.github.com/repos/IdleLands/IdleLands/issues/770","id":74197377,"user":{"login":"seiyria","id":763609,"avatar_url":"https://avatars.githubusercontent.com/u/763609?v=3","gravatar_id":"","url":"https://api.github.com/users/seiyria","html_url":"https://github.com/seiyria","followers_url":"https://api.github.com/users/seiyria/followers","following_url":"https://api.github.com/users/seiyria/following{/other_user}","gists_url":"https://api.github.com/users/seiyria/gists{/gist_id}","starred_url":"https://api.github.com/users/seiyria/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seiyria/subscriptions","organizations_url":"https://api.github.com/users/seiyria/orgs","repos_url":"https://api.github.com/users/seiyria/repos","events_url":"https://api.github.com/users/seiyria/events{/privacy}","received_events_url":"https://api.github.com/users/seiyria/received_events","type":"User","site_admin":false},"created_at":"2015-02-13T02:59:28Z","updated_at":"2015-02-13T02:59:28Z","body":"That's not so bad. The only real effort that comes in is migration. I'm going to make sure the deployment process is very simple going forward as well."}}