Understanding Scalability for SharePoint
The
first step in scaling a SharePoint environment is to understand the
level of usage it will receive, both presently and in the future. After
the level of usage is determined, understanding which specific
components can be extended is vital to structuring the system to match
the desired user load. The key is to match SharePoint functionality to
the specific identified need.
Mapping SharePoint Functionality to Business Needs
When deploying
SharePoint, the primary concern for scalability is how many users will
use the system. For departmental collaboration, the numbers may be
small. For large, publicly accessible portals, on the other hand, the
numbers could scale up quickly. Scaling a SharePoint implementation
based on the number of users is simplistic but can be used as a starting
point. In addition to total number of users, the following factors
should be identified to more fully understand the load placed on a
SharePoint server:
Number of users
Pages per user per work day
Length of work day (hours)
Type of work performed and level of office integration
Size of document repositories
Collecting this
information and understanding who will be accessing a SharePoint
environment is the first step toward properly scaling the environment.
Gauging Content Growth
In addition to the amount
of data that initially is loaded into SharePoint, an understanding of
how fast that content will grow is critical toward properly scaling an
environment. Running out of storage space a year into a SharePoint
deployment is not an ideal situation. You need to understand how quickly
content can grow and how to control this inevitable growth.
Proper use of site quotas
in SharePoint is an effective way to maintain control over the size
that a SharePoint database can grow to. Implementing site quotas as they
are created is a recommended best-practice approach and should be
considered in most situations. It is easy to bloat SharePoint with
unnecessary data, and site quotas help local site administrators to make
judicious use of their available space.
SharePoint’s SQL database can
grow in size dramatically, depending on how heavily it is used and what
type of content is included in it.
Scaling Logical SharePoint Components
The
key to SharePoint’s success is its capability to intelligently present
information needed for each individual user, giving them quick and easy
access to that information. SharePoint accomplishes this through various
logical mechanisms that exist to help organize this content,
structuring it in a way that pulls unstructured data together and
presents it to the user. For example, a file server simply holds
together a jumbling of documents in a simple file structure. Multiple
versions of those documents further confuse the issue. SharePoint
contains mechanisms to organize those documents into logical document
libraries, categorized by metadata, which can be searched for and
presented by the latest version.
In addition to the most
obvious logical components, SharePoint enables sets of data to be scaled
out to support groups of users. For example, by utilizing different
site collections with their own unique sets of permissions, SharePoint
can be configured to host different groups of users on the same set of
machines, increasing flexibility.
Scaling Out with Site Collections
Building on the success of
previous versions of SharePoint, SharePoint sites in SharePoint
Foundation enable various teams or groups of users to have access to
particular information relevant to them. For example, sites can be set
up for each department of a company to enable them to have access to
information pertinent to their groups.
Sites can be scaled out to
support various site collections for each group of users. This enables
the data to be distributed across a SharePoint environment logically,
allowing a much larger population of users to be distributed across a
SharePoint server environment. Each site collection can be administered
by a unique owner designated within the site structure, similar to the
one shown in Figure 1. This allows for security to be scaled out across a SharePoint site.
Scaling Out with Web Applications
SharePoint stores its data
in SQL content databases but serves up access to that data via HTML and
web services. The access to this data is served up to the user via the
Windows Server Internet Information Services (IIS) service. IIS is
composed of various logical structures known as websites,
which are entry points to web content. Each website can be configured
to point to various sets of information located on the web server or
extended via SharePoint to be unique SharePoint web applications.
Utilizing unique web
applications with SharePoint can help to further scale the functionality
of an environment, allowing the flexibility to grant access to
SharePoint using Secure Sockets Layer (SSL) encryption, or across
different ports. In addition, deploying multiple virtual servers enables
the use of multiple host headers for a SharePoint organization, such as
sharepoint.companyabc.com, docs.companyabc.com, info.companyabc.com,
sp.organizationa.com, and so on.