Recently I have been responding to more and more forum posts and e-mails regarding DotNetNuke and selecting a hosting provider. Back in May, I had a blog post Selecting a Hosting Provider Revisited, this article did a great job of outlining the basic consideration points when it comes to selecting a hosting environment for DotNetNuke. However, recent technology changes and other hosting options have created a few more items that need to be considered. This article is designed to specifically address the concerns and questions behind shared, virtual dedicated, dedicated, and cloud hosting options.
First and foremost before I get to discussing the various advantages and disadvantages of the different types of hosting I want to make sure that I point out that reading my previous article to discuss the general considerations when selecting a hosting provider should be done BEFORE continuing with this article. As this article is focused primarily on the decision between Shared, Virtual, Dedicated, or Cloud hosting solution. In addition, this article is based on real-world analysis that I have completed, and experience with the management of my sites and my client sites. In no way is this information 100% solid as every implementation is different, and each setup can have a different impact on the overall solution. I am just trying to get the information out there that I know, in the hopes that someone else benefits from the information.
The remainder of the article will be divided into sections discussing each of the individual hosting types and discussing the various advantages and disadvantages of each level, and ballpark cost figures. In each of these levels, I will provide information detailing my experience at each level.
Shared hosting is typically one of the most affordable, and applicable options to people getting started or building smaller websites that will not generate massive amounts of traffic. There are multitudes of options available when it comes to selecting a provider, and my previous article covers a lot of the evaluation criteria that should be investigated.
In my time working with .NET and DotNetNuke I have spent a lot of time researching and working with shared hosting plans. Overall my personal sites transferred through 4 different hosting providers before I found a shared hosting provider that gave a stable environment, good support, and the performance that I needed. This site, as well as my business sites, were hosted in a shared environment up until mid-summer.
I have found that with DotNetNuke if running under 500 visits per day, performance on a well-tuned, and not overloaded shared hosting plan, can be quite good, with under 2 second page load times possible. However, even with heavy caching, and third party caching modules in place, performance above the 500 visits per day started to degrade. This was one of the two key reasons why I moved from my Shared hosting environment to a Virtual Private Server (VPS) solution.
Advantages of Shared
There are many advantages of shared hosting, the cost is by far one of the biggest advantages, to get a GOOD shared hosting plan with support for .NET and SQL Server you can find services in the $9-$14/mo. range, which is very affordable, even for new ventures. In addition, sites stored on shared hosting will typically offer more storage space and will be hosted on servers with highly redundant hardware. The reason for this is that it is not uncommon for hosting providers to have 150-200 sites hosted on a single piece of hardware, so it must be beefy.
Disadvantages of Shared
Many of the disadvantages of shared hosting are directly tied to their advantages. Since shared hosting servers host 100+ sites on a regular basis your sites are always working with other sites to get CPU time, and if another site or sites have key spikes in traffic your environment can be affected. Also as I mentioned in my experience shared hosting doesn't scale very well to high traffic, a lot of this is due to the finite limit on shared resources.
For some people, there is also a limitation that you cannot install third-party applications that are NOT part of a website. Items such as source control systems, automatic FTP programs, etc are not possible to be hosted in a shared server environment. Overall your access to the server is limited.
Pricing of Shared Hosting
For a good provider from $8.95/month and upwards.
Virtual Private Server (VPS) Hosting
For one reason or another VPS hosting is often knocked and discredited by DotNetNuke community members. Most recently this thread in the DotNetNuke.com forums brings up the discussion. However, as I get to my experience with VPS accounts I'll mention my disagreement with the common arguments.
The attraction to VPS hosting can come in many ways. With VPS hosting you get your own installation of Windows that you can manage, typically administration access is given and you can then install additional software. This is a big attracting factor for many as you can install applications and do more high-level items once you have control over the environment.
VPS systems are accomplished by the hosting provider dividing out a host system into individual virtual machines, one of which is given to your account. When they perform this segmentation they will allocate specific allotments of memory, disk space, and CPU. This process is the key to determining a proper fit within a VPS account, as poor management by the VPS Hosting company can result in very poor performance.
First an foremost I would like to say that this site and all of my other sites are hosted on a VPS plan, and there are no issues at all with this hosting. The following listing includes all items currently hosted on this single VPS server that hosts my sites.
- 2 DotNetNuke installations (1 with 5 Portals) - Total daily traffic 800-1200 Visitors with a peak of about 3000
- 1 BugNet installation (ASP.NET Based on an older DNN Version)
- 1 Smarter Track Installation (ASP.NET based ticketing system)
- 1 Mail Server application
- 8+ other ASP.NET applications
- 1 Application keepalive service used to ping 20+ sites every 15 minutes
- 1 .NET Source Control System
- SQL Server 2005 Workgroup Edition
As you can see from this configuration the server is worked a bit, however, I've found that it is running with the current traffic loads without any issues at all. You can see from my sites that I have better-than-average site response, and I still have room left to do what is needed. I have other clients in Virtual Environments as well and they have no issues. I have found though that the key is to find a GOOD VPS company, one that will not give in to the pressures of making a few extra bucks by overloading a server. I went with a provider that gives 1Gb of dedicated ACTUAL RAM, and that only loads a max of 8 clients on a dual quad-core machine. This is one of the key reasons in my estimation as to WHY I get such good performance.
Advantages of VPS
With proper implementation, a VPS provides many advantages; the ability to install software, dedicated system resources, better access to site files and backups, and a better ability to handle larger loads. Overall a VPS is a great step up from a Shared Hosting plan and is attainable with a lot less cost than a properly configured dedicated server.
Disadvantages of VPS
With a VPS solution you are running on a finite set of system resources, so at a certain peak you will max out on resources and an upgraded hosting option will be something that must be considered. Also, if using VPS and SQL Server Express there are potential issues with reliable backups, therefore I strongly recommend that you go with Workgroup edition to be 100% confident. Another potential downfall compared to Shared hosting is that it is possible that the hardware used on the host system will not be as redundant as the shared environment, however, this varies from provider to provider.
Pricing of VPS Hosting
I have found that pricing for VPS plans really vary, however, to get a GOOD system, with a GOOD provider you will most likely be in the $100-150/month range.
Dedicated Server Hosting
Obviously the next step after VPS hosting is dedicated hosting, boasting many of the same advantages as VPS with the added benefit of more resources at your disposal, but a disadvantage of cost.
Working with clients on Dedicated hardware is very nice as typically the server will have more than enough computing power to handle all of their needs and then some, performances issues are less common concerns. However, for most companies, even though an eventual next step, a dedicated server for a startup company or site, is not always in the budget.
Advantages of Dedicated
GOing with a Dedicated server will grant you access to much more computing power than what is possible with a Shared or VPS plan. This additional computing power will allow for more traffic, more memory for heavy caching, and more abilities to install other applications on the system.
Disadvantages of Dedicated
Once you have gotten into the dedicated server area the cost ends up being a major limiting factor, especially if you are looking for highly redundant servers like those that are possible with Shared or VPS accounts. In addition depending on the provider, it is fairly common for individuals to take a more active role in the management and monitoring of a dedicated server. For some, this is an advantage, some a disadvantage.
Pricing of Dedicated
Typically to get a dedicated server with licenses for SQL Server you will be looking at $300+/month.
The newest entry into the hosting arena is the "Cloud Hosting" solutions, services such as those provided by Mosso, GoGrid.com, and Amazon. These services offer the flexibility of a hosting solution that scales with your site, only billing you for the resources used on a monthly basis. Offering many of the robust redundancy options exhibited by VPS and Shared plans, without the limitation cap on resources. At least, that is the claim.
So far I have two clients that are hosting sites in a cloud computing environment, both are on Mosso, and thus far things are going well. It wasn't an easy process to do the first time, but now that the extra configuration elements for DotNetNuke are known, site setups are TYPICALLY easy to complete. So far the performance of the sites once up and running is very impressive, and it does appear to scale to load quite well. The only item that is a bit odd is the normal ASP.NET startup process takes a lot longer than average, about 15-20 seconds. We have gotten around this by simply using a keepalive service.
Advantages of Cloud
The biggest advantage is the ability for your site to grow, not being forced to move things around as your site starts to ramp up in size and overall traffic numbers. These are great for those startups with aggressive growth desires or potential of having very spiked traffic peaks. The additional advantage here is that you can host larger sites, with redundancy at a lower cost than its dedicated counterpart.
Disadvantages of Cloud
As with the shared hosting plans, the ability to install software that is not a web-application is NOT a possibility. Installation of some web-applications is either more complicated or not possible. DotNetNuke, however, DOES work on these platforms. Another item that I will add in here as a disadvantage is a fact that technology is fairly new. Just becoming mainstream in product offerings leads me to still be cautious about the technology, but I still consider it an option.
Pricing of Cloud
Pricing varies greatly depending on the provider, but typically starts at $100/mo.
What Does It All Mean?
SO what does all of this mean, where should you go for your hosting? Well as I mentioned at the beginning of this article, it really depends on your entire solution. It is impossible for myself, or anyone else to issue a blanket statement saying if you do X this plan is right if you do Y this plan is right. There are so many things to consider that you really must consult with individuals that have gone down the road before.
I hope that this article has provided some helpful information to you, it is really designed to be an educational document in general regarding the individual technologies, and when each might be viable for consideration. Please post any comments you have below, otherwise, if you have technical questions regarding what is right for you, or questions about recommendations, please visit the forum.