Best Practice SharePoint Architecture


Published on

Slide deck used at the India SharePoint User Groups in Pune, Chennai, and Bangalore, September 2009.

Published in: Education, Technology
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Best Practice SharePoint Architecture

  1. 1. Best Practice SharePoint Farm Architecture<br />Michael Noel<br />Convergent Computing<br />Twitter: @MichaelTNoel<br />
  2. 2. Farm Architecture<br />Virtualised Farm Architecture<br />High Availability Design<br />Logical Architecture<br />Hardware and Software<br />SharePoint Installation<br />Kerberos Authentication<br />Session Agenda<br />
  3. 3. Farm Architecture<br />Best Practice SharePoint Designs<br />
  4. 4. Farm ArchitectureAll-in-one Server<br />All Roles and SQL on one server<br />Often seen in small farms<br />SQL contention with SharePoint<br />Easy to deploy, but not best practice<br />No ability for test environment<br />NOTE: Do not use SQL Express in Production!<br />
  5. 5. Farm ArchitectureDedicated SQL Database Server<br />Dedicated SQL Server<br />All SharePoint roles on single box<br />Less Disk IO<br />Greater Performance<br />Still no test environment…<br />
  6. 6. Farm ArchitectureSmallest Highly Available Farm<br />2 Web/Query/Application /Central Admin/Inbound Email Servers<br />1 Dedicated Index Server (With Web role to allow it to crawl content)<br />2 SQL Standard Edition Cluster Nodes (Active/Passive) – Mirror also option<br />Smallest highly available farm<br />
  7. 7. Farm ArchitectureScalability<br />Scale up and Scale out…<br />
  8. 8. Virtualised Farm Architecture<br />Less Hardware, less cost…<br />
  9. 9. Virtualised Farm ArchitectureEasy and Supported<br />Microsoft Hyper-V (R2 recommended) or Vmware ESX supported (KB 897615)<br />Great Windows Licensing Options (Ent = 4 licenses, Datacenter = unlimited)<br />Allows for multiple farms, more servers<br />Less cost, more failover options (Live Migration / Vmotion)<br />Do not overcommit resources!<br />
  10. 10. Virtualised Farm ArchitectureCost Effective Farm / No HA<br /><ul><li>Allows organisations that wouldn’t normally be able to have a test environment to run one
  11. 11. Allows for separation of the database role onto a dedicated server
  12. 12. Can be easily scaled out in the future</li></li></ul><li>Virtualised Farm ArchitectureFully Redundant Farm with only Two Servers<br /><ul><li>High-Availability across Hosts
  13. 13. All components virtualised
  14. 14. Uses only two Windows Ent Edition Licenses</li></li></ul><li>Virtualised Farm ArchitectureBest Practise, Highly Available and Scalable Farm<br /><ul><li>Highest transaction servers are physical
  15. 15. Multiple farm support, with DBs for all farms on the SQL cluster
  16. 16. Only five physical servers total, but high performance</li></li></ul><li>Virtualised Farm ArchitectureVirtualisation Scalability<br />
  17. 17. High Availability Architecture<br />Network Load Balancing and SQL Database Mirroring<br />
  18. 18. High Availability ArchitectureNetwork Load Balancing<br />Hardware Based Load Balancing is Best<br />F5<br />Cisco Content Switch<br />Citrix Netscaler<br />Windows Network Load Balancing Supported<br />Unicast – Use two NICs<br />Multicast – Requires Router Support<br />
  19. 19. High Availability Architecture Network Load Balancing - Sample<br />Web Role Servers<br /> ( – Web Role Server #1<br /> ( – Web Role Server #2<br />Clustered VIPs shared between SP1 and SP2 (Create A records in DNS)<br /> ( - Cluster<br /> ( – SP Central Admin <br /> ( – SSP<br /> ( – Inbound Email <br /> ( – Main SP Web App <br /> ( – My Sites<br />
  20. 20. High Availability ArchitectureSQL Database Mirroring<br />Available in SQL Server 2005/2008, both Standard and Enterprise Mirroring<br />Keep a full copy of Database on another server<br />Asynchronous (good for WAN scenarios, Enterprise edition only) or Synchronous<br />
  21. 21. High Availability Architecture Database Mirroring – Single Site Option<br />Single Site<br />Synchronous Replication<br />Uses a SQL Witness Server to Failover Automatically<br />Mirror all SharePoint DBs in the Farm<br />Use a SQL Alias to switch to Mirror Instance<br />
  22. 22. High Availability Architecture Database Mirroring – Cross Site HA Mirroring Option<br />Two Sites<br />1 ms Latency<br />1GB Bandwidth<br />Farm Servers in each location<br />Auto Failover<br />
  23. 23. High Availability Architecture Database Mirroring – Warm Farm Asynchronous Option<br />Two Sites<br />Two Farms (one warm farm)<br />Mirror only Content DBs<br />Failover is Manual<br />Must Reattach DBs<br />Must re-index<br />
  24. 24. Logical Architecture<br />Do it right the first time…<br />
  25. 25. Logical ArchitectureWeb Application Architecture<br />Consider creating multiple Web Apps<br />Example:<br /><br /><br /><br /><br />Flexible and scalable!<br />
  26. 26. Logical ArchitectureDistribute by Default<br />Distribute content across multiple Site Collections<br />Distribute Site Collections Across Multiple DBs<br />Multiple databases = more controlled DB growth<br />Try to keep your Content DBs manageable in size (50-100GB)<br />
  27. 27. Logical ArchitectureSample Logical Architecture<br />
  28. 28. Hardware and Software<br />Determining the right tools for the job<br />
  29. 29. Hardware and SoftwareDisk, Memory, and Processor<br />SQL Databases Require large amounts of space!<br />Allocate Disk Space for Index and Query Servers as well<br />Index corpus can grow to 5%-20% of total size of data indexed<br />Database and Index Servers require most RAM (4GB, 8GB, or more)<br />Multi-core processors recommended<br />
  30. 30. Hardware and SoftwareWindows Server Versions<br />Windows Server 2008 R2 (or RTM) highly recommended!<br />Critical that new servers run x64, required for SharePoint 2010<br />SharePoint servers are fine with Standard edition of Windows, no extra gain for Enterprise<br />SQL Servers may require Enterprise edition if using SQL Enterprise<br />
  31. 31. Hardware and SoftwareSQL Server Versions<br />SQL Server 2008 Recommended<br />64 bit also highly recommended (required for SharePoint 2010)<br />SQL Server 2005 still supported<br />SQL 2000 supported for Sharepoint 2007, but not for 2010, and not recommended<br />Separate SQL Reporting Services server may be required for intensive reporting<br />Standard edition of SQL generally fine, except for very large environments<br />
  32. 32. SharePoint Installation<br />Getting the steps right<br />
  33. 33. SharePoint InstallationService Accounts<br />Never use a single service account!<br />Create the Following Accounts<br />SQL Admin Account<br />Installation Account<br />SharePoint Farm Admin<br />Search Admin<br />Default Content Access Account<br />Application Pool Identity Accounts<br />
  34. 34. SharePoint InstallationInstallation Process<br />Choose ‘Complete’ Installation<br />Do not select ‘Stand-alone’ for a Production environment!<br />
  35. 35. SharePoint InstallationInstallation Process<br />Choose Index Location during Install<br />Index location can be changed later, but more difficult<br />
  36. 36. SharePoint InstallationCommand-line Installation of SharePoint<br />Learn to install from Command-line<br />Only way to specify SPCA Database Name<br />SETUP, PSCONFIG and STSADM<br />PSConfig is your friend!<br />Powershellis the future here…<br />
  37. 37. SharePoint InstallationRunning the Config Wizard to Install Servers<br />Consider PSConfig<br />Use Easy to remember port for SPCA (i.e. 8888)<br />Better still, change SPCA to 443 later<br />Use Common Database Naming Convention<br />Account running wizard needs DBCreatorand Security Admin rights on SQL Server<br />Run the wizard on additional servers as necessary<br />
  38. 38. SharePoint InstallationCreate a SQL and/or DNS Alias!<br />Most flexible approach!<br /> = sql1<br />
  39. 39. Kerberos Authentication<br />Security, Security, Security<br />
  40. 40. Kerberos AuthenticationEnable for Best Practise Security!<br />Use Kerberos when creating Web Apps<br />Extra steps required, but worth it…<br />
  41. 41. Kerberos AuthenticationStep 1: Create SPNs for Web Apps<br />Create Service Principle Names (SPNs)<br />Used for impersonation<br />
  42. 42. Kerberos AuthenticationStep 2: Create SPNs for SQL<br />Create SPNs for SQL<br />Syntax similar to following:<br />Setspn.exe -A MSSQLSvc/spsql:1433 COMPANYABCSRV-SQL-DB<br />Setspn.exe –A MSSQLSvc/ COMPANYABCSRV-SQL-DB<br />MSSQLSvc = Default instance, if named instance, specify the name instead<br />In this example, SRV-SQL-DB is the SQL Admin account<br />
  43. 43. Kerberos AuthenticationStep 3: Allow App Pool accounts and SP Computers to Delegate<br />Use ADUC<br />SharePoint Web Server Computer Accounts<br />App Pool Identity Accounts<br />
  44. 44. Kerberos AuthenticationStep 4: Edit Applicationhost.config<br />Windows Server 2008 only<br />Modify the ApplicationHost.config file<br />&lt;windowsAuthenticationenabled=&quot;true&quot; useKernelMode=&quot;true&quot; useAppPoolCredentials=&quot;true&quot;&gt;<br />
  45. 45. Kerberos AuthenticationStep 5: Enable Kerberos on Web App<br />Enable Kerberos on the Web App (if not already turned on)<br />Go to Application Management – Authentication Providers<br />Choose the appropriate Web Application<br />Click on the link for ‘Default’ under Zone<br />Change to Integrated Windows Authentication - Kerberos (Negotiate)<br />Run iisreset /noforce from the command prompt<br />
  46. 46. Key Takeaways<br />Highly consider Virtualization for SharePoint<br />Create a test farm!<br />Consider Database Mirroring and/or NLB for SharePoint HA<br />Deploy the ‘five server farm’ for full High Availability<br />Plan today for SharePoint 2010 (more on this in the next session!)<br />Enable Kerberos Authentication<br />
  47. 47. For More Information<br />Speaker Books<br />(<br />SharePoint Database Mirroring Whitepaper<br />(<br />Database Mirroring Failover Case Study<br />( <br />Microsoft ‘Virtualizing SharePoint Infrastructure’ Whitepaper ( <br />SharePoint Log Shipping Whitepaper<br />( <br />
  48. 48. Thanks for having me in Pune!Questions?<br />Michael Noel<br />Twitter: @MichaelTNoel<br /><br />