large-scale sharepoint architecture

48
Large-scale SharePoint Architecture Eli Robillard [email protected] Twitter: @erobillard November 2011

Upload: zander

Post on 09-Feb-2016

53 views

Category:

Documents


0 download

DESCRIPTION

Large-scale SharePoint Architecture. Eli Robillard [email protected] Twitter: @ erobillard November 2011. Thanks to our sponsors!. Agenda for this hour. The process, language and patterns of architectural design. Principals of sound architecture - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Large-scale  SharePoint  Architecture

Large-scale SharePoint Architecture Eli Robillard

[email protected]: @erobillard

November 2011

Page 2: Large-scale  SharePoint  Architecture

THANKS TO OUR SPONSORS!

Page 3: Large-scale  SharePoint  Architecture

Agenda for this hour• The process, language and patterns

of architectural design. • Principals of sound architecture • Perspectives of SharePoint

architecture • Large-scale considerations

Page 4: Large-scale  SharePoint  Architecture

The Design Process

“The usual problem with process improvement is not having one to

begin with.”

Page 5: Large-scale  SharePoint  Architecture

The Design Process1. Define the elements. 2. Organise the elements into

entities. 3. Among the entities, identify the

relationships.4. Describe the processes that give

the system life.

Page 6: Large-scale  SharePoint  Architecture

Shared Language

Page 7: Large-scale  SharePoint  Architecture

Design Patterns• Christopher Alexander

– A Pattern Language, 1979

• Gang of Four– Design Patterns: Elements of Reusable

Object-Oriented Software, 1994

Page 8: Large-scale  SharePoint  Architecture

Change“The only constant is change.” –

Heraclitus

Good architects plan for day 1. Great architects plan for every day after that.

Page 9: Large-scale  SharePoint  Architecture

Principals of Sound Architecture

Have a process and get crisp on scope.

Express solutions in a shared language.

Identify and reuse design patterns.

Plan for change.

Introducing the worst acronym ever: SCLAPACH

Scope Language Patterns Change

Page 10: Large-scale  SharePoint  Architecture

Out-of-scopeBusiness value

“Feature <x> will be delivered in release <y>.”

Page 11: Large-scale  SharePoint  Architecture

Architectural StackGovernance :

Logical :

Physical :

Information :

Solution :

Team

Platform, farms, services and integration

Servers, networks and communications

Taxonomies and navigation

Applications

Page 12: Large-scale  SharePoint  Architecture

Architectural Stack

Page 13: Large-scale  SharePoint  Architecture

GovernanceGovernance is the architecture of the

team.

For every what, have a who and be sure who knows why.

Scope Language Patterns Change

Page 14: Large-scale  SharePoint  Architecture

Governance

Development : Integration :

Deployment :Test :

Operations :Training:

Marketing:

Write and compile code Assemble and document the package Install and configure the release UAT design, QA and load testing Monitor and maintain the platform Provide training and manuals Explain benefits, drive adoption

Teams and Tasks

Page 15: Large-scale  SharePoint  Architecture

Governance

Demo

Scope Language Patterns Change

Page 16: Large-scale  SharePoint  Architecture

Governance• Recommendations:

– Plan teams like server farms; think of roles as capabilities or services; decompose them until they can scale.

– People can wear multiple hats when it presents no conflict of interest.

Page 17: Large-scale  SharePoint  Architecture

Logical ArchitectureScope: Farms, zones, authentication,

application pools, web applications, site collections, service applications, external services.

Scope Language Patterns Change

Page 18: Large-scale  SharePoint  Architecture

Logical Architecture

Demo

Scope Language Patterns Change

Page 19: Large-scale  SharePoint  Architecture

Logical ArchitectureNew recommended limits: • 200 GB per Content DB • 4 TB supported limit for all use

cases• >4TB supported by Record Center

and Document Center

Scope Language Patterns Change

Page 20: Large-scale  SharePoint  Architecture

Physical ArchitectureScope: Servers (farm composition),

load-balancing, firewalls and port configuration, authentication providers, availability and failover.

Scope Language Patterns Change

Page 21: Large-scale  SharePoint  Architecture

Physical Architecture

Demo

Scope Language Patterns Change

Page 22: Large-scale  SharePoint  Architecture

Physical ArchitectureRecommendations:• Plan for full automation• Cookie-cutter provisioning

everywhere

Scope Language Patterns Change

Page 23: Large-scale  SharePoint  Architecture

Information Architecture

Scope Language Patterns Change

Page 24: Large-scale  SharePoint  Architecture

Information Architecture

Demo

Scope Language Patterns Change

Page 25: Large-scale  SharePoint  Architecture

Information ArchitectureRecommendations:• Create empty top-level content types

that inherit from Item and Document • Build for discovery • Keep taxonomies simple

Page 26: Large-scale  SharePoint  Architecture

Solution ArchitectureCommon problems:• How are solutions versioned?

– How do I deploy globally? – How is content upgraded?

• What is a SharePoint application? – Solution package payload – Features or sets of features – Site Template

