3.13.2009

Moving beyond Shared Hosting

You worked hard building your website, and it has payed off! The amount of activity on your site has far exceeded your expectations, and as a result, you need to look for more advanced hosting options.



These days, you have a lot of options including Virtual Private Servers (VPS), Dedicated Servers and Server Colocation.



If you're confused about which option to choose, this post should hopefully clear some of that up.



Why Do I Need To Upgrade If I'm Not Using All My Bandwidth Or Disk Quota?



This is a question people commonly ask. One day they get an email from their web hosting company telling them they need to upgrade their account to a dedicated server. So they go look at their stats and see their not using anywhere near their allocated bandwidth or disk space.



The reason for this is, you're not really allocated any actual bandwidth or disk space. Many web hosting companies offer more than they can deliver. Some companies even offer "unlimited" bandwidth and disk space, but there are obviously hardware limits. They do this because they know that most of their clients will only use a tiny fraction of the server resources.



If you have a shared account, you're probably sharing the server with hundreds of other users. I remember one account I had a client on where there around 800 other accounts on the server. Their smallest package offered 1000GB of transfer. The server seemed to only have one network card connected. Even if it was a 1GB network card, the maximum bandwidth available would be 220,000 GB. Divide that by 800 and you only can assign 275GB per customer. Not to mention a 1,000MBs Internet connection would cost them around $25k.



So obviously, if web hosts had to actually deliver what they marketed, they wouldn't be in business very long.



But bandwidth and disk space isn't the limit most people hit. If your shared hosting plan promised you 1,000GB of bandwidth, you'd probably have to get somewhere around 2-3 million visitors a month. Not everyone is going to be able to manage that, no matter how hard they try.



An inefficient application on the other hand, can use a significant amount of memory and CPU, even with a handful of users. If you read the fine print when you sign up for a hosting account, you'll see that they make provisions to disable accounts if they exceed resource levels. Some hosts will try and shuffler accounts around servers to accommodate their clients, but they have their limits.



Even if you're not using all your bandwidth, you may want to upgrade your account if you feel having a dedicated CPU and memory, or other hardware enhancements might benefit your site.



Should I Choose a VPS, Dedicated Server, Managed Server, or Colocation?



So you decided you need to expand your hosting package. But which solution is right for you?



To answer that, lets look at what it takes to put a website online:



Secure, conditioned space


Servers can be expensive and more importantly you want your server someplace where people can't mess with it. No pulling out plugs or drives to see what happens. Servers also generate a lot of heat and work better in a cool environment.

Power


Servers need electricity to run. Ideally, you want your server to be on a power set up that has backup battery power for short outages, diesel backup generators for extended power outages in addition to a connection to the power company. Even better, that whole system should be redundant, 2 power connections, 2 sets of generators, 2 battery backup systems.

Network connection


If you want your server to be accessible by people outside the server room, you need to have a connection to the Internet. Because you want your connection to be up all the time, you want the data center to have multiple connections to different ISPs and their infrastructure configured to failover properly in case one goes down.

Server


No matter what you're running, you need a computer to run it.

Operating System


Your need a base to install all your other software and to manage your hardware. That's what an Operating System basically does. You can choose Windows, Linux or Unix (Solaris).

Other server software


On top of the OS, you'll need software services to put your website on. A web server, a database server, an application server, email, etc.



VPS Hosting



VPS stands for Virtual Private Server. It is the next step above shared hosting. Your web hosting company will manage everything that it takes to get a server connected to the internet in their data center, and sell a portion of that server.



In these cases, you are sharing a server, but with far fewer people. From your perspective, it looks like you're getting your own server. You have a set amount of disk space (usually on a RAID array), a set amount of memory and sometimes a set amount of CPU power. In some cases, you use more CPU resources if they are available. For example, you're VPS is on a dual processor system and you are guaranteed 1/8th the CPU capacity. If you're running something CPU intensive, and there is available CPU that nobody else is using, you can use more than your allocated share.



With a VPS, you can have a choice of what operating system to run. It doesn't matter what OS the host server is running. You get full control over almost every aspect of the operating system, as if you had your own server. You do need to know how to manage your operating system and other server software. Some hosting companies will manage that for you as well for additional fees.


Dedicated Server



With a dedicated server, you are renting a server and everything that goes along with it to get it connected to the internet in a data center. Your hosting company is responsible for keeping your server hardware running and that your power and internet connection are up. They will install the base operating system, which may include some common server software, but after that you're on your own.



There are many packages available for dedicated hosting from single CPU Celeron Processors up to Dual Quad-Core systems.



You can have more than one server with any provider and in most cases, they will be able to set up a Virtual Private Network (VPN) for all your servers, so that you can communicate with them securely on the local network, and not have to use up your bandwidth allocation.


Managed Server



A managed server is similar to a dedicated server, but it also includes other Managed Services, to help those that can not, or do not want to maintain their own servers. Typical managed services include patching operating systems and server software so it's up to date, monitoring hardware health, replace failed drives, managing firewall settings and things of that nature. Different providers have different types (and quality) of service.



Prices can vary greatly, and unfortunately, price is not always a good indicator of quality. In general, managed servers are more expensive than dedicated servers, but that difference in price may be worth it if you don't know how to maintain your own system, or you would rather focus on building your applications or selling your services.



Just like with dedicated hosting, most providers can set up a VPN if you have multiple servers.


Colocation



With colocation, your provider will give you space in their data center, and a connection to their network. You need to provide the physical server, and everything that goes on top of it such as the operating system and other server software.



