What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
Sep
6
Written by:
9/6/2010
In a previous blog entry, I spoke about how you can add portals to your DotNetNuke website, but one of you pointed out that I didn’t speak to why one might choose to have multiple portals on a single instance of DNN versus having an instance of DNN for each website. At first, I was shocked, “Why did I not think to speak about that?!” However, as it sunk in, I am happy that I didn’t speak about it then. This topic certainly deserves its own post.
What is an Instance?
Before I begin, I want to specify what I mean by instance in this post. Even though this definition doesn’t really change for me, and instance of DNN can be defined as a single file system and IIS reference to an installation of DotNetNuke. You can and probably do have a varied definition, but this will serve our needs for this post.
Comparing Multi-Portal vs. Single Portal Instances
Need a new site? Just add it to the DNN site you already have. You don’t have to waste time with all of that other stuff.
At first blush, it would seem a logical and efficient thing to do. After all, you’re saving a ton of time and money by adding your most recent site to an existing DNN portal instance. All you have to do is add an IIS and DNS reference, and add the site to your existing one. Easy stuff, right? Right.
On the surface, having a single instance seems to be the right thing to do. Just off of the top of my head, you would:
- Save time upgrading and maintaining a single instance
- Save time and money installing extensions on a single instance
- Not have to remember as many sets of login credentials
- Monitor and report on multiple sites from a single portal
- Manage a single set of settings across portals
What one really needs to think about are the immediate and long-term concerns in marrying two or more sites in a single installation of DNN. In order to efficiently contrast the pros and cons though, one must already be experienced in administrating a handful of DotNetNuke sites. However, I will attempt to shed some light on it for you now. Put on your shades! That was a joke. You probably can’t read the rest of this post with your shades on. Take them off, silly!
No matter if you have two or 1000 sites on your instance of DNN, you have to remember that all of these sites have several things in common with each other. I won’t mention them all, but some of the most important things they will share are:
- Modules
- Widgets
- Skins
- Providers
- Host Settings
- Vendors (sometimes)
- Database
- Application Pool in IIS (sometimes)
- Lists
- and more…
There are a seemingly endless number of examples of potential complications here when you have two or more sites in the same instance. Keeping in mind that they share all of the above resources, a multi-portal instance of DNN would have the minimum administrative concerns:
- Shared modules/widgets/skins being used by unauthorized or inexperienced site administrators
- A 3rd party module or provider not able to scale to multiple sites
- A provider not being suitable for one or more sites
- Vendors/affiliates/lists not being appropriate for one or more sites
- Performance and size restriction limits in the Application Pool or the database
- Licensing costs and/or restrictions
Probably the first and foremost thing to think about when thinking about shared resources on a single DNN instance with multiple sites on it is that if one site goes down, all of the sites go down. For some of you, that proposition is scary enough. You don’t have to read any more. ;)
Like I said, those are some of the most common concerns. To put that into context, imagine that you are managing the site for a handful of local pizzerias. First of all congratulations! I am sure you have your share of discounted or free pizza now.
Each of these pizzerias no doubt have a need for modules that provide functionality for menus, feedback, HTML content, map, location locator, and maybe even an online delivery tool. All of these pizzerias will likely function fine on a single instance. However, let’s keep going. I am going to talk about management, or administration of the portal(s).
One of your clients decides that you’re doing a fantastic job, and refers their friend to you, and she owns a book store. However, she wants to have an online shopping cart and auction tool to allow online customers to buy her books. Think about that for a second…
This new client will need to have at least two more modules installed on the site – a shopping cart and a CRM module. It may not be a big deal at first, but you will not only need to install those modules, but you will need to manage the visibility of those modules, so that your pizzeria clients don’t try to use the shopping cart and CRM. As you add more and more clients, this problem begins to grow, very much like a snowball in your favorite childhood cartoons that gets bigger and bigger as it gets down the mountainside.
I happen to know a prominent DNN ecosystem member who was managing such an instance for quite a long time. I won’t disclose their name or the company name, because I am not sure they’d want me to, but they were running over 800 sites on a single instance of DotNetNuke at one time. I know you might not believe me, but it’s true.
Yes. This is possible and it’s done by at least a small number of people that I know personally. The key to making it work is to make sure you have a VERY beefy web and SQL server and impeccable organizational skills to manage all of those sites on a single instance.
Think about it. That’s over 800 websites, with at least 50 different use cases and purposes for the websites. From a management perspective, that’s nothing short of a nightmare. When asked at a speaking event, the company’s founder was asked if he suggested that others do the same, and he simply replied without missing a beat and a telling smile, “No.” Having such an instance of DNN eventually requires a full-time site administrator, who just manages extensions and management of portals.
That company has since divided the 800+ sites into common user cases, and now they site on at least 4-5 instances of DNN, but still have around 200 sites per instance.
Cost of Licensing
That was management, but what about something that more directly hits your pocket? Another consideration when mulling over the decision to host multiple sites, you need to think about the cost of licensing. It’s not uncommon for a company that builds a module to have different pricing options for a multi-portal instance, versus a single instance. Depending on the vendor and the module, there could be cost benefits either way.
Between the cost of licensing for the various extensions and plug-ins you might be using, you will need to factor licensing in as one of your main points of consideration. I doubt you will be building every module in use on that instance.
If you end up having a single instance of DNN per site, simply wrap the cost of the extensions into the costs that you charge your customer – even if your customer is your own company, or an internal department.
Performance
In the probably the best example of a good use case to have a multi-portal instance of DNN, you might have a single installation that’s only meant for catalog-type websites. By catalog, I mean that the website primarily functions and exists to provide content, nothing more. It is simply an online landing page for an organization, product, or cause. In such cases, your primary module in use will be the Text/HTML Module.
What about more complicated websites though?
If you have a specific use case for a group of sites that all have similar, but complicated features, this might be a different proposition. Let’s say that this use case is for extranets. You have an instance that hosts 50 or more different extranet sites for clients.
Each extranet will have its own required and optional features, but since they’re all extranets, there’s no harm in having every module that an extranet would require now, and in the future. Right? Kinda…
One thing to remember about modules, providers, and most other extensions, is that nearly all of them come packaged with a DLL. It’s not important know what that is, if you don’t already – but it basically allows the module to function. The more modules you have installed in your instance of DNN, the slower that all of the sites will be - potentially.
Just so you know, it’s very possible to have a ton of extensions installed and in use on your site without performance problems, but it’s still something to worry about if your server resources are not optimized for that kind of load.
This little fact becomes even more relevant and more complicated when we think about the other shared resources too.
As a database grows, the tables and indexes it has do as well. While in many cases, this can scale to meet your needs just fine, it is a major concern to always be aware of. In general, for larger sites a beefy server and decent clean-up routine will do just fine.
If your sites all share the same application pool on IIS, they all will also share the same features or restrictions in the application pool. While there are cases and ways where the individual sites can have their own application pool, it’s not always possible. For example, you might be limited by your webhost, or your licensing. In these cases, all of your sites are sharing resources when they don’t necessarily have to. For example, if each site has it’s own application pool, it will have access to its own group of resources and performance benefits, especially when considering a multi-core processor on most web servers. However, you once again need to worry about licensing in some cases.
Backing Yourself into a Corner
When you have a single site on a single instance of DotNetNuke, there’s no problems when a customer comes to you and asks you to switch out the HTML editor to one they like better, as an example. However, if you have several sites on the same instance of DNN, you might be forced to simply tell the customer that you can’t help them. What’s more, if you’re a subscriber to the FAWTSY (find a way to say yes) philosophy, you might need to perform additional work to extract their portal to a new instance of their own. This has multiple implications that I am sure that the customer won’t like, including: potential downtime, extra cost for the portal extraction, additional cost for module licensing, additional hosting costs, and so on.
In my experience, one of the factors to weigh in when deciding on how many sites to have on a single instance, you really need to consider the personality and culture of the client and their company to anticipate use cases like I just mentioned.
I am sure that you are not thinking that you and your business will stop growing today. Similarly, your clients probably are not thinking that way either. When you have multiple sites on a single instance of DNN, you are making an assumption that every site in that instance is never going to have a need for a new feature. They can, and they will.
A prime example can be made of the previous use case I introduced with extranets. Let’s assume that you were able to get all of your extranets working using a very well-planned set of modules that everyone is happy with. Hopefully, in order to keep paying you, these companies are all growing their businesses. Assuming that you have 50 or more extranets, it wouldn’t be far-fetched to imagine that all of a sudden 3 different customers would ask for integration into different products, such as SharePoint, Salesforce, and SmarterTools.
What now? Seriously… You may not be architecturally set-up to handle such a situation, and still keep your price points at a level where your customers will be happy either during or after such a request.
Let’s Summarize this Already!
I am a fan of both types of instances. However, the instances that favor multi-portal implementations are not the common scenario that you should come to accept. In fact, it’s quite the contrary. Such instances should be simple in nature, and have a very small potential for change, or anticipate changes where all of the sites would require the same updates for the same reasons.
Otherwise, it’s my personal opinion that you should have a separate instance of DNN for each company and use case. If you’re concerned about licensing or other costs, it should be wrapped into your quotes and billing. Otherwise, you will definitely end up finding yourself in a corner where you’re going to be telling a customer that you either (1) cannot do what they want without significant extra cost; (2) you cannot do what they want you to do.
The best scenarios where I see multi-portal instances working are catalog-type sites. Anything else that’s more dynamic is just asking for a headache in the future.
I hope this deep-dive has helped you.
10 comment(s) so far...
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
Will,
Thanks for continuing to write your blogs and for posting a lot of "tweets" as well... I read them and feel like I'm more "in the loop" with the DNN community because of it. I also gain a lot of understanding from the knowledge you post here in the blogs. The links are very helpful, please keep it up! I know that I'm not the only one benefiting from the blog posts and tweets so let this comment speak for many in the DNN community.
Also, just so you know, I told the surveymonkey feedback form about SnowCovered that they ought to give you and Christoc a raise for your dedication to Twitter. I'm more informed because of it...so I hope they follow through.
Thanks again!
By Clint Patterson on
9/9/2010
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
Thanks for the feedback, Clint. It is very much appreciated! :)
By Will on
9/9/2010
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
Hi Will,
Great post - thanks for covering this topic so well. Just what I wanted to know.
Seems to me that if you are using DNN to host other peoples web sites of various types, the portal technology loses its appeal and effectiveness as the number of different clients and website type increase and diversify.
On the other hand, if you're using DNN to only host your own websites and each website is roughly the same in scope, content and purpose, then the portal technology is definitely worth a look.
That's how I see it anyway.
Please keep up the good DNN blogs
Best regards, Rod
By Rod on
10/18/2010
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
@Rod: In general, that can be true. However, many people use DNN in multi-portal scenarios for unrelated sites and do it well. I would always suggest that you do a proof of concept to weigh things out to see if things will work for you.
By Will on
10/18/2010
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
This is just what I needed to hear. But I still need some advise. Each instance of my product would have the exact same features. If a new feature is added, it would be available to all clients. Each client would have on the order of dozens of users. Starting off there will be a few clients, may be a few dozen. As with all of us, we want more customers. I hope that it will grow into the hundreds to a few thousand client sites. In this scenario, would you recommend Multi-Portal or Multi-Site?
thanks Bill
By Bill on
12/15/2010
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
@Bill: It sounds like you might fit the most common use case that functions well for a multi-portal instance of DNN.
By Will on
12/15/2010
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
Thank you for shedding some light on the "Single VS Multiple" instance debate. (It was bright enough to warrant a shade indeed .!.) I have one further delima. This is on the subject of mixing up DNN tables of a multiple portal DNN instance with production (sensitive and invariably high volume) data. If for whatever reason the DBA decides to rollback the database then it is more than likely that DNN tables will be out of Sync with the DNN pages/tabs and the installation as a whole. This would mandate that we redesign and revalidate the DB backup / restore procedures with respect to all the systems we are redesigning (under DNN). DNN related deployment therefore should be preceded by a DB backup in addition to the DNN installation backup. While the DB backups must include backing up of the entire (matching) DNN installation the restore procedure should include the re-installation of the (probably a previous) matching (complete) DNN installation. This means the website users may see previous (potentially erroneous) versions of pages after restoration.
In addition, just like we may expect the users to reenter/recreate the lost transaction (hopefully very rarely) due to previous DB versions being restored, we may have to re-deploy changes made to the DNN systems to catch up since the DB backup (that is to be used for the restoration). This would make the Configuration Managers Responsibilities rather interesting. It all sound a bit scary.. Would love to hear your comments...
By Selva Sabaratnam on
2/25/2011
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
@Selva: Thank you for your comments. I may not be understanding your use case as well as I should, but there shouldn't be any need to enter an installation process when deploying DNN to your production environment. Also, if DNN is a multi-portal instance, the pages and content should all match up upon restore, as long as access to the site before restoration did not involve any new content management or user-contributed content. To prevent this, these actions should be planned carefully on a staging instance of a CLONED copy of the site, offline. This will mitigate most issues that you might see in production.
By Will on
2/25/2011
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
Question...What would you do if you wanted a desktop version and a mobile version of a single website? In other words, the data is the same across both. The only difference is in the templates, the skins, css, etc. But, more importantly, some of the modules may be modified differently between the two to limit content within a certain module as the mobile version will definitely want less data. How would you do it???
Thanks.
By Christian on
2/1/2012
|
Re: What to Consider Before Hosting Multiple Portals on a Single DotNetNuke Instance
@Christian: There are many ways to accomplish what you're talking about. First, you could create a child/parent portal that uses one or more shadow modules to redisplay content, use the built-in mobile features in Pro/Ent, another mobile solution, or Druid.
By Will on
2/6/2012
|