Saturday, 19 January 2013

Multi tenancy in SharePoint 2010

​SharePoint 2010 provides some new features to support Hosting Environment, in simple terms Multi-tenant support. Multi-tenancy is all about of isolation of data , services, administration etc. It involves a unique deployment for a customer/tenant on a shared set of resources. In multi-tenancy, we have multiple customers/tenants who share the same infrastructure, some shared services with no data and some shared services with patitioned data. In 2007, there were some inherent problems while doing Multi-tenancy and true isolation was not possible but in 2010 the limitations were overcome and we have a beautiful Multi-tenant feature available for us to be leveraged to our customers.

Now the most important thing is Why Multi-tenancy ?

As you have read , multi-tenancy involves sharing of resources that means we have less hardware cost. Its like a pooling of a car where the same amount of petrol is being used to reach from source to destination but shared among every person sitting in the car thereby being cost effective. So, we share resources with other tenants. But the beauty here is that there is complete isolation of data. Consider a scenario, there are 5 schools who have a SharePoint portal for their students. They have the same features deployed and configured on their portal. The only difference is in the data, they all have different students accesing the same. So, here we can set up a multi-tenant hosting enviroment for all the 5 schools, where they will be using the same infrastructure but will have complete isolation of data from each other. They all will have a single User Profile Service Application which will be available in partitioned mode so that student from School 1 cannot access the portal of School 2. Also there is a centralised control over hardware. Now to manage 5 customers, we don't have to manage 5 independent infrastructures. We simply need to manage one. :)

Also there is an admin site available in multi-tenant environment for each tenant where he can create new sites and perform administration stuff. If you remeber, i normal SharePoint environment, if we were using User Profile Service Application, then in order to manage any user profile we simply used to go to the Central Admin Manage Profiles, and there we had that beautiful option to Manage User Profile. But this is not available in Multi-tenant because we don't want admin from one school sees the users of the other school or to isolate one tenant data from the other tenant. Here comes the tenant admin site in picture. For every tenant, in their admin site, they have the provision to manage user profiles. So this feature is available in tenant admin site instead of the Central Admin to ensure isolation.

In the above screenshot, if you see there are 4 customers i.e. 4 independent web-applications in 4 different sharepoint farms. This is the scenario where we are provisioning one farm per customer.  

However in this second screenshot, we have a single farm whoch host all the 4 customers for us. These customers are called tenants, who share the same services but in partitioned mode.
Also there is a very important term in multi-tenancy and that is Site Subscription. Site subscription is the
logical grouping of site collections that can share resources. Now, each tenant has a subscription ID that differentiates it from the other tenant. The subscription ID is used to map features, services, and sites to tenants and also to partition service data according to tenant.  Now, these site subscriptions can be created using powershell or using object model.

There is also a new concept that is introduced with multi-tenancy and that is the Feature Pack. If you create any feature in multi-tenant environment, then that feature is not available in the default list of your features available in your web or site scoped  features. To make your feature available there you need to create a feature pack and  include your feature in the feature pack and then associate that feature pack with your tenant. This concept is very interesting in terms that you can provide different features to different tenants in an ala-carte manner. I will write a new blog post solely on feature packs later.

So, these are the very basics of multi-tenancy in SharePoint 2010. I hope after reading this blog post you will get some basic idea around this concept.


No comments:

Post a Comment