In past blog postings I have provided what has become a bit of a "Guide to Selecting a DotNetNuke Hosting Provider." As with previous years it is about that time where there have been enough changes in the market and to DotNetNuke in general that I thought it was necessary for a 2010-2011 version of this information. In this article I will talk though the thought process that I use when working with current and potential customers to select their hosting plan, environment and provider. This document has been updated based on current information, in addition, prior to going through the recommendations below I strongly recommend reading my article “Shared, Virtual Private Server, Dedicated of Cloud Hosting” to become familiar with the different levels of hosting and also to review my "DotNetNuke Performance Configuration Best Practices" document to ensure that your DNN hosting plan is up to date.
Major Changes for the 2010-2011 Version
For those of you that have read previous versions of my hosting plan selection guide I want to take a quick moment to note the major changes to the selection process from the previous year. The primary changes are in the "Shared Hosting" provider space. A number of shared hosting providers are starting to limit websites to only use a certain amount of resources, and the actual numbers that they are selecting are randomly pulled out of a hat, so it is important to understand what these types of things can mean to your site BEFORE you get signed up with that hosting provider. The second major change is in the requirement for DotNetNuke 5.2.x of having .NET 3.5 installed. The remainder of this posting will discuss these new items, as well as my overall thoughts on the provider selection process.
The process that I follow when selecting a DotNetNuke hosting provider is somewhat complex, and as such, is broken into multiple parts. The following sections will outline the different areas that I evaluate when considering a hosting provider. NOTE: all of the below items should be considered for any type of hosting, but depending on the type of hosting more or less emphasis on a particular item might be needed. I will make every attempt to provide clarification when possible.
Your first step for review/consideration when looking at a hosting plan needs to be the technology that is supported by the provider. Since DotNetNuke 5.2.x and later are based on the ASP.NET 3.5 framework and utilize SQL Server for its database backend we establish a minimum baseline of features that must be supported. This includes Windows based hosting with ASP.NET 3.5 support, and access to at least 1 SQL Server database. Now these are minimum features that must be there before you can even install DotNetNuke, but it is very important to validate these features to ensure that you do not have a plan that will not work for you.
Third-party dataproviders do exist to allow support of other database engines (Such as MySQL), however, the use of those is typically limited to more advanced users and their usage and requirements are well outside the scope of this article
Many people will often ask here what configuration is needed for SQL Server. Can we use a database on a shared server? Can we use SQL Express? Do we need SQL Standard Edition. These are all very valid questions and thankfully DotNetNuke supports running on all editions, in most cases express edition will work ok, as long as you have provisioned methods to ensure that backups are taken on a regular basis. Otherwise, the other editions will offer better performance under high load scenarios and are a must for sites with very intensive traffic or modules that are incredibly database intensive.
Disk Space (Website and Database) and Bandwidth
The next areas that should be researched are the allotment of disk (File System) and database (SQL Server) space. A typical clean DotNetNuke installation will result in a website file system size of 40-45Mb and a database file size of around 11-15Mb. Ensuring that you have the proper room to grow on both the database and file system side is very important. To give you a general idea, this website which is hosted on a DNN installation that supports 5 individual portals, 200-250 tabs and over 4500 users has a database footprint of about 54Mb and a file system footprint of 500Mb. This information was provided only as an example and is in now way an illustration of the type of space requirements your site might require.
When considering the space needed for your site, you need to look at 2 different aspects. The first is how many files you will be loading; in 99.9% of circumstances files served to users via DotNetNuke are stored in the file system and not the database. Therefore these documents size will be deducted from your file system allotment and not the database. The second is to consider the number of pages, static html content, forum posts, users etc. This is the hard one as it is very hard to predict the growth of a site with any accuracy. However, all of these items are the direct makers of your database size.
I have found that for a typical DNN installation users are able to get by with a hosting plan providing 100Mb SQL Server databases, however, it is important here to remember that as your site grows, you need to be sure to have an action plan should your database need to grow past 100Mb in size. As such, I do not recommend selecting a hosting provider that does not offer an option to purchase additional database space should it be necessary.
After you have determined your needs for SQL Server and file system size, you must evaluate your needs for bandwidth. Bandwidth is typically measured as the total incoming and outgoing traffic from your site via ANY communication channel to the server (HTTP, Email, FTP, etc.). Calculations on this side are very hard to come up with, and when selecting a hosting provider it is often best to go with the host with the biggest allotment of bandwidth, as overages in bandwidth can become very expensive.
I find that this is one area that many individuals do not look at when first setting up a DotNetNuke website, but it is very important to take into consideration the future growth of your site. Will you potentially need to host more than this single DotNetNuke site? Potentially a subdomain with another .NET or other application? How about multiple portals, is it possible that in the future you will need to host more than 1 domain from your current installation?
These are all very important questions and depending on your specific answers some hosting providers might not be for you. As I look back at the sites that I have hosted as part of my business, IowaComputerGurus Inc., I started out with a single DotNetNuke site, however, now we host 20 DotNetNuke Installations, 7 standard ASP.NET sites, and a number of other various sites/technologies. Be sure that you talk with any potential hosting provider to understand your limitations, before it is too late.
Dedicated Application Pool and Full Trust
The next thing that I look for when evaluating hosting providers for DotNetNuke support is to see if they provide dedicated application pools and support full trust mode. A dedicated application pool isolates your DNN site from all other sites on the hosting server; this prevents issues on other sites from affecting your site. This is something that not all hosts provide however something that I believe is a must have. The support of full trust simply makes things easier when working with DNN, when not in full trust mode some modules may not work, especially those who try to communicate to other websites such as the News Feeds Module. If you are able to run DNN in Full Trust you will minimize the amount of trouble you have later when working with modules.
One additional item to be aware of are any "limitations" that might be placed on your site with a particular host. Some hosting providers are starting to limit an application to not use more than "XXX" mb of RAM or to not use more than XX% of CPU. Typically these items are going to apply to individuals looking at shared hosting only. These items are important to note before a site is setup as depending on the action taken by the hosting provider they can be devastating to your site's functionality.
Before I talk specifics about the two types of limitations I would like to prefix this with a note that with all hosting providers that I am aware of you do NOT have access to monitor this information, unless your site has been a problem. Therefore, as such I have a major issue with these types of limits are they are silent killers of applications and you MUST watch them carefully to ensure that you do not have issue.
CPU limitations are favored by one of the hosting companies, this type of limitation simply put, states that your site canot use more than X% of CPU time on the shared hosting server. This type of item is monitored on a interval basis, typically once every 5 minutes. If at that 5 minute interval you are using more than X CPU the hosting company can take action. The key here is the action they take. They can simply log it to their servers, or they can shut down your application. It is important to note which action they take, as if they shut down your application, you will see a "Service Unavailable" message until the next CPU poll time. This would result in 5 minutes of outage for your site if this limit is triggered. With DotNetNuke 4.x sites this isn't as big of an issue, but with DNN 5.x-5.4.x sites, the CPU can spike on certain functions to the 20-40% CPU range for short periods of time even on small installations. Depending on what you are doing when this limit is hit, you can also suffer damage to your site. I have customers that have had corrupted portal creations and other issues due to this type of limiting. My recommendation here is to go with a hosting provider that either doesn't limit on this, or that provides a high threshold, and a graceful shutdown process.
Worker Process Memory limits (RAM) are favored by another popular hosting company and can have some of the same other effects as noted with the CPU usage. Typically hosting providers that limit memory usage will simply "restart" the application freeing memory used. This action although not providing an "outage" can cause severe performance issues for a site. First of all the first page request after the restart will suffer from the standard ASP.NET startup time, secondly the same risk of corruption depending on when this recycle happens is of concern here. A standard DotNetNuke installation will use 50-70Mb of RAM just to start up, and the memory usage will go up from there. This site for example with the 5 portals, etc, uses about 105Mb of RAM on a regular day. My recommendation here is to get a limit as high as possible, or best case scenario, get a hosting provider that does NOT limit on this.
Supporting Installation to Root
One issue that plagues users of GoDaddy.com hosting is that they do not support installation of DotNetNuke at the root of a domain, http://www.mysite.com as they cannot set the permissions properly. You can get around this on GoDaddy using a "hack" of sorts, but in my opinion if you cannot install DNN on the root of the domain and you cannot grant full file permissions to the ASP.NET worker process you MUST move to a different hosting provider
DNN Support (Where To Get It?)
The next item to consider is how much DNN support do you expect from your hosting provider? Do you expect your host to offer an automatic installation so you can get DNN up and running without any manual installation? Do you want your hosting provider to upgrade your site for you automatically? Or are you comfortable doing these items yourself, or finding a third party person to handle these items on a case by case basis? (Such as my company's DNN Technical Support Offering)
These are important questions to ask yourself and also if you decided that you want a hosting provider that "does it all" you will want to further investigate your selected provider of choice to ensure that you agree with their terms and conditions. Some of the "we do it all" providers will upgrade sites and apply non-standard "patches" to a DNN installation prior to notifying the customer. For some people this is ok, however, for others like myself this is a critical issue.
Regardless of which option you choose, be sure that you know where you will go for DNN support should you need it during installation, upgrade, or any other time while running your DNN site. It is also important to note where the limits are on the support. Will they "help" you but only get you so far then decide to charge extra, it is important to have a dialog with the provider to understand their support policies, and any potentially "masked" fees.
Customer Support Response
Another item to consider is the responses of the customer service team. Regardless of what hosting provider you select you will at some time interact with their customer support team. It is important to know their standard response times, as well as to get a bit of history from current customers if possible regarding the quality of these responses. I find that this is something that doesn't necessarily get addressed until after a provider has been selected and at that time it is almost too late.
I highly recommend trying to contact the support team, just to see how quickly you get a response, try them out to see if you will be able to work with their schedule and level of service. Just because a support team responds quickly does not mean that they are providing good service, many hosting providers will provide the illusion of service by promptly responding, but requiring many communications to get the process started.
Uptime and Reputation In Community
The final item that I research with a hosting provider is their posted uptime and the overall view of the provider in the community. For example if you search on DotNetNuke for hosting you will find many bad comments about WebHost4Life and GoDaddy, but you will also find many positive comments about the awesome support of 3Essentials or PowerDNN. I take this information into consideration, but I always treat it with a grain of salt to be on the safe side as typically an upset customer is much more willing to make their opinion known. Just as those of you reading this article should validate the information presented within.
What Do I Recommend?
I know many readers of this article want to know what I recommend for hosting, and I will summarize this in three separate sections.
For shared hosting support I work and primarily recommend individuals to one of two companies. 3Essentials or PowerDNN. The reason I provide two recommendations here is that PowerDNN is a more costly solution, however, they offer the DNN Support that many people are looking for. NOTE: both of these providers are now performing monitoring/limiting of shared hosting accounts in manners identified earlier in this article, be sure that you understand the potential impacts of these limitations before signing up with them. At this time I do not have an alternative recommendation that does not limit users.
Although you will find some individuals in the DotNetNuke community that state that VPS environments are not good for DNN, I will continue to disagree with this as I have a number of clients successfully running in a VPS environment. For these environments I recommend “hosting.com” (Previously known as HostMySite.com). They have good prices and great support.
Power DNN also offers a virtual server option, however it is not heavily publicized.
For dedicated hosting I will recommend PowerDNN or Rackspace to must of my customers. In this arena PowerDNN is the standard recommendation as they provide DNN support services however as such you do pay a bit of a premium, however, the access they provide and their network is very impressive. For individuals looking for assistance with PowerDNN or Rackspace please feel free to contact me and I can provide more information on some standard DNN configurations and get you in contact with the right people.
Conclusion and Disclaimer
I hope that this article has provided a little insight to the criteria that I use to evaluate and recommend hosting providers for DotNetNuke. Please remember that these are simply my thoughts and are no way blanket recommendations.
I will also officially go on record that I am a registered affiliate of both 3Essentials and PowerDNN, the links provided in this article do include my affiliate id, and I get a small kickback for any new accounts that are created. In addition I am an active customer of both 3Essentials and PowerDNN. 3Essentials hosts 10-15 clients of mine on a shared hosting plan that we manage, and I have a dedicated server with PowerDNN that hosts this site, and all other IowaComputerGurus Inc. websites.
If you have specific questions regarding your hosting needs please feel free to e-mail me at any time. (firstname.lastname@example.org)