In addition to the logical structure of SharePoint, which can be scaled out, SharePoint includes the ability to physically spread data and content across multiple servers. This is one of the principal design changes implemented since the first versions of SharePoint, which did not scale very well beyond a single server. The concept of the SharePoint farm subsequently allows for a much greater range of flexibility and scalability of an environment because services and databases can be distributed. Defining Farm Server ComponentsSharePoint Farms consist of two, three, four, or more servers sharing a common configuration database. A farm provides for the distribution of processing and application power across multiple machines, in addition to providing a limited degree of additional redundancy into an environment. Each SharePoint server installed into a SharePoint farm takes on specific sets of roles in that environment. The roles for SharePoint servers in a farm are as follows:
NOTE A single server can perform more than one of the roles listed in a SharePoint farm. It is, in fact, more common for multiple roles to be performed on specific servers than to have dedicated servers for each task. As an organization's requirements from SharePoint scale beyond the capabilities of a single server, additional servers added into a farm become a necessity. Understanding how those servers can be designed and scaled properly into an environment is key. Utilizing Shared Services Across SharePoint FarmsSharePoint scalability does not end at the farm level. On the contrary, SharePoint's capability to extend its resources to large deployments is supported with the concept of Shared Services. Shared Services is the capability to share specific functionality across multiple SharePoint farms. For example, search capability can be extended across more than one SharePoint farm utilizing the Shared Services model. Although individual items cannot be shared using this approach, the following items can be:
Several limitations exist for deploying SharePoint using the Shared Services approach, however. The following are limitations of using this model:
For the largest of SharePoint deployments, Shared Services allows a degree of scalability beyond the server farm itself, allowing for the sharing of resources between multiple SharePoint environments. Designing a Small SharePoint FarmMany SharePoint environments operate efficiently on the resources of a single server. For organizations that have outgrown that functionality, or that desire to segregate certain components onto different servers, distribution of SharePoint components into a SharePoint farm becomes a reality. The base level of SharePoint farm functionality involves the creation of a pair of servers, as illustrated in Figure 22.3. The first server, known as a front-end server, runs the Web, Index, Job, and Search components of SharePoint, but doesn't store SharePoint data itself. Figure 22.3. Designing a small SharePoint farm.The second server in the farm houses the SharePoint SQL database components and is dedicated to this task. This server can either be a new database server or an existing SQL database server with SharePoint databases running on it. Designing a Medium-Sized SharePoint FarmIn larger and more complex environments, the need to scale out a SharePoint farm into more components becomes a reality. Many users accessing the data can tax the web services capabilities of a single front-end server, which necessitates the creation of multiple servers, as illustrated in Figure 22.4. Figure 22.4. Designing a medium-sized SharePoint farm.The two front-end servers in this example run with the Web and Search components enabled. Network load balancing is used to distribute the load of users in the farm. In addition, a dedicated job and index server is used to offload those functions. Finally, two database servers are used to house the content databases for the farm. Designing a Large SharePoint FarmFor the largest organizations, SharePoint is scalable to allow access to hundreds of thousands, or potentially millions or users. By deploying many load-balanced, front-end servers, dedicated search and index servers, and clustered SQL Server 2000 database servers, a lot of redundancy and scalability can be built into a SharePoint deployment. In the example illustrated in Figure 22.5, eight front-end web servers are load balanced using Microsoft's NLB service. Two dedicated search servers (a farm should not have more than four) provide dedicated access to search capabilities for the portal. Two index management servers (also no more than four deployed), one running the Job component, provide for dedicated indexing capabilities. Finally, two sets of a four-node Active/Passive cluster environment provide access to the SharePoint databases. This example is just one of many options but illustrates a typical best-practice large SharePoint farm environment. Figure 22.5. Designing a large SharePoint farm. |