Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

30
SharePoint Online (Office 365) Hybrid Solutions: On-premise to the Cloud Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Transcript of Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Page 1: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

SharePoint Online (Office 365)

Hybrid Solutions:On-premise to the Cloud

Jason KaczorSenior SharePoint ArchitectIllumination Industries Ltd.

Page 2: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

About… Jason Kaczor

[email protected]

facebook.com/jasonjkaczor

jjkaczor

jason.kaczor.ca

jjkaczor.wordpress.com

+1(403)870-0030

[email protected]

Page 3: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

3

We will answer the following questions*:

What is a “hybrid <> on-premise” SharePoint cloud solution?

What are the “pros” and “cons” of Office 365 SharePoint?

What solution architectures, design patterns, best practices and implementation techniques are required to build hybrid solutions?

Can we design for the future?

* (…and probably raise many, many more…)

Session Goals

Page 4: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

4

“Any SharePoint-solution which requires connectivity between a cloud-hosted SharePoint site and on-premise data.”

SharePoint is arguably the best platform on-the-market for collaboration.

… however - organizations will only truly receive the highest “return-on-investment” when they combine those capabilities with data integration.

What is a hybrid “on-premise <> cloud” solution?

Page 5: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

5

Reduced SharePoint-related infrastructure operations and maintenance overhead.

Increased agility when designing & building SharePoint 2010 solutions.

Increased ability to design, build & secure internet/extranet-focused SharePoint sites.

Office 365 SharePoint - Advantages

Page 6: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

On-premise

6

DEMO

Page 7: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Solutions?Kerberos Single-server

Oh RLY?

Page 8: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Office 365 / SharePoint Online

8

DEMO

Page 9: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Oh RLY?

Page 10: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Uh Oh…

Page 11: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

11

Data Connectivity… Incoming Email

Web Parts OWA RSS Viewer XML Viewer …

Business Connectivity Services (BCS) Database Connections

Azure SQL Data Custom .NET Assemblies Web Services

On-premise or public SOAP/WCF endpoints Azure

Sandbox Solutions HTTP Requests

Data Sources

Office 365 SharePoint - Limitations

Page 12: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

12

RSS Feed Web Part for Office 365 http://modery.net/updated-rss-feed-web-part-for-office-365/

Office 365 Anonymous Access Manager Sandbox Solution http://anonymous365.codeplex.com/

SharePoint 2010 JavaScript Registration Panel http://jcp.codeplex.com/

Best Practices: Ensure that any third-party components are updated frequently!

If you use “open-source” solutions, you “own” them – and subsequently their overall quality and update/upgrade paths…

Office 365 Resources

Page 13: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

13

“Always use indirect access to remote data”

In any SharePoint solution which accesses remote data, over-the-network – NEVER access data “directly”!

“Better” Practice:

Use a local cached copy…

Best Practice:

Business Connectivity Services (BCS)

Data Connected SharePoint Solutions – Best Practices

Page 14: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

14

“Always use indirect access to remote data”

In any SharePoint solution which accesses remote data, over-the-network – NEVER access data “directly”!

“Better” Practice:

Use a local cached copy…

Best Practice:

Business Connectivity Services (BCS)

Data Connected SharePoint Solutions – Best Practices

Page 15: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

15

“Always use indirect access to remote data”

In any SharePoint solution which accesses remote data, over-the-network – NEVER access data “directly”!

“Better” Practice:

Use a local cached copy…

Best Practice:

Business Connectivity Services (BCS)

Data Connected SharePoint Solutions – Best Practices

Page 16: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

16

Data Connected SharePoint Solutions – Best Practices

“Always use indirect access to remote data”

In any SharePoint solution which accesses remote data, over-the-network – NEVER access data “directly”!

“Better” Practice:

Use a local cached copy…

Best Practice:

Business Connectivity Services (BCS)

Page 17: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

17

“Always use indirect access to remote data”

Why? Performance NIGHTMARES

= Support HORROR

In SP2007 this includes built-in Web Parts… RSS Viewer = synchronous, no caching… XML Viewer = synchronous, no caching…

(Thank-fully fixed in SP2010)

Data Connected SharePoint Solutions – Best Practices

Page 18: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

18

“Caching” Patterns:

“Local Cache” On-premise

