Designing SharePoint solutions – Big Decisions for Big Success
-
Upload
spc-adriatics -
Category
Technology
-
view
1.419 -
download
1
Transcript of 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
sponsors
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
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
Agenda• Designing SharePoint Farm• Installing SharePoint Farm• Maintaining SharePoint Farm• Planning SharePoint Solutions• Developing SharePoint Solutions• Deploying SharePoint Solutions
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.
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
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.
Production
InternetFarm
Multiple SharePoint Farmstrough product lifecycle
Development Farm
Development Farm
StagingFarm
TestFarm
Production
Farm
ProductionIntranet
Farm (STD)
ProductionIntranet
Farm (ENT)
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
Database names problem
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
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
Maintaining SharePoint Farm• Service Level Agreement• Availability• Maintenance windows• Backups
• SharePoint Backups• PowerShell• 3rd Party tools
• SQL database backups• ULS Logs
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%
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
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
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
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
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
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
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.
questions?HTTP://MKDOT.NET/BLOGS/DARKO
@DARKOMILEVSKI
thank you.
SHAREPOINT AND PROJECT CONFERENCE ADRIATICS ZAGREB, 11/28/2012