If something fails on your server, such as a hard drive, it's up to you to go and change it. Many data centers will give you hands on support options for an hourly fee. If you want to upgrade the CPUs, you can ship the CPUs to them, you power off your server, and they'll do physical work of replacing the CPU. Some will even offer support for certain operating systems and other hardware.



You can get colocation packages for as little as one server or as much as a cage full of racks. If you have multiple servers, most colocation providers can set up a VLAN (virtual local area network) so that you can communicate with your other servers privately. At some point, if you have many servers, you will want to look into getting your own networking equipment such as a switch and firewall.



With colocation, you pay for space, power and networking. You can put in a single Celeron server or a 4-way Quad Core Opteron Server and pay roughly the same. I say roughly because if you have a lot of CPUs, drives and memory you will need more electrical power and may need to pay extra. With a dedicated server, you'd be paying hundreds of dollars more.





3.03.2009

How To NOT Start A Start-up

I saw this video the other day while searching for some information and I was absolutely in shock! While I have to say it's pretty cool to have that in your garage, and I myself have some older servers that I use to mess around with, this is the wrong way to start your start-up's data center.




I can't think of a single reason why anyone would do that. Some of the servers look like P3's and P4's. There might be some very old Xeons in there. Looks like they were picked up used. If you're thinking of doing something similar don't. In the rest of the post I'll go over the details on why with a better alternative.



Maintaining Older Hardware



First, while a lot of software is backwards compatible, especially Linux which is what I think they are using, you sometimes run into compatibility problems. In addition, you have to worry about getting replacement parts if something on the server dies. While hard drives and memory may be easy to get, things like case fans, and CMOS batteries aren't. Finding a replacement CMOS battery might wind up costing about 25-50% of what they bought a server for.


Cost



I did a quick look on eBay for some of the computers they are using. Between everything including the server cabinets, servers, desktops, switches, router, drives, cables, accessories, we're probably talking $2,500-$3,000 easy. For that price you can get a brand new server from one of the major server vendors or build one yourself. It would probably even perform better.



Power is another issue. Electricity isn't free and if they're planning on running the data center in their garage, like they said, then they have to power the servers 24/7/365. Even at idle, a typical computer can draw 60W of power. That's just a regular PC, not a server with extra fans, and multiple drives, but lets use that 60W as a baseline. Now lets check Energy Australia's Energy Calculator. I'm pretty sure he's in Australia. So, 20 machines, 60W each running 168 hours a week comes out to $1464.50 a year, or $122/month.



That's a good chunk of change to power such old hardware. That doesn't even factor in the cost of air conditioning in the summer!



icon
icon


Let's compare that to this Compaq Proliant DL380 G5 Server. Click on the picture on the right for more details. Maxed out with 2 Quad Core CPU's all 8 Memory banks loaded as well as 8 SAS drives filling all the bays, it's only at around 400W at 100% utilization! That's less than $500/year ($41/mo) in electricity. About 1/3 what the dinosaur data center will cost. Since he seems to be a hands on person, he could have even go the build your own rack server route.



The server with 1 Quad Core no memory or drives, goes for just over $2k as of today. 1CPU, $200-300 for memory and some drives to get started and that would have been a much better use of that money spent on eBay.


Time is Money



From what I could figure out, it's been over 8 months since he started and it doesn't look like the project went live. There's no mention of it in the blog anyway. The last entry was over a month ago.


Internet Connectivity



In one of the videos he mentions getting a "big pipe" to connect the servers to the Internet. That's not cheap. Even a single T1 is about $300/month and these days, a T1 (1.5Mb/s) is not considered a big pipe.



Websites also don't become successful overnight. You can start out small and probably the best thing this person should have done, if they couldn't use a shared hosting account, is get a dedicated server. That way they wouldn't pay any up-front hardware costs, have to worry about maintaining hardware and would have their server in a real data center with multiple redundant Internet connections and they could easily increase their bandwidth as usage increased.



As of today, you can find dedicated server hosting from a number of different reputable companies with prices starting as low as $79.00 a month and bandwidth of 500GB-4000GB. For reference, a T1 line sending out data all day long for a month can only handle around 350GB of data. With a dedicated server, you get a burstable connection. So if you have a big spike, your network connection can handle it. Usually up to 10Mb/s but in some case you can get up to 100Mb/s or more.



Affordable Dedicated Hosting


Here are a few links with prices (as of today) for some popular and affordable dedicated server packages.























































Provider CPU Memory Disk Bandwidth Price/mo
LunarPages Celeron - 2 Dual Core Xeons 1GB - 4GB 80GB - 4x400GB SATA or 4x146GB SCSI 1000GB - 4000GB $79.00 - $800
IPOWERWEB Celeron 3.06GHz 512MB - 1024MB 80GB - 250GB SATA 500GB - 1500GB $129.00 - $169.00
GoDaddy Celeron - Quad Core 2.83GHz 1GB - 4GB 120GB - 2x300GB SATA 500GB - 2000GB $79.99 - $419.91
Host Gator Pentium 4 2.4Ghz - Quad Core 3210 Xeon 1GB - 4GB 80GB - 4x400GB SATA or 4x146GB SCSI 1500GB - 2500GB $174.00 - $374
Pronet Hosting Intel Core 2 Duo 3.06GHz 2GB 2x160GB SATA 2000GB $99.95


If he wanted to use his own hardware he could have also bought a beefy server, used some sort of virtualization technology such as Zen, VMWare or Solaris Containers (Zones my personal favorite) and added hardware and shifted around virtual servers as necessary. Once he had his website built, he would then ship the server out to a good colocation facility which would probably run around $100/mo.



This all looks like a lot of fun, but in the end they probably delayed the launch of their product and spent more money than if they bought one new, powerful server or got a dedicated server or VPS to start out.