300 likes | 318 Views
Discover the benefits and challenges of implementing a hybrid solution that connects on-premise SharePoint with Office 365 SharePoint. Explore solution architectures, best practices, and implementation techniques.
E N D
SharePoint Online (Office 365)Hybrid Solutions: On-premise to the Cloud Jason Kaczor Senior SharePoint Architect Illumination Industries Ltd.
About… Jason Kaczor jkaczor@illuminators.ca jason@kaczor.ca facebook.com/jasonjkaczor jjkaczor jason.kaczor.ca jjkaczor.wordpress.com +1(403)870-0030
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
“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?
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
DEMO On-premise
Solutions? • Kerberos • Single-server Oh RLY?
DEMO Office 365 / SharePoint Online
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
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
“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
“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
“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
“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
“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
“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
“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
“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
“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
“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
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
Internet Explorer Configuration Hybrid Solutions – Client Requirements
Internet Explorer Configuration Hybrid Solutions – Client Requirements
Internet Explorer Configuration Hybrid Solutions – Client Requirements
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
DEMO Hybrid Solution Techniques
Sandbox Solutions • Business Connectivity Services (BCS) • Client-side Solutions Can we design for the future?... (i.e. What do we know today…)