24
SHAREPOINT AND PROJECT CONFERENCE ADRIATICS ZAGREB, 11/28/2012 Designing SharePoint solutions Big Decisions for Big Success DARKO MILEVSKI, NEXTSENSE

Designing SharePoint solutions – Big Decisions for Big Success

Embed Size (px)

Citation preview

Page 1: Designing SharePoint solutions – Big Decisions for Big Success

SHAREPOINT AND PROJECT CONFERENCE ADRIATICS ZAGREB, 11/28/2012

Designing SharePoint solutionsBig Decisions for Big Success

DARKO MILEVSKI, NEXTSENSE

Page 2: Designing SharePoint solutions – Big Decisions for Big Success

sponsors

Page 3: Designing SharePoint solutions – Big Decisions for Big Success

Breaking the “knows everything” stereotype• SharePoint (…, 2010, 2013,…) has become a truly

massive platform that can be thought of as an operating system for Information Workers.

• In this context, it is becoming increasingly difficult for any single individual to know everything about SharePoint.

• Instead, the community of SharePoint professionals is specializing. Some of us are workflow experts, others are web content management experts, still others are focused on data integration.

• Furthermore, it is now impossible to collect all of the end user, administration, and development knowledge for SharePoint into a single resource.Book: Real World SharePoint 2010: Indispensable Experiences

from 22 MVPs

Page 4: Designing SharePoint solutions – Big Decisions for Big Success

PollInfrastructure• SharePoint Farm• Web-Front end server• Application Server• SP Service Applications• SharePoint Web Application• Configuration & Content

Databases• Site Collection

Development• SP Web Pages & Web Parts• Web Services & WCF• SharePoint Object Model• Scripting (JavaScript, jQuery)• Configuration• Logging• Notification

Page 5: Designing SharePoint solutions – Big Decisions for Big Success

Agenda• Designing SharePoint Farm• Installing SharePoint Farm• Maintaining SharePoint Farm• Planning SharePoint Solutions• Developing SharePoint Solutions• Deploying SharePoint Solutions

Page 6: Designing SharePoint solutions – Big Decisions for Big Success

SharePoint Farm Servers

Front-End Web Server

Application Server

Database ServerDatabase Server

Service Applications:Search (Crawl and Query)User ProfilesBusiness Con. Services......

A SharePoint farm is a collection of SharePoint servers (and SQL Servers) that work in concert to provide a set of basic SharePoint services that support a single site.

Page 7: Designing SharePoint solutions – Big Decisions for Big Success

SharePoint Farm Topologies

All roles on one server, including SQL Server

All Web and application server roles

Databases

Limited deployments are typically used for product evaluation, development and testing, or for environments that have limited numbers of users and don͛�t require fault-tolerance.

Up to 10,000 usersEvaluation or <100 users

One-server farm Two-tier farm

Limited deployments (1-2 servers)

Two web servers are predicted to serve 10,000-20,000 users.

Three-server virtualized farm

All SharePoint databases

Host A Host B

Use virtualization to maximize the potential of a smaller number of servers

Web server

All application server roles

Web server

All application server roles

Page 8: Designing SharePoint solutions – Big Decisions for Big Success

SharePoint Farm TopologiesSmallest fault-tolerant farm utilizing virtualization

Host A Host B

All farm server roles virtualized and distributed across two or four host servers (depending on the operating system) to provide fault tolerance using the minimum number of servers.

Web server

All application server roles

Web server

All application server roles

All databases

All databases

Host C Host D

SQL Server installed and configured to support SQL clustering, mirroring, or AlwaysOn. AlwaysOn requires SQL Server 2012.

Windows Server 2008 R2

Host A Host B

Web server

Web server

Web server

Dedicated Web server for crawling

Host E Host F

Host C Host D

Query and index

All other application server roles

Query and index

All other application server roles

Six-server virtualized farm

All databases

All databases

SQL Server installed and configured to support SQL clustering, mirroring, or AlwaysOn across both of the hosts. AlwaysOn requires SQL Server 2012.

Page 9: Designing SharePoint solutions – Big Decisions for Big Success

Production

InternetFarm

Multiple SharePoint Farmstrough product lifecycle

Development Farm

Development Farm

StagingFarm

TestFarm

Production

Farm

ProductionIntranet

Farm (STD)

ProductionIntranet

Farm (ENT)

Page 10: Designing SharePoint solutions – Big Decisions for Big Success

Installing SharePoint Farm• Next -> Next -> Finish experience• Everybody can install SharePoint Server?• Installing SP2010 SP1 (Patches)• Install, Update than Configure• Configuration Wizard vs. PowerShell

• Control all accounts (Least Privileged Accounts installation)• Control Service Applications (which will be installed)• Control Database names

Page 11: Designing SharePoint solutions – Big Decisions for Big Success

Database names problem

Page 12: Designing SharePoint solutions – Big Decisions for Big Success

SQL Database considerations (1)• Database/Storage Configuration

