{"id":440,"date":"2016-03-17T16:52:50","date_gmt":"2016-03-17T16:52:50","guid":{"rendered":"http:\/\/smartfoxserver.com\/blog\/?p=440"},"modified":"2016-03-17T16:55:36","modified_gmt":"2016-03-17T16:55:36","slug":"smartfoxserver-in-the-cloud-with-jelastic","status":"publish","type":"post","link":"https:\/\/smartfoxserver.com\/blog\/smartfoxserver-in-the-cloud-with-jelastic\/","title":{"rendered":"SmartFoxServer in the cloud with Jelastic"},"content":{"rendered":"<p>Recently we have announced a new partnership with cloud provider <a href=\"https:\/\/jelastic.com\/\" target=\"_blank\">Jelastic<\/a> to offer\u00a0efficient and scalable cloud hosting for SmartFoxServer at very affordable prices.<\/p>\n<p>In this article we&#8217;re going to explore the advantages of combining the two services, especially the ease of fine tuning the expenditure,\u00a0which can be paramount\u00a0for startups and independent game developers.<\/p>\n<p><!--more--><\/p>\n<h2>\u00bb Behind the scenes, a little bit of history&#8230;<\/h2>\n<p>Hosting provider Jelastic is a veteran in the field of cloud services, having been founded in 2011, and we at SmartFoxServer have been using their technology since 2013. In particular we enjoyed the ability to quickly deploy Java applications and the fine-grained resource management, which makes it an excellent\u00a0tool for our needs in\u00a0testing and performance benchmarking.<\/p>\n<p>Since 2014 we&#8217;ve been speaking with Jelastic about creating an easy way to deploy SmartFoxServer 2X in their environment and after some time and lots of other activities going on on both sides, we have\u00a0finally announced a <a href=\"http:\/\/smartfoxserver.com\/cloud\/jelastic\" target=\"_blank\">1-click deploy\u00a0system<\/a> and a convenient free trial for 14 days.<\/p>\n<h2>\u00bb\u00a0Why Jelastic and SmartFoxServer 2X<\/h2>\n<p>Both Jelastic and SmartFoxServer 2X provide a straightforward system to\u00a0control your current expenditure and avoid to hurt the wallet:<\/p>\n<ul>\n<li>Jelastic allows to allocate\/deallocate resources via their cloudlets system, making it\u00a0very\u00a0affordable. \u00a0While most cloud providers offer\u00a0preset configurations that jump from small scale to large scale settings, Jelastic allows a finer grained tuning of the resources which\u00a0can be changed\u00a0on the fly, while the server is running.<\/li>\n<li>SmartFoxServer 2X provides Elastic Licenses, based on a prepaid and rechargeable credit and\u00a0charged on a daily basis. The charged amount varies with the license&#8217;s maximum concurrent users (CCU) and can be reconfigured on the fly to accomodate any change of traffic.<\/li>\n<\/ul>\n<p>These two systems paired together are particularly effective\u00a0for small game studios and indie developers who need to launch a multiplayer game while keeping\u00a0expenses under control and being able to scale up or down at any time.<\/p>\n<p>Here are a few examples of monthly fees for different types of multiplayer games.<\/p>\n<p><strong>\u00bb Turn-based monthly plan:<\/strong><\/p>\n<table style=\"font-size: 110%;\" width=\"100%\" cellspacing=\"1\" cellpadding=\"4\">\n<tbody>\n<tr style=\"background-color: #ffffaa;\">\n<td valign=\"top\"><strong>DAU<\/strong><\/td>\n<td valign=\"top\"><strong>CCU Range<\/strong><\/td>\n<td valign=\"top\"><strong>Cloudlets<\/strong><\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>Jelastic cost<\/strong><\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>SFS2X license<\/strong><\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>Monthly Tot<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\"><strong>&lt;= 7500<\/strong><\/td>\n<td valign=\"top\">&lt;= 100<\/td>\n<td valign=\"top\">min: 1, max: 2<\/td>\n<td valign=\"top\">\n<p align=\"right\">19,30 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">5,00 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>26,00 \u20ac<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\"><strong>&lt;= 37500<\/strong><\/td>\n<td valign=\"top\">&lt;= 500<\/td>\n<td valign=\"top\">min:1, max: 3<\/td>\n<td valign=\"top\">\n<p align=\"right\">26,20 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">25,00 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>53,50 \u20ac<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\"><strong>&lt;= 75000<\/strong><\/td>\n<td valign=\"top\">&lt;= 1000<\/td>\n<td valign=\"top\">min:1, max: 5<\/td>\n<td valign=\"top\">\n<p align=\"right\">39,50 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">50,00 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>93,00 \u20ac<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>\u00a0\u00bb\u00a0Realtime\u00a0monthly plan:<\/strong><\/p>\n<table style=\"font-size: 110%;\" width=\"100%\" cellspacing=\"1\" cellpadding=\"4\">\n<tbody>\n<tr style=\"background-color: #ffffaa;\">\n<td valign=\"top\"><strong>DAU<\/strong><\/td>\n<td valign=\"top\"><strong>CCU Range<\/strong><\/td>\n<td valign=\"top\"><strong>Cloudlets<\/strong><\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>Jelastic cost<\/strong><\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>SFS2X license<\/strong><\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>Monthly Tot<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\"><strong>&lt;= 7500<\/strong><\/td>\n<td valign=\"top\">&lt;= 100<\/td>\n<td valign=\"top\">min: 1, max: 5<\/td>\n<td valign=\"top\">\n<p align=\"right\">39,50 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">5,00 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>48,00 \u20ac<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\"><strong>&lt;= 37500<\/strong><\/td>\n<td valign=\"top\">&lt;= 500<\/td>\n<td valign=\"top\">min: 1, max: 10<\/td>\n<td valign=\"top\">\n<p align=\"right\">73,00 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">25,00 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>104,50 \u20ac<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\"><strong>&lt;= 75000<\/strong><\/td>\n<td valign=\"top\">&lt;= 1000<\/td>\n<td valign=\"top\">min: 1, max: 16<\/td>\n<td valign=\"top\">\n<p align=\"right\">113,40 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">50,00 \u20ac<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\"><strong>173,50 \u20ac<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li>DAU = daily average users<\/li>\n<li>CCU = concurrent users<\/li>\n<li>Cloudlets = the unit of hardware resources in Jelastic<\/li>\n<\/ul>\n<p><strong>\u00a0\u00bb How we calculated it<\/strong><\/p>\n<p>The prices shown above are obtained\u00a0by averaging the minimum and maximum cost for the\u00a0cloudlets used. For instance in the last line of the turn-based table we took the monthly cost\u00a0for running 1 cloudlet and 5 cloudlets and calculated its average ($14 + $72 \/ 2 = $43).<\/p>\n<p>The prices are updated to March 1st 2016, based on the Jelastic provider ServInt in the USA. Figures may vary a little depending on the country of the Jelastic provider.<\/p>\n<p>Finally we have calculated\u00a0each\u00a0required\u00a0cloudlets setup, for each DAU\/CCU size, by running a live stress test in the Jelastic environment.<\/p>\n<p>For turn-based games we used the following settings:<\/p>\n<ul>\n<li>Average players\u00a0per Room: ~ 5<\/li>\n<li>Message rate: 1 req. every 3.5 seconds<\/li>\n<li>Average request size: 80 bytes (e.g. small text message or game move)<\/li>\n<\/ul>\n<p>For real time games:<\/p>\n<ul>\n<li>Average players per Room: ~5<\/li>\n<li>Message rate: 1 req. every 80ms<\/li>\n<li>Average request size: 20 bytes (e.g. positional update)<\/li>\n<\/ul>\n<h2>\u00bb The best of both worlds<\/h2>\n<p>Multiplayer services in the cloud are typically offered with the <strong>SaaS<\/strong> (software as a service) formula. This means that the software managing your multiplayer side of the game is run and managed\u00a0by the cloud provider. This has the advantage of offloading the developer from\u00a0the details of deploying and configuring the multiplayer server but it also comes at a high cost:<\/p>\n<ul>\n<li>Little to no ability to customize the software for one&#8217;s own needs<\/li>\n<li>Lack of server side coding<\/li>\n<li>Few or no security tools (flood filters, IP blacklisting, request filters, custom parameter validation, etc)<\/li>\n<li>Inability to directly plug one&#8217;s data sources (e.g. database and database clusters), unless via remote calls to external HTTP services, which hinders scalability<\/li>\n<li>Lack of performance tweaking and customization of scalability strategies<\/li>\n<li>Lack of integrated and customizable persistence tools (e.g. ORMs, local storage, grid storage&#8230;)<\/li>\n<li>Lack of strong privacy: your application usage data, player&#8217;s data and relative statistics are all managed by a third party<\/li>\n<\/ul>\n<p><a href=\"http:\/\/smartfoxserver.com\/blog\/wp-content\/uploads\/2016\/03\/cloud-saas-paas.gif\"><img loading=\"lazy\" class=\"noShadow aligncenter wp-image-457 size-full\" src=\"http:\/\/smartfoxserver.com\/blog\/wp-content\/uploads\/2016\/03\/cloud-saas-paas.gif\" alt=\"cloud-saas-paas\" width=\"307\" height=\"212\" \/><\/a><\/p>\n<p>Jelastic instead is a <strong>PaaS<\/strong> (platform as a service) provider offering an ideal environment\u00a0in which developers can run their own services. With the tight integration of Jelastic and SmartFoxServer 2X you get the best of both worlds: a reliable Linux-based cloud running\u00a0one of the most feature-rich\u00a0multiplayer server\u00a0on the market, at the same price of a basic, vanilla SaaS option.<\/p>\n<p>SmartFoxServer 2X in the cloud is ready to work out of the box, no special configuration needed, but when your application requires it you can:<\/p>\n<ul>\n<li>Fine tune the scalability based on your game&#8217;s requirements<\/li>\n<li>Run any server side code implementing your\u00a0game&#8217;s logic in an authoritative way<\/li>\n<li>Manage security via permission profiles, per-request flood filters, bad words filters, TLS 1.2 encryption, request size limits, parameters validation, persistent banning and kicking both manually and automated<\/li>\n<li>Integrate your favorite database engine, ORM, and pretty much any external data source with top-notch performance<\/li>\n<li>Integrate http\u00a0services and\u00a0Extension code via in-process communication<\/li>\n<li>Use the advanced API for matchmaking, invitation and challenge management, buddy list management with presence and persistence services, area-of-interest based event dispatching for MMO type applications&#8230; and tons more<\/li>\n<li>Use out-of-the-box persistence services such as Buddy List and Room persistence or plug in your own<\/li>\n<li>Keep your server&#8217;s usage data and server&#8217;s statistics to yourself, by managing directly your datastore<\/li>\n<\/ul>\n<h2>\u00bb Wrapping it up<\/h2>\n<p>If you&#8217;re interested in checking SmartFoxServer in the cloud we highly recommend the offer from Jelastic. The free 14 days trial comes with no strings attached: you don&#8217;t need to provide any credit card details or fill boring pages of forms etc&#8230; You can get started in literally less than a minute.<\/p>\n<p>To learn more details we recommend to:<\/p>\n<ul>\n<li><a href=\"http:\/\/smartfoxserver.com\/cloud\/jelastic\" target=\"_blank\">head to our Jelastic cloud page<\/a> on our website<\/li>\n<li>check this <a title=\"Faster, Simpler, Smarter: Meet the SmartFoxServer Integration at Jelastic PaaS\" href=\"http:\/\/blog.jelastic.com\/2016\/02\/23\/faster-simpler-smarter-meet-the-smartfoxserver-integration-at-jelastic-paas\/\" target=\"_blank\">recent blog post from the Jelastic team<\/a>, which details all of the steps to setup your cloud environment and run\u00a0SmartFoxServer.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Recently we have announced a new partnership with cloud provider Jelastic to offer\u00a0efficient and scalable cloud hosting for SmartFoxServer at very affordable prices. In this article we&#8217;re going to explore the advantages of combining the two services, especially the ease of fine tuning the expenditure,\u00a0which can be paramount\u00a0for startups and independent game developers.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[23],"tags":[56,58,57,60,61,59,7],"_links":{"self":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts\/440"}],"collection":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/comments?post=440"}],"version-history":[{"count":22,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts\/440\/revisions"}],"predecessor-version":[{"id":467,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts\/440\/revisions\/467"}],"wp:attachment":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/media?parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/categories?post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/tags?post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}