SharePoint Logical and Physical Architecture

In the previous post, I have explained basics and fundamental elements of SharePoint for end users. We learn SharePoint terms such as item, list, document library, site or subsite. In this post, I am going to explain high-level elements of a SharePoint platform called SharePoint topology for developers and administrators. We will look at both physical architecture and logical architecture of SharePoint. This is almost same for SharePoint 2010, 2013, 2016. Then I will tell you what a tenant means in SharePoint Online and what limitations you will have there. In logical architecture, we have Site Collection and Web Application.

Site collection: is a collection of SharePoint site which contains a single site as a top level and some subsite below that. So Why do we need more than one site collection? Within a site collection, we can define a unified top navigation menu, permission (SP security group), branding, site column, Content type, any custom element such as custom permission level, custom web parts, site template and document library template and many other configurations. So once we will create a new site collection, it won’t follow setting which we have defined in another site collection. For example, if you want to have different branding and top menu for your sites, you have to make a new site collection.

So there are some configuration which you are able to set in site collection level and if you want some of the sites to follow that setting and some other not following it, you have to define two separate site collection with a different setting. As a general rule, You shouldn’t create a new site collection unless you have to do this for one of the above-mentioned reasons. There is a specific permission for site collection administrator. Site collection administrators have access to all sites within that site collection despite from if they are listed in site setting –> site permission section or not.

There are some scenario which you may need a new site collection, If you are a large organization and have some subsidiaries company or if you have branches in different countries or if you expecting too many sites (for example 200 orĀ  even more) or large amount of document (i.e hundreds of GB or 1 TB) or you want to have different setting for sharing with external parties (including vendors, auditors, resaler, …) then you need to create a new site collection. Each site collection will be kept in one content database. If that DB becomes huge for solving performance issue, you need to split it to two separate DB, then you won’t be able to do that unless you have two separate site collection. A Site collection is more like a logical layer which capsulate sites and makes a border around them by defining specific permission. Each site collection will have a unique URL.

Web application: the simple explanation is a web application is an IIS Website that has been configured to run SharePoint. It is an upper level of site collection so we can have multiple site collection within one web application. This is another logical layer which provides isolation. Each web app has a web.config file. A web application can be configured to use different Service applications pool (such as Search, User Profiles, etc).

Here are a list of setting which you can define in web application level: AlternateURLS, Blocked File Extensions, MaximumFileSize, Security Policies, Rights/Permissions Set. So if you want to have a site which can keep file size that is larger than max allowed file size, you need to create a new web application. Another sample is Extranet which is better to have a separate web application for it. The authentication method is set at the Web Application level as well.

From the top level you can go downwards in the topology :

  • On a farm, you have one or multiple web applications
  • On a web application, you have one or multiple site collections
  • On a site collection, you have multiple sites/webs
  • On a site, you have one or multiple subsites
  • On a site/subsite, you have one or multiple lists or document libraries
  • On a list or library, you have one or multiple list items or file

In physical architecture, we have different types of SharePoint servers. Each of them is responsible for a specific role.

Web Servers (Front-End server): A collection of servers which take requests from users then process them and finally return the data (a web page including data). Once the number of users grows (for example 10000 users or more) you might need to add more Web front end (called WFE) server. A Network Load Balancer (NLB) will distribute requests between WFE servers. In most of the organisations, one WFE is enough except for large companies, government departments and those who are using SharePoint daily for several purposes.

Application Server: the server that hosts Central Administration in a three-tier farm is an application server. You can add application servers to host services that can be deployed to a single server and used by all the servers in a farm.

Application Servers host service applications. You can distribute service applications among the servers in your server farm to manage load balancing. SharePoint 2013 (and later versions) includes a set of service applications that you can use to share services across web applications. In some cases, you can also share service applications across farms. You can manage service applications by using Central Administration or by using Windows PowerShell 3.0

Search Server: Although the components of the search service are technically the responsibility of Application Servers, many large SharePoint deployments use dedicated servers to run components of the search service. the search service consists of the following major components:index , query processing, search administration, crawl, content processing, analytics.

DataBase Server: Database servers in a SharePoint farm run SQL Server to host a range of SharePoint databases, including the configuration database, content databases and service application databases. Almost everything in SharePoint will save in the database from the customization, setting, permission, sites, web pages, lists, files, items. Just a few things might save in a physical path of server as a file.

Farm: All above SharePoint server/ services which work together to provide a set of basic SharePoint services for your organisation called SharePoint Farm. If you have a large global organisation, you might install a set of above mentioned servers per each country (to increase site access speed locally in each country) or just one WFE server in each contry and store all data in a SQL database server in head quarter, then your farm may include 15-100 servers. Altough if you are small company, your farm might be as small as 1-3 servers. Standalone server are not supported in SharePoint 2016 and future versions.

Tenant: Since SharePoint online (part of office 365) is a cloud service (SAAS) which MicroSoft team provide for theri customers, therefore they have setup one/some farm inside their own datacenter. They will sell a tenant to you (as a customer). What is the tenant? The farm is sliced into subsets and deployed individually for clients (companies) and tenants who are going to manage their own tenancy.

MicroSoft is managing Farm and Central administration section but you will manage your own tenant which is including your site collections. So tenant is a logical layer as subset of web application. However you don’t have access to your web application setting, but MicroSoft wrap all your site collection in a area called tenant. You have a web interface which allow you to manage your SharePoint tenant which is icluding all of your site collections. So you are able to create several site collection in SharePoint online and change its configuration but you can’t make any web application or change web application setting for your existing site collections.
From programming perspective, you don’t have access to write code as a farm solution in SharePoint online. You just can write SharePoint app, Sandbox solution or write code using REST and client side object model (CSOM). You are not able to copy or put any dll on a physical path of SharePoint server once you are using SharePoint online. You don’t have access for customizing an existing Application pages or create a new application page.

How many subsite can we have in one site collection? You can have 250,000 site and subsite in one site collection.
Do we have access to “Central Admin” or setting of farm or web application in Office 365? No MicroSoft team are responsible for all Farm(Servers) and Web Application setting and you don’t have access to change any setting there. You can not request them to change those setting for your tenant as it will affect other customers in the farm. That means, if you are on SharePoint online you are not able to change default setting for AlternateURLS, Blocked File Extensions, MaximumFileSize, Security Policies, Rights/Permissions Set and so on. However some of the web application setting and central admin functionality has been provided for you through tenant admin web interface such as managed metadata on tenant level or user profile sync setting.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s