• Recommended database file placement priority (fastest to slowest drive)

• tempdb data and t-log files• Db transaction log files• Search db data files• Content db data files

• Place tempdb, Content and t-logs on separate LUNs• Use multiple data files for big Content and Search dbs

• Distribute equal-sized data files across separate disks• # of data files should be <= # of processor cores• Multiple data files are not supported for other dbs

Reference: What SQL DBAs need to know about SharePoint

Page 13: Designing SharePoint solutions – Big Decisions for Big Success

SQL Database considerations (2)• Database/Storage Sizing

• Limit Content DBs to 100 GB (soft limit)• MS Supported 200GB – General Usage• MS Supported 4TB – 0.25 IOPs per GB + 2 IIOPs per GB• You will easily upgrade

• Size SQL Server data files appropriately• Pre-allocate data file to cover anticipated size of Content db• Set SQL ‘Autogrow’ to fixed value appropriate for size of db• Do not over-autogrow

• Use dedicated database for large Site Collections (> 50GB)• Better: > 20GB

Reference: What SQL DBAs need to know about SharePoint

Page 14: Designing SharePoint solutions – Big Decisions for Big Success

Maintaining SharePoint Farm• Service Level Agreement• Availability• Maintenance windows• Backups

• SharePoint Backups• PowerShell• 3rd Party tools

• SQL database backups• ULS Logs

Page 15: Designing SharePoint solutions – Big Decisions for Big Success

SQL Databases Maintenance• Monitor SQL Server performance regularly• Defragment physical files• Content and Search dbs most susceptible• Rebuild / Reorganize indexes to eliminate fragmentation

• Reorganize index when fragmentation between 10-70%• Rebuild index when fragmentation > 70%

Page 16: Designing SharePoint solutions – Big Decisions for Big Success

Planning SharePoint Solutions• Gathering requirements• Map requirements to features• Carefully consider constraints

• Max content size db• Max items per list / max sub-sites, etc.• One content db per site collection

• Prototyping is not enough• Most of the “Hello world” blogs are not completely true

• Pessimistic SP Logical architecture

Page 17: Designing SharePoint solutions – Big Decisions for Big Success

SharePoint Solution DesignClient (UI) Web Part Page -> Web Part

Almost No Server-Side CodejQuery, Konockouts, JavaScript, Async

(ajax)

Service ASMXWCFREST

Business LayerDomain Objects

(Entities)

Data Provider

(BL)

DAL Implementation (Version Dependent)

SQL DAL SP DALADO .NET

SP OM

DAL Interfaces

(SQL and SP)

ConfigLoggingMassagingLocalization

Page 18: Designing SharePoint solutions – Big Decisions for Big Success

Front-end Development• Which Pages to use?

• Application pages (_layouts)• Web Part Pages (db)

• Custom Web Parts vs Custom Forms• SharePoint Web Controls (pros – cons)

• UI development – Client Side Scripting• JavaScript• jQuery• Knockouts

• Async• Branding: Custom master and CSS

Page 19: Designing SharePoint solutions – Big Decisions for Big Success

Back-End Development• Middle Service Layer

• Avoid implementing logic• Back-end Business Layer

• Entity Classes• Business Logic Services (Adapters/Providers)• Patterns vs Anti-Patterns

• Dependency Injection – data store version independent• Data stores: SharePoint and SQL• Implement Interface, reference current SP Versions

Page 20: Designing SharePoint solutions – Big Decisions for Big Success

Common (Back-end) Development• Config (Storing Configuration values)

• SharePoint List vs Application Settings (web.config)• Configurator caching

• Logging• Log in file (log4net)• ULS (UlsViewer)

• Massaging• Common mailing system• Use SharePoint configured SMTP• Data -> XML -> XSLT -> HTML body

• Localization• Features Localization -> Resource files• Solution Localizations -> Resource files vs Custom

Page 21: Designing SharePoint solutions – Big Decisions for Big Success

Data-Layer Development• Many Items -> use SQL database• Consider SharePoint List query performance• Avoid frequently used complex CAML queries• Organize (structure) sites, sub-sites and Document

Libraries• Distribute files across many site collections if total size

exceeds 100GB• Always consider performance in SP code

Page 22: Designing SharePoint solutions – Big Decisions for Big Success

Deploying SharePoint Solutions• PowerShell – ultimate tool for SP manipulation

• Install• Upgrade• Backup

• Write ps scripts for installation process automation• Mix SP, shell, SQL and other commands• Recreate your development site collections• Deactivate-Activate Features (redeploy)• Recreate your Content Types, Terms, Reindex, etc.

Page 23: Designing SharePoint solutions – Big Decisions for Big Success

questions?HTTP://MKDOT.NET/BLOGS/DARKO

@DARKOMILEVSKI

Page 24: Designing SharePoint solutions – Big Decisions for Big Success

thank you.

SHAREPOINT AND PROJECT CONFERENCE ADRIATICS ZAGREB, 11/28/2012