Custom SharePoint Timer Job Custom Windows Server Service Scheduled Script (i.e. PowerShell … XCOPY…)

Cloud AJAX “Refresh Cache” Script (i.e. JavaScript)

“Cloud Cache” Azure Content Deployment Network (CDN)

On-Premise Push into the CDN via Azure AppFabric Service Bus

Cloud Interact with CDN URL’s directly, or…. Integrate with Azure AppFabric Service Bus

Solutions – Architecture & Design Patterns

Page 19: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

19

“Cloud ‘Just-In-Time’ Proxy” Pattern On-Premise

SOAP, WCF, REST Web Service(s) XML/RSS/Atom/oData/JSON feeds/files Web Service(s)

Cloud SOAP, WCF, REST Web Service(s) XML/RSS/Atom/oData/JSON feeds/files Web Service(s)

“Transparent Proxy” Pattern On-Premise

Caching! Monitoring! Metering! SOAP, WCF, REST Web Service(s) XML/RSS/Atom/oData/JSON feeds/files Transparent to existing applications/webparts/components once implemented

Cloud Possible integrate with Cloud-based CDN technologies, service buses

Solutions – Architecture & Design Patterns

Page 20: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

20

“Data Source” Pattern

Often overlooked – not perfect, however is available in either Cloud or On-Premise solutions, using…

SharePoint Designer 2010 Empowers technical business analysts, site owners and “power-users”.

Locally cached XML/RSS data files, or….

Direct, remote XML/RSS data source URL’s

Solutions – Architecture & Design Patterns

Page 21: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

21

“Web Part” Anti-Pattern

Ask yourself the following questions before coding any new webparts: Are you committed to “memory-leak-free” components (you are using SPDisposeCheck, right?)?

How good are your .NET multi-threaded and/or asynchronous programming skills?

Do you know all of the caching data options (and when to use each) available to components within SharePoint?

Will this web part be connectable? Why not?

Will the site owner/designer or end-user have the ability to re-style, modify layout or significantly modify this web part for mashups, composite or aggregate solutions?

Solutions – Anti-Patterns

Page 22: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

22

“List Synchronizer” Anti-Pattern

If you plan on synchronizing data from an external source to a SharePoint list, ask yourself the following questions? Why?

How big is the initial load in “row numbers”? How much will it grow per week, month, year? How frequently will it be synchronized? Which repository is the master? How will conflicts be identified and rectified? What is your sub-folder containment strategy?

IF YOU DO NOT HAVE A SUB-FOLDER CONTAINMENT PLAN, THEN YOU MUST NOT SYNCHRONIZE DATA ** Sub-folders are a must for large datasets and have nothing to do with the metadata or end-user presentation of information ! **

Solutions – Anti-Patterns

Page 23: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

23

Federated Identities Active Directory Federated Services (AD FS)

Synchronization

Single-sign-on (SSO)

… Otherwise …

Flaky client-side authentication JavaScript AJAX, CSOM, WebDAV, etc.

Or… anonymous read/write access on “data libraries” must be enabled … do you really want to display data which could potentially be “massaged/compromised” by a third-party?

Hybrid Solutions – Requirements

Page 24: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

24

Internet Explorer Configuration

Hybrid Solutions – Client Requirements

Page 25: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

25

Internet Explorer Configuration

Hybrid Solutions – Client Requirements

Page 26: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

26

Internet Explorer Configuration

Hybrid Solutions – Client Requirements

Page 27: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

27

Microsoft Office InfoPath 2010 SharePoint Designer 2010 Excel 2010 Access 2010

SharePoint Foundation 2010 CAML, XML, XSLT, DataView, WebParts HTML5, JavaScript, CSS Integrated SQL Server Reporting Services Silverlight, Flash

SharePoint Server Standard 2010 InfoPath Forms Services Search

SharePoint Server Enterprise 2010 Excel Calculation Services PerformancePoint Services Visio Graphics Services Access Services

Hybrid Solutions - Implementation Techniques

Page 28: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Hybrid Solution Techniques

28

DEMO

Page 29: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

29

Sandbox Solutions

Business Connectivity Services (BCS)

Client-side Solutions

Can we design for the future?... (i.e. What do we know today…)

Page 30: Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.

Questions?

30