This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I am hoping others here with some experience can help me along.
*** This may be in the wrong forum as I'm not positive which heading it belongs under. Please forgive if that's the case. ***
I have just completed my first game. I now need to move the website and the game code to a reliable, fast (enough) server. The website part of this should be simple to move. I would very much appreciate it if anyone who has data center experience and/or a similar data center architecture to what I need would please give me feedback about what vendors might be best (Amazon, Google, or anyone else). Here's a summary of the high level app info:
1. While not part of the server config, the front end UI is Flex compiling to Android and iOS devices.
2. Game communication is through BlazeDS. Other than game data objects, I also send photos back and forth as well as to third parties as part of the game play.
3. Maven builds a WAR file that contains Servlets and BlazeDS objects deployed on Tomcat. Besides many Maven dependencies, I have also put some often shared packages (such as JTDS) directly in the Tomcat shared/lib folder so that I don't have to have WAR files any larger than needed nor repeat dependencies for other WAR's I run that need them.
4. BlazeDS objects interface with Java game server (running on same machine as Tomcat currently) and communicates via RMI. I have batch files on the server which start RMI and the RMI game server.
5. All RDBMS data is stored in PostgreSQL which I deployed to the server.
6. Photos that are received by Tomcat are passed from BlazeDS to RMI where they are inspected and then saved on the server's hard drive. So persistent storage is required for me but each photo is very small. I'm passing up the raw byte from the device camera and storing that plus making other, even smaller, jpg's out of the byte which are also stored.
My current situation is very convenient as I just log in via remote desktop connection and can do anything I like to any part of the server with a real Window's desktop. I can even copy and past war files from my desktop computer to the server via RDC. However, this dedicated server is too slow and not reliable nor scalable and the only similar dedicated solutions I've found have been cost prohibitive. Can others please give me thoughts, from experience, on which vendor is likely to best fit our needs and will also be inexpensive?
The game is mostly for demonstration purposes. Of course we hope it takes off and becomes popular but for now we don't care if we've got the most amazing data center or not. We just need to be sure that it will reliably meet most people's speed expectations and always be up.
Thanks for any advice you can offer and for reading my rambling missive.
Welcome to the world of data center administration and capacity planning. Having been involved with a group focused on that topic, I can tell you that it is not a small topic (way too much to cover here). However, the best advice is to prototype what you want to do. Amazon servers are fairly cheap by the hour (but the cost can add up quickly - 10 cents and hour amount to about $80 a month). So prototyping your setup there and calculating your cost should be fairly easy, and not too expensive.
If you want to use Google App Engine, you might have to change your code. The App Engine is only supports portions of the JSP and Servlet specs. Fortunately, the App Engine comes with an emulation environment so you could try your code on your PC first.