After years of helping organizations around the world to deploy and implement SharePoint, Dan Holme has found that there are certain pain points that almost everyone encounters. Some are confusing concepts. Some are unfortunate decisions made based on misunderstanding Microsoft’s UI or documentation. Some are due to unnecessarily complex terminology. And some because there are things we might think that SharePoint should do, but can’t. In this session, Dan will share the most common and problematic scenarios, and their solutions, with the goal of saving you pain, time, and money. Think of this session as “Lessons Learned,” “Best Practices,” or “From the Field” on steroids. Whether you’re new to SharePoint or a seasoned veteran, in this grab-bag session there will be treasures for you!
MDOPhttp://blogs.technet.com/b/lukeb/archive/2011/09/08/sharepoint-maxdop-1.aspxhttp://technet.microsoft.com/en-us/library/cc298801.aspx#Section6_3 (applies to 2013 as well)http://technet.microsoft.com/en-us/library/ee805948(office.15).aspxhttp://blogs.msdn.com/b/grahamk/archive/2009/06/15/troubleshooting-sql-server-deadlocks-and-performance-when-running-sharepoint.aspxhttp://technet.microsoft.com/en-us/library/ms189094.aspxhttp://technet.microsoft.com/en-us/library/ms188611.aspx
TCP/IP v Named Pipes
Discuss the challenges of RTM guidance: what was “guidance” and what was “support”?CONDITIONS APPLYContent databases of up to 4 TB are supported when the following requirements are met:Disk sub-system performance:0.25 IOPs per GB minimum2.00 IOPs per GB recommended for optimal performanceTTFB of 20msArchitecture and tools must support performance expectations, future capacity, backup, restore, high availability, disaster recoveryDiscussion: Does anyone have more than a terabyte of data in their farm? Does anyone have a database larger than 200GB? Are there any negative performance impacts? Does anyone have 2GB / 1GB / 500MB files stored in SharePoint? How do they perform? How fast is your SharePoint farm growing? If you haven’t deployed SharePoint, how do you know how much storage you’ll need?
Out of the box, RBS monitors for file uploads into SharePoint and checks the file size. If it’s over a certain configurable threshold, the upload will be split apart:The metadata goes to the databaseThe file goes to a file shareThe end user never knows the difference. All normal SharePoint features (site quotas, workflows, etc) still apply to the content.
? Distributed Cache across farms
Transcript of "50 Shades of SharePoint: SharePoint 2013 Insanity Demystified"
Dan Holmedanholme http://tiny.cc/danholmepresentations firstname.lastname@example.org
About This SessionAddress important, hot topicsThat might not get “air time” at the eventWhat is underdocumented, misdocumented, conflicting, confusing or downright strange?What about “on premise” SharePoint 2013?Provide clarity and balanceAnswer your questionsWhat do I need to know to be successful?What are the best practices, tips and tricks?What problems and mistakes can I avoid?
StorageSQL Server 2012Prerequisite Installer installs the SQL 2008 R2 SP1 Native Client on SharePoint servers – That’s OK!SQL Server 2008 R2 SP1There are differences!Business IntelligenceAccess Services
Max Degrees of ParallelismSQL resource utilizationCoresQueriesDefault is 0SharePoint 2010: Should be set to 1Is your SQL Server configured correctly now?SharePoint 2013: RequiredSharePoint Products Configuration Wizard (PSCONFIG / PSCONFIGUI) fails if MDOP is 0
Script max degrees of parallelismPowerShell scriptRun As Administrator. Set-ExecutionPolicy to allow local script (e.g. RemoteSigned).#### Set MDOP to 1Import-Module "sqlps" -DisableNameChecking$sql = "EXEC sys.sp_configure Nshow advanced options, N1 RECONFIGURE WITHOVERRIDEGOEXEC sys.sp_configure Nmax degree of parallelism, N1GORECONFIGURE WITH OVERRIDEGOEXEC sys.sp_configure Nshow advanced options, N0 RECONFIGURE WITH OVERRIDEGO" [-ServerInstance “SERVERinstance“]
SQL aliasSQL AliasSQLSERVER01.contoso.com = NYSQL05.contoso.com today = NYSQLCLUSTER.contoso.com tomorrow = NYSQLCLUSTER.newcompany.com next yearConfigure a SQL aliasCLICONFG.exe on each SharePoint server in the farmDo not “Fake it out” with a DNS recordKerberosConsider “tiers” of aliases to support SQL scalingContent Databases: SQLSPCONTENTSearch Databases: SQLSPSEARCHService Application Databases: SQLSPSERVICES
RBS Metadata RBS Upload Database User Web Server Disk Storage
Advantages of BLOB externalizationStorage costPerformancePerformance of read or write of one file “<256 KB” “Small” files faster in SQL “>1 MB” “Large” files faster in BLOB store Tipping point varies based access pattern (read, read frequently, write) But all of this is artificial for most scenariosPerformance of the entire system in a real world workload “<80 KB” Externalizing all BLOBs or all but extremely small BLOBs boosts performance Microsoft white paper: 25% performance improvement My experience and AvePoint / Dell testing: significant improvementAccess to features of the underlying storageplatform
Should I externalize BLOBs?VariablesWorkloadStorage platformRBS providerManageability: how you manage the BLOB store (backup, HA, DR)Test it!But the odds are good that, storage performance equal,you will improve performance and reduce costFILESTREAMThird PartiesPerformanceBusiness rulesManageability
Shredded StorageOffice documentsClient sends updates SharePoint SQLSQL shreds the updated versionUpdate of document library metadata does not generate additional shredsNon-Office documentsClient sends full file SharePoint SQLGet shredded as wellUpdate of document library metadata might generate additional shreds
Shredded Storage RealityReduces I/O between web server and SQL serverFor Office document formatsReduces storage of Office document versionsAchieves something like “de-duplication” or “differential versioning” of document versionsUpdated document versions show reduced storage footprintUpdating document library metadata only (and not the document) does not generate new shredsDoes not reduce storage in other Office docscenariosSame document stored in more than one locationNon-Office document formats may not benefit at allTotal storage suggests that de-duplication is inefficient or ineffectiveUpdating document library metadata might generate additional shreds
Shredded Storage ConsiderationsShreds on new/modified document, not on upgradeCannot currently be turned offFileWriteChunkSize set large an option, but not yet supportedOverall system performance may be degraded
Shredded Storage + RBSReal-time RBS receives each shred as separateBLOBSharePoint 2010: entire file is one BLOBPerformance of RBS with small files is suboptimalShredding is document scopedShredding reduces storage footprint across versions of one documentDoes not reduce storage footprint of same document saved in more than one locationShredding is software basedSAN value-add: bit-level differencingStorage scopedHardware based
Storage Tentative GuidanceUse RBSAlmost certainly a “no brainer” for collaboration scenarios Reduced cost Increased performance Tiered storage managementConsider non-collaboration scenarios: RBS might not be a “no-brainer” Intranet: small pages, read-mostly, read-often Search: RBS will increase search crawl time. Configure additional crawlers as a solutionAcquire a third-party solution that manages storage: both RBS and backup/restore and archivingConsider disabling shredded storageUnless “double read penalty” is significant [unlikely]Set FileWriteChunkSize large [confirm support from MS]Use hardware (SAN) based de-duplication
ArchivingMove to different location, keep in SharePointUI: Send To Another LocationWorkflowPowerShellMove to different storage tier, keep in SharePointThird-party RBS toolsMove out of SharePoint entirelyPowerShellThird-Party Tools
What is a SharePoint App?An extension of SharePoint capabilities“Self-contained pieces of functionality that extend the capabilities of a SharePoint website” – MSDN (bit.ly/MFDnI9)with a UI surfaced in SharePointApp can appear full screen (immersive) or through an IFrameDeclarative changes to SharePoint UI to support the applicationwith code running elsewhereNo custom server-side code running on SharePointCan contain some declarative SharePoint artifactsthat uses CSOM or REST (OData) to interact withSharePointRemote event receiversinstalled by usersThrough the SharePoint Store or App Catalog
App modelsModel Office 365 Permissions On-Prem PermissionsSharePoint HostedSandbox YES YESFull Trust NO YESCloud-HostedProvider Hosted YES OAuth via ACS YES High-Trust (S2S)• Developer hosts app• Could be in AzureAuto-Hosted YES OAuth via ACS NO• App can deploy website and SQL Azure db• Hosted in Office 365 Azure Cloud
Compare customization models Full trust WSP Sandboxed WSP AppsWhere does server-side code run? Farm (w3wp.exe) Farm (User Code Service) Anywhere but farmScalable Based on farm Limited HighlyWho installs and removes Farm admin Site collection admin UsersSupported in SP2013 Yes Yes YesSharePoint Online compatible No Yes YesAuto-hosting compatible No No YesRequires local farm for developers Yes Yes NoRemote deployment and No No Yesdebugging from Visual Studio
Challenges with WSP solutionsFull-trust solutionsPerformance and stability concernsIncompatible with SharePoint OnlineSandboxed solutionsClunky architecture, too limitingRequires administrative deployment and supportLifecycle managementUpgrade, decommissionSteep learning curveNot cloud readyScalabilityMulti-tenant aware
Benefits of the new app model • Familiar app concepts & components • Find apps in SharePoint Store or app catalog • Self-service provision, upgrade and delete Info Workers • Leverage existing knowledge & expertise • Manage application lifecycle independently of platform • Revenue potential of SharePoint Store Developers • Govern the visibility and availability of applications • Manage service independently of applications • Customizations pose virtually no risk to service IT Managers
MindsetApps for SharePoint are like apps for phonesUser drivenIndependent of the underlying platformOften, consuming or exposing external services and content
Functional ChallengesApps have to be completely self-containedApps can not depend on other AppsApps can not depend on custom farm solutionsUsers have to add apps to their sitesApps can not be added to web templatesApps can not be pushed using CSOMGovernance controlsCorporate app catalogSharePoint Store vs. App CatalogProvision vs. requestManagement challenges
App DomainApps require their own App DomainEach App runs in its own sub domain of the App DomainSharePoint-hosted apps are deployed to a sub site that runs in a different domainApp URLs can not resolve to host-header webapplicationsCreate a non-host header web application on the same portUse Host Named Site Collections
Apps and InfrastructureDNSApp Domain: contosoapps.com Not a “sub-domain”, e.g. apps.contoso.comWildcard DNS entry to IP address of SharePoint web serverSharePoint web app & IIS site bound to IP address No host headerHost named site collectionsSSLWildcard SSL certificate
AuthenticationClaimsNow the default for new web applications: PowerShell used to create classic mode web appsRequired for new features like AppsImprovements to claimsRough edges with other components smoothed outMigration of web apps easier and (in the end) requiredKerberosWindows Claims still uses NTLM or Negotiate (Kerberos) authentication providersKerberos still recommended for securityKerberos still required for pass-through authenticationOAuth 2.0SAML claims limitations (ADFS 2.0)
ProfilesSharePoint is part of identity managementPoor Active Directory health is contagious Unskilled or unknowledgeable management External (outsourced) management of directory services Organic growth of domainsUser Profile service applicationIncreasingly important to have a UPA populated with core attributesMassive dependencies on profile dataNew user profile data optionsSynch (SP 2010 style)Import (SP 2007 style)User Profile Replication Engine (UPRE)
Network InfrastructureDistributed cacheNo longer necessary to configure session stickiness on load balancersRequest ManagementRoute requests based on rules and healthDNSApp Domain: contosoapps.com Not a “sub-domain”, e.g. apps.contoso.comWildcard DNS entry to IP address of SharePoint web server: *.contosoapps.com 10.0.0.51 (SP farm)SharePoint web app & IIS site bound to IP address (10.0.0.51) No host header
Network SecuritySSLWildcard SSL certificate: *.contosoapps.comReverse Proxy (Forefront UAG)Get the real story
Geo-distributed availability Stretched farm Smart branding and optimization Todd Baginski’s article on sharepointpromag.com Celina Baginski’s work with Planet Technologies Content decisions Network acceleration: compression and caching Remote farms Remote processing: Office Web Apps, Remote Desktop Services
Identify and root out bad practicesWide listsLarge queriesPoor indexing (list and library columns)Security gone wildUnderstand (and reign in) current environment before enabling 2013-style sharingAAMsMove to host-header site collections