Multitenancy in this context mean isolation of data (including backups), Isolation of usage (what data and services are exposed to the users), isolation of administration (administration of sites, services, customizations), etc. If we consider a hosted environments like SharePoint Online it offers customers 2 mode of hosting

1. Standard: This is a shared infrastructure where multiple customers will be hosting their web applications/site collections (what we call as multi-tenant mode)

2. Dedicated: This is a separate infrastructure of the customer

Some of the biggest challenges that existed in MOSS 2007 for multitenancy include:

1. Where do we host a tenant.. Should we create a separate Web Application or creating a separate site collection will suffice… Of course both have their own pros and cons

2. Services were part of SSP and the alacarte model did not exists and one cannot keep creating a separate Web Application and SSP for each and every tenant

3. Other major challenge was around customizations as the 12 hive folder is a shared one

4. Ensuring the performance of customizations of one tenant does not affect others

So what is that SharePoint 2010 offers to overcome the above challenges

SharePoint 2010 has introduced a new concept called Site Subscriptions to group site collections based on the tenants even if all the site collections are part of the same Web Application. Site Subscriptions not only externally separates out the Site collections but also the underlying data in the content database. This goes to the extent of one tenants data will not be seen as search result of other tenants data. The same subscription id also helps in grouping of features and services to the tenants.

SharePoint 2010 has introduced a new concept called Sandboxed solutions. What this means is that the tenant administrators (Site Collection admins) can now deploy features local to their site collections without affecting other site collections of other tenants in the same Web Application.  Part of the administration is getting delegated to the tenants. However the central admin still has control and can ensure that farm features can be disabled if seen to show any performance degradation.

Below is the PowerShell Script to provision a Subscription service for a multitenancy farm:

#set up variables
$acc = get-SPManagedAccount "<Domain\account>"
$appPoolName = "Subscription Settings Service Application Pool"
$appName = "Subscription Settings Service Application"
$appDB = $env:computername+"_SettingsServiceDB"
$userLogin = $env:userdomain+"\"+$env:username


#set up application pool
$appPool = new-SPServiceApplicationPool -name $appPoolName -Account $acc

#start subscription service
$svc = Get-SPServiceInstance -Server $env:computername | where {$_.TypeName -eq "Microsoft SharePoint Foundation Subscription Settings Service"}
if ($svc.Status -ne “Online”) { $svc | Start-SPServiceInstance }

#Create Application
$app = New-SPSubscriptionSettingsServiceApplication -ApplicationPool $appPool -Name $appName -DatabaseName $appDB

#Create Proxy
$proxy = New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $app

#Create new Subscription to be assigned to a site
$sub = New-SPSiteSubscription

And at this point, the Site subscription can be set on the SPSite using the “-SiteSubscription $sub” flag to group together various Site Collections.

In SharePoint 2010 multi-tenancy is offered through several key contributing solutions:

Site Subscriptions

Site subscriptions can be loosely described as a collection of sites that subscribe to a set of service partitions, settings, and individual features – site subscriptions are also known as tenants. In summary we can approach site subscriptions as a loose association of content. In the Object Model site subscriptions are represented through Microsoft.SharePoint.SPSiteSubscription.

Tenant Administration

The management of site subscriptions occurs through a new administration site template, Tenant Administration, which is used to manage many aspects of the site collections that subscribe from the subscription.

Creating a new site subscription object in SharePoint Server 2010 requires an administrator to:

  1. Create a SPSiteSubscription object
  2. Create and add a SPSite object to the SPSiteSubscription

Feature Packs

Feature Packs are a method by which allows the developer to group a collection of individual features (Site or Web scoped) into a larger overall package. Feature Packs are used to provide functionality or capabilities to individual site subscriptions in a multi-tenant model enabling or preventing access to certain functionality or solutions on a tenant by tenant basis.

Partitioning

Data, usage, and operational isolation are provided through many of these new capabilities. The ability to partition many of SharePoint 2010’s Service Applications enable individual and unique tenants to consume the Service Application while maintaining logical separation from other tenants also consuming from the partitioned Service Application.

Creating a new partitioned Service Application in SharePoint Server 2010 requires an administrator to:

  1. Create a partitioned Service Application using the -partitionmode flag
  2. Create a partitioned Service Application proxy using the -partitionmode flag

Multi-tenancy in SharePoint Server 2010 is a method by which both traditional hosters and Enterprises can gain value in both operation and data isolation. Properly planned and implemented can help reduce operating expenditures and reduce the administrative burden on the IT Professional.