3

I've tried to research this question on the web using Google but anything related to hosting almost invariably brings up a ton of pseudo-review/affiliate sites.

I need to host a Windows application on a server that is not based on a standard web framework. In other words, I want to run a standard compiled EXE that handles the socket operations itself without using IIS or Apache or any other web server framework. I just want to receive HTTP/Socket requests direct to my application that will be listening on various ports and I'll take it from there. The application is not meant to be a public server, but a back-end to a public server that provides certain high-speed functionality to the public server (or servers) over the web. I guess a good corollary would be an API server but in this case the API will only used by my public servers. The EXE program running on the back-end server will need to access to MySQL. I am hoping to have MySQL running as a Windows service on the box just like I do when doing development from my Windows box in my office.

Has anybody else done this and if so, can you give me guidance on:

  • What kind of dedicated box should I get? I'm not asking the question from a performance or estimated number of users to support viewpoint. That's obviously dependent on too many other factors. Just what kind of box will give me the right mix of database/web performance but at the same time isn't overkill since I'm trying to control costs. For example, is a typical quad core with a healthy amount of memory sufficient or do you really need to get into something like a high power Xeon with tons of memory? The EXE will be doing a lot of database access work but only minimal floating point activity. That is, it's light on the calculations but heavy on the table accesses.

  • What tips can you give me for things that could really eat me alive as far as bandwidth and other ancillary costs? I can't ask the question any better because I am looking for the things unforeseen by a novice like myself in this area that an experienced person can immediately relate to a past horror or success story. Note, I have done plenty of LAMP stuff so I'm not a novice in that capacity but I've never done any Windows hosting.

  • What kind of Control Panel should I be looking for that will do the best job of making me feel like I've got a remote Windows desktop instead of a suite of awkward utilities I have to pilot to get things done?

  • Any Windows hosting caveats I should be aware of? Things an Apache/Linux person would run headlong into due to inexperience?

  • Are there ISPs that can offer you a dedicated server that will only be available on their Intranet, to another server you rent from them? I know that may be a dumb question because I'm guessing I can just control access via the requester's IP address, but I'd prefer to keep the back-end server completely out of public view.

  • Anything else you can share?

2
  • Is this something you can build on a spare machine in your house, and see what performance bottlenecks you run into there?
    – jefflunt
    May 28, 2011 at 1:01
  • That's exactly what I'm doing. But I need to be ready in advance in case it takes off. I can't be doing a lot of research and negotiating with ISP's while users are locked out due to a bottleneck. May 28, 2011 at 2:12

1 Answer 1

2

Have a look at something like Rackspace Cloud Servers. You have flexible options for setting up and configuring a server that does not necessarily have to function as a web server. With the infrastructure you describe (a user facing web server and a back end application server) the bandwidth between the web server and application server would be free since it is on their internal network.

You can scale the size of your servers as you see fit and can scale them up later if you need (RAM and CPU) without having to provision a new server and migrate. If you wanted to keep an n-tier architecture, you can set up a front end Windows server, a Windows application server for your EXE, and a Linux server for your MySQL database. You have lots of options, these are just ideas.

Rackspace gives you full remote access to your server(s), so you don't have to worry about working through a control panel if you don't want to.

Another added benefit is that you can create your account at Rackspace for free. You only pay for what you use. If you need to spin up a cloud server for two days, you only pay for two days. Really nice if you want to fire up a couple of servers for proof of concept work.

From a security standpoint on your cloud servers, you are given a couple of IP addresses: one that is externally facing and another that is internal only to their cloud network. If your EXE is only listening on the internal IP, you are protected from any unauthorized external traffic. You still cannot dismiss protecting your application server on the internal network, but it offers some additional protection.

For the record, I am not affiliated with Rackspace in any way but have had a good experience with their services. There are of course comparable services offered through Amazon and countless other cloud and dedicated providers. This should help give you some food for thought though.

4
  • @Rob. Thanks. Any comments on something like Softlayer's cloud option? It would be nice to scale up rapidly for short term usage bursts rather than return a bunch of "busy" signals. Regarding your comment about protecting my server on the internal network. Wow. Have you heard about people getting hosting accounts and then attacking others on the intranet? That's pretty treacherous stuff! May 28, 2011 at 7:59
  • I have never used or heard anything specific (good or bad) about Softlayer, but on the surface they appear to offer a similar type service to what I was referencing. Best way to find out if you like them is to try them out. Would be interesting if they have the capability to scale up without having to provision a new virtual server and migrate over. I have not heard about any specific "internal" type attacks (hosting companies tend not to publicize that), but it is always something you should be mindful of. Bad guys can be anywhere.
    – Rob
    May 28, 2011 at 18:07
  • Ok thanks. One thing I can't figure out is the costs for cloud layer computing. The hourly costs seem awfully low, frequently pennies for an hour computer. Either I don't understand the pricing or there's a catch I'm not aware of. May 29, 2011 at 1:56
  • 1
    The hourly costs are basically the cost per hour of having the server. So for a server that costs $.08/hour, if you had the server for 30 days and then deleted it, the cost would be $.08 x 24 hours x 30 days = $57.60/month. Bandwidth is often calculated separately, so if your bandwidth charge is $.08/GB and you use 50GB, that cost will be $4. Total for the month at that point would be $61.60/month. Essentially, you just pay for what you use which is nice in cases where you may need a demo server for a day or two.
    – Rob
    May 29, 2011 at 12:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.