Page 27: Large-scale  SharePoint  Architecture

Solution Architecture• Understand the solutions being

hosted– Make knowledge transfer part of change management

• Know:– What patch levels are expected? – Where is the payload going?

• GAC, BIN, 14 hive, SP Sandbox, Galleries, elsewhere? – Does it use elevated privileges? – How do I monitor and trouble-shoot?

Page 28: Large-scale  SharePoint  Architecture

Solution Architecture• Profile your content and applications

– Co-locate compatible solutions – Profile according to:

• SLA: Service windows and usage patterns • Users: zones and authentication • Corpus: Size, shape and growth of content • Physical isolation requirements • Feature availability vs. isolation

Page 29: Large-scale  SharePoint  Architecture
Page 30: Large-scale  SharePoint  Architecture
Page 31: Large-scale  SharePoint  Architecture

Client API: May be Javascript or JQuery clients for web services.

Service Layer: Web services, a service bus, or other protocols used to communicate across application domains.

Business Logic: Organizes raw data and relationships into concrete entities, with methods to allow interop among entities.

Data Access: Stored procedures or primitive classes to implement business rules, validation and security.

Data store: Relational, hierarchical or flat-file data.

Data Access ModelClient API or SharePoint BCS

Service Layer

Business Logic and/or Data

Access

Data Store

Page 32: Large-scale  SharePoint  Architecture

Solution Architecture• Insist on an n-tier architecture

– Data: .NET Provider model – Logic: .NET Define common business

entities – Presentation: Consider as an SDK

• Take a layered approach to building and provisioning application components

Page 33: Large-scale  SharePoint  Architecture

Where should these be documented?• Physical vs. virtual servers • My Sites • Service accounts • Disaster recovery environment

Page 34: Large-scale  SharePoint  Architecture

Rules of thumb“If it’s worth doing, it’s worth overdoing.” -

ER

“The problem with doing something right the first time is that no one will appreciate how difficult it was.” –Walt West

“Whatever you are, be a good one.” – Abe Lincoln

Page 35: Large-scale  SharePoint  Architecture

Thank-you! Please complete your evaluations to enter in the prize drawing.

Page 36: Large-scale  SharePoint  Architecture

References• Software Release Management Best Practices,

Kevin A. Lee, [Link].

Page 37: Large-scale  SharePoint  Architecture

Large-scale SharePoint Infrastructure

Eli Robillard [email protected]

Page 38: Large-scale  SharePoint  Architecture

Large-scale considerations• Patch management• Database scaling • Caching• Latency • Multi-lingual

Page 39: Large-scale  SharePoint  Architecture

Patch management issues• When content farms are patched

before service farms • Applications rely on patches • Manual vs. scripted processes

Page 40: Large-scale  SharePoint  Architecture

Patch management• Take a top-down approach to

upgrades • Decide between shared and central

ownership of the process • Track all regional upgrades and

associated tickets centrally • Consider your DB upgrades

(PSConfig)

Page 41: Large-scale  SharePoint  Architecture

Database scaling issues• Effects of long running operations

– Indexing, backup, profile imports, etc.

• Inability to scale onto new hardware – The single instance effect

Page 42: Large-scale  SharePoint  Architecture

Database scaling• Separate spindles for:

– OS, server logs (RAID 10 or 1), tempdb (RAID 10), SharePoint databases (RAID 10 or 5)

• Separate tempdb data files per CPU• Separate instances for:

– Content DBs, SP Analytics and Config DBs

• Change the default autogrowth setting

Page 43: Large-scale  SharePoint  Architecture

Caching• ASP.NET Page output cache• SharePoint object cache• BLOB cache• Content distribution networks (CDNs)

Page 44: Large-scale  SharePoint  Architecture

When you don’t use the object cache. . .

Page 45: Large-scale  SharePoint  Architecture

When you don’t use the object cache. . .

• What went wrong?– The hero control (which was implemented as a

Sandboxed Solution) was using the non-cached SharePoint API, instead of the cached API.

– The site was launched, and as soon as it got real load, the Sandboxed Solution throttling system (correctly) stopped executing the control.Good Publishing.CrossListQueryCache.GetSiteData (SPWeb, SPSiteDataQuery)

Bad SPList.GetItems(SPQuery)

Page 46: Large-scale  SharePoint  Architecture

Dealing with Latency• IIS Compression • WAN Acceleration • Remote terminals

Page 47: Large-scale  SharePoint  Architecture

Multi-lingual considerations• Configure variations sooner than

later and consider on-demand page propagation.

• If you baseline at SP1 plus either the August or October CU, language packs no longer need to be installed separately.

Page 48: Large-scale  SharePoint  Architecture

References• SPC382: Scaling SharePoint Records Centers to

Terabytes and Beyond, Russ Houberg, SharePoint Conference 2011.

• SPC 311: Best Practices for Building your Website for Scale with SharePoint 2010, Ethan Gur-esh , SharePoint Conference 2011.