46
Proven Practices for Application Lifecycle Management with SharePoint Mary Leigh Mackie [email protected] @mlmackie

AvePoint - SharePoint App Lifecycle Mgmnt

Embed Size (px)

DESCRIPTION

This deck was presented at a virtual conferece, with a focus on branding.

Citation preview

Page 1: AvePoint - SharePoint App Lifecycle Mgmnt

Proven Practices for Application Lifecycle

Management with SharePoint

Mary Leigh Mackie

[email protected]

@mlmackie

Page 2: AvePoint - SharePoint App Lifecycle Mgmnt

Session Objectives and Takeaways

• SharePoint Application Lifecycle Management

• Managing and Governing ALM in SharePoint

– Definition and Purpose of Governance

– ALM Governance and Management Challenges

• SharePoint ALM

– Out of the box capabilities

– When to think about additional technology options

• Final Considerations

Page 4: AvePoint - SharePoint App Lifecycle Mgmnt

Application Lifecycle Management Overview

© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means,

without the prior written consent of AvePoint, Inc.

Page 5: AvePoint - SharePoint App Lifecycle Mgmnt

SharePoint is an Application:

Application Lifecycle Management!

Development Testing Staging Production

Design

Front-End

Solutions

Design

Front-End

Solutions

Design

Front-End

Solutions

Design

Front-End

Solutions

Page 6: AvePoint - SharePoint App Lifecycle Mgmnt

Planning for ALM in SharePoint

SharePoint Development IS an IT Project

• Global change management is required for…

– Platform updates and upgrades

– Branding

– Solutions and customizations: 80-20 Rule

– IA restructuring

– Etc…

Source: Microsoft TechNet, MSDN, and blogs

Page 7: AvePoint - SharePoint App Lifecycle Mgmnt

Managing and Governing ALM in

SharePoint

© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means,

without the prior written consent of AvePoint, Inc.

Page 8: AvePoint - SharePoint App Lifecycle Mgmnt

Key Players of Governance

People

Process

Technology

Policy

Page 9: AvePoint - SharePoint App Lifecycle Mgmnt

Governance Spectrum

Chaos Restricted

Page 11: AvePoint - SharePoint App Lifecycle Mgmnt

Introducing a Governance Plan

Integration

Applications

Collaboration

Content

Page 12: AvePoint - SharePoint App Lifecycle Mgmnt

Governance and Site types

Page 13: AvePoint - SharePoint App Lifecycle Mgmnt

Getting the right tools for the job…

• Standard administration interfaces – Quotas, locks, permissions,

records management

• Powershell – Administrative functions,

Data protection

• SharePoint services and features – Managed metadata service

for classification

– ISV solutions for management

• SharePoint Designer, Visual Studio

Manual Automated

Page 14: AvePoint - SharePoint App Lifecycle Mgmnt

Governing Application Management

Determine customization types you want to allow/disallow, and how to manage them:

Service level descriptions

Processes for analyzing customizations

Process for piloting and testing

customizations

Guidelines for packaging and deploying

customizations

Guidelines for updating customizations

Approved tools for development

Who is responsible for ongoing code

support

Specific policies regarding each

potential type of customization (done

through the UI or SD)

What’s the right balance

for your organization?

Strictly managed

development Customizations must adhere to

customization policy, deployments and

updates tested and rigorously managed.

Loosely Managed

Development Rules about development

environments or customizations are

less rigid.

Page 15: AvePoint - SharePoint App Lifecycle Mgmnt

Options for Extending SharePoint

• Custom Code

(Powershell, STSADM,

.NET)

• CodePlex

• Visual Studio

• SharePoint Designer

• 3rd Party products/

services

15

Page 16: AvePoint - SharePoint App Lifecycle Mgmnt

Customizations & Branding

• Isolate custom solutions: Sandbox Solutions – Cannot use certain computer and network resources

– Cannot access content outside the site collection they are deployed in.

– Can be deployed by a site collection administrator.

– Governed: only a farm administrator can promote a sandboxed solution to run directly on the farm in full trust.

• Master Pages and Page Layouts

• Themes

• To “Designer” or not to “Designer”

• Separate development, pre-production, and production environments (keep these environments in sync)

Page 17: AvePoint - SharePoint App Lifecycle Mgmnt

Do I Build or Buy? (Or Neither)

Suggested Evaluation Criteria

Evaluate Out of the Box Features FIRST (80% Rule)

• Supportability and Maintenance (IT skill sets, upgrades, debugging)

• Documentation (including Training and Handover)

• Extensibility

• Impact on Infrastructure (Data Protection SLAs, Storage, etc)

• Integration with other 3rd parties/customizations

• Cost (of dev or product + training + support, etc) and ROI

• Risk (Who is accountable?)

Page 18: AvePoint - SharePoint App Lifecycle Mgmnt

Challenges with SharePoint development

• Environment setup

• Platform learning curve

• Toolset support

• Team development

• Versioned releases

Page 19: AvePoint - SharePoint App Lifecycle Mgmnt

SharePoint Lifecycle Management Process

Page 20: AvePoint - SharePoint App Lifecycle Mgmnt

SharePoint Application Lifecycle

Management

A closer look at:

• Platform enhancements

• Tool enhancements

• Artifact provisioning

• Automated builds

© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means,

without the prior written consent of AvePoint, Inc.

Page 21: AvePoint - SharePoint App Lifecycle Mgmnt

SharePoint 2010 Platform

Enhancements

Page 22: AvePoint - SharePoint App Lifecycle Mgmnt

Solution (WSP) Packages

• Used to deploy custom code

• Contains all files and deployment instructions

• WSP extension – Internally a cabinet file

• Created by Visual Studio

• Farm or Sandboxed

WSP

Manifest.xml Assembly.dll

Image.jpg AppPage.aspx

Page 23: AvePoint - SharePoint App Lifecycle Mgmnt

Sandboxed Solutions

Business Agility Security and

Stability

Page 24: AvePoint - SharePoint App Lifecycle Mgmnt

List Improvements

• Scalability and performance

• Relationships

• Validation

• Lookup to multiple columns

• List index auto creation

• List query throttling

• XSLT views

Page 25: AvePoint - SharePoint App Lifecycle Mgmnt

Tool

Enhancements

Page 26: AvePoint - SharePoint App Lifecycle Mgmnt

Visual Studio 2010

Page 27: AvePoint - SharePoint App Lifecycle Mgmnt

Development Environment

• Windows 7/Vista SP1 support

• Must be 64-bit

• Requires min 4GB RAM for Foundation

• SharePoint 2010 must be installed locally

• Wizard installs and configures most things

• Virtualization

Page 28: AvePoint - SharePoint App Lifecycle Mgmnt

Application pages Declarative

workflows

Web part hook up

SharePoint Tools Continuum

Import

Export

Professional developer Business Analyst/Process

Designer

Code workflows

Event receivers

List definitions

WSP

Package

Designer/IW/Power User

Views & Forms

Page 29: AvePoint - SharePoint App Lifecycle Mgmnt

VS2010 improvements

• Source control support

• Built-in SharePoint tooling

• F5 debugging

• Visual web parts

• Server Explorer

• Package Designer

• Feature Designer

• Extensible

Page 30: AvePoint - SharePoint App Lifecycle Mgmnt

But it’s not perfect

• Backwards compatibility

• .NET 4.0 support

• 64-bit only

• Unit testing

• Web testing

• Accessibility

Page 31: AvePoint - SharePoint App Lifecycle Mgmnt

Artifact Provisioning

Page 32: AvePoint - SharePoint App Lifecycle Mgmnt

SharePoint Designer

• Promotion between environments

• Should certain artifacts be packaged as a WSP?

• Manual copying and pasting files

• Restricting use by policy

• Using third party tools to manage deployments

Page 33: AvePoint - SharePoint App Lifecycle Mgmnt

Deployment in SharePoint 2010

OOTB Capabilities?

• Deploy / roll-back solutions (packages)

• Activate / deactivate features

• Export / import site collections, sites, or lists

• More VS2010 integration (sandbox)

• Visual upgrade (first deployment)

What is it missing?

• Granular control of rights

(delegation), design

elements, content, and

customizations

• DLLs, GAC files,

Customizations,

Workflows, IIS

configuration

Page 34: AvePoint - SharePoint App Lifecycle Mgmnt

Automated Builds

Page 35: AvePoint - SharePoint App Lifecycle Mgmnt

Moving Between Environments

Out of the Box Capabilities

• Perform change in test environment

• Package as solutions whenever possible (VS2010)

• Document all changes

• Repeat all changes in production environment(s) – STSADM operations (now

PowerShell scriptable)

– Define appropriate parameters for IIS

– Make other settings and configuration changes (VS2010)

With Third Parties

• Perform change in test

environment

• Ability to compare

environments

• Deploy to appropriate

farm(s)

• Produce report of all

changes

Page 36: AvePoint - SharePoint App Lifecycle Mgmnt

Build Process

Page 37: AvePoint - SharePoint App Lifecycle Mgmnt

Build Process

Page 38: AvePoint - SharePoint App Lifecycle Mgmnt

Dev PC

Development

Smoke Testing

F5 D

ep

loy

Team Foundation Server

Check In

Staging

Automated testing

Warm-blooded

user testing

Build Server

Team Build

SP2010 DLL’s

Build

Unit Testing

Fix Bugs

(repeat as necessary)

Nightly build

-OR-

Continuous

Integration Check in WSP

Install and Activate [script]

Bugs

WSP

WSP

Page 39: AvePoint - SharePoint App Lifecycle Mgmnt

Ensuring Business Continuity

Page 40: AvePoint - SharePoint App Lifecycle Mgmnt

Planning for ALM in SharePoint

© 2011 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means,

without the prior written consent of AvePoint, Inc.

Goal: Increase Platform Reliability

• Support increasingly

stringent business

requirements for:

– Content access times

– SLAs for availability

– QoS for global users

Page 41: AvePoint - SharePoint App Lifecycle Mgmnt

Increase Production Reliability

41

• Incorporate Multiple farm approach

• Plan for Global Change Management

Need repeatability to ensure success criteria!

Development Testing Staging Production

Page 42: AvePoint - SharePoint App Lifecycle Mgmnt

Load and Performance Testing

• Visual Studio Ultimate

• Stress test code

– Simulating users

• Highlights overuse of

creating new SPSite

objects

• Validates server roles

and hardware

Page 43: AvePoint - SharePoint App Lifecycle Mgmnt

Data Protection Requirements

Monitor Health and ensure global protection

• Monitor SharePoint’s health globally

• Protect valuable SharePoint assets – Multiple farms

– Custom solutions

– Workflows

– Content (even externalized!)

– Security structure,

– Wikis, blogs, MySites

– Metadata

• Simplify Restore process

• Maintain failover environment?

Binary File (OS /

SharePoint)

System Configurations

Externalized Data (BLOB)

SharePoint Configurations

Customizations

Content

• Content DB

• Search Index

• Web Application

• Site Collection

• Site

• List/Library

• Folder

• Item/Document

• Version

• Metadata

• Central Admin DB

• Config DB

• Hive

• GAC

• Gallery

• Site Definition

• Solutions

• Cust. Features

• IIS Metabase

• IIS Settings

• Web.Config

• InetPub

Page 44: AvePoint - SharePoint App Lifecycle Mgmnt

Q & A

Page 45: AvePoint - SharePoint App Lifecycle Mgmnt

Resources

• SharePoint 2010 – http://sharepoint.microsoft.com/

• SharePoint ALM resource center – http://msdn.microsoft.com/en-us/sharepoint/dd552992

• SharePoint Patterns & Practices Group (SPG) – http://msdn.microsoft.com/en-us/library/ff770300.aspx

• FREE conference videos & slides – http://msdn.microsoft.com/en-

us/sharepoint/ff405669.aspx

– http://www.microsoft.com/downloads/details.aspx?FamilyID=f8cb362c-75ad-4cb9-9fbc-3abcdf6afeaf

• SPDisposeCheckStatic Rules – http://spdisposecheckstatic.codeplex.com/

Page 46: AvePoint - SharePoint App Lifecycle Mgmnt