We host about 30 websites using typical shared hosting plans using ASP.NET and SQL 2000/2005/2008. I am now wondering about hosting all of these websites using our own virtual private server.
This is clearly cheaper but comes with a lot of questions I need answers to:
Is the risk of having to keep this VPS server up and running worth it? Until now, the host provider has managed the server and we have not had to worry about crashes, downtime, software patches etc. We are not server administrators, we are programmers, so this is not really our expertise. On the other hand, it may not be hard to learn.
When we make a website live, we log in to a domain management control panel and change the primary and secondary name servers to point to our shared web host:
Eg ns1.sharedwebhost.com and ns2.sharedwebhost.com
These name servers are going to have to change when we have a VPS. I don’t understand anything about how to set this up. Is there some useful info anyone could direct me to? Or is there software we need to install to make the primary and secondary name servers work on our VPS?
The control panel we have for shared hosting comes with DNS management like this:
(source: yart.com.au)
What software would I need to install to create this for each site we host at a VPS?
- The control panel we have for shared hosting also comes with a POP email interface that allows email addresses to be added easily by our customers.
(source: yart.com.au)
Is this something that can be easily set up at a VPS so clients can manage their own email addresses?
Is there software we need to install to make this work?
This is just a very generic answer, but honestly, by the time you've spent hours setting up and configuring a VPS, then installing all your software, configuring the 30 websites, and then the time you'll have to spend learning how to make the server secure, keeping it patched, scheduling windows updates, hanging around at 2am to make sure that the patch goes in and the server reboots safely and succesfully... managing DNS entries, mail exchangers, bandwidth management, disaster recovery, backups, server tuning, licensing... if it's not your core comptenacy, it's probably cheaper to just keep with the shared hosting.
Unless it's going to save you in the order of $75,000/year. Then you can hire me to come do it for you :)
Funny you should ask this because I just got finished setting this up myself this week.
The reason I did this is because my shared host got sold and pretty much crapped out. Virtually no technical support, just "we're having problems, no ETA" has been going on for weeks.
I am a software developer and not a network engineer, but honestly it was not difficult at all and I got good support. I'm not sure if I'm allowed to mention services here, but after much searching I used ServerIntellect (www.serverintellect.com).
The name servers for me changed over in about 10 minutes, so nothing to that.
They include software for setting up all your domains, etc., that looks a lot like shared hosting. It was a breeze.
Their VPS is limited to Win/2003+IIS6 but uses SQL/Server 2005 or 2008. It's not much more money to go to a dedicated server where you can get Win/2008+IIS7 and VPN into your server instead of RDP if you like.
VPS and dedicated include service to do all patches. You can choose the schedule. They will handle all the backups (small extra monthly charge), they even have an optional service where they test your site every five minutes to make sure it responds. Does your shared host do that?
If you are using SQL/Server, VPS and dedicated have huge advantages, but for me I wanted control over the bandwidth which you do not get in Shared. With Shared your response time will be inconsistent depending on what else is going on on the server.
With VPS and dedicated, the bandwidth, RAM, CPU are guaranteed, so you can be sure nobody else will affect your response time.
I think it is easier to handle with one login and a control panel to handle all your sites in one place. Perhaps, you have your shared host already setup that way.
I found the DNS part of it a breeze, IIS and basic Windows server admin also to be very straightforward.
So, I think it depends on more than just cost. If you have shared hosting at $8/mo per site and that is working for you with consistent response time; great, why move?
If you want more control over features like SQL/Server, etc., ASP features not ordinarily offered or just more consistent response time, and a lot of other things through one simple interface and/or RDP -- and unlimited # of websites for one monthly price then VPS or dedicated is a good choice and it's still managed for you.
Although I'm getting a 99.995% SLA, for what you could save, you could also have a VPS elsewhere for automatic failover if the sites are static or you know how to do SQL/Server replication. Though serverintellect says they will replace whatever is needed usually within 15 minutes, but latest 4 hours -- with RAID, seems unlikely that would occur. Could happen with your shared host as well, I guess.
I agree with Farseeker: stick to shared hosting and let someone else handle it.
However, if you must: I'm assuming you're planning on running Windows 2003 or 2008 on your VPS using IIS? If so, you can just create a new Web Site within IIS, and set the proper host header accordingly and you're good to go.
I'm assuming you're going to have a static IP with your VPS, so all you're going to need to do is create A host records in DNS* to point somedomain.com to your static IP: IIS' websites and host headers take care of determining what site to dish up based on the domain.tld that's requested.
Apache is the same thing with it's Virtual Hosts.
This, however, is not ideal: you'll want to isolate your clients (and client's code/files/data) from each other, which is likely already being accomplished through sheer necessity at your shared hosting facility (YMMV of course).
In the Linux/UNIX world, this isolation between users, processes, and system has been done for a long time using chroot/jails, not sure (besides full virtualization) how/if this is possible on a Windows Server.
*you can get an account at no-ip.com or zoneedit.com to allow you to manage your DNS records for your clients if their registrars don't provide the means to do so, but most do, like GoDaddy for instance.
Over the centuries, one of the main ways in which people have become wealthy and productive is division of labor. By specializing in a particular role, you can spend more time finding labor saving techniques, and learning more details a generalist must ignore. I doubt you'll meet many programmers who have written kernel modules and AJAX websites; I see no reason to believe what experience you have as a web developer will transfer to effective server configuration.
The question that emerges is, should your firm hire an expert, or outsource?
Outsourcing
Current practice is to outsource, by way of hosting providers. They've solved a variety of problems for you out of the box. They have isolation systems up and running, and various management tools made available like cPanel that they've acquired for customers on better terms (a form of collective bargaining!). Hosting providers target the 90 percent of the market they can accommodate with a single configuration.
Hiring
It's an employer's market, so you may be able to find quality admins on the cheap. Do some research on the kinds of things your competitors hire admins to do, and how much they pay to get an idea of what you can get at what price. The advantages of hiring mainly come from increased flexibility. Whereas hosting companies will offer a limited set of packages, the sky's the limit on your own box.
I can't tell you which option is more cost effective without knowing your existing costs, but you have to ask yourself, is your time best used as a sysadmin? And if so, are you really more productive than trained professionals?