Why SharePoint and Windows Azure are Just Plain Better TogetherSteve FoxDirector, MCSMicrosoft Corporation
OSP334
Goals of this Session
Provide a ‘360’ view of how SharePoint and Windows Azure integrate
Walk through four scenarios that integrate SharePoint and Windows Azure
Discuss in the context of both IT Pro and Developer
SharePoint and Windows Azure: Evolved
IAAS PAAS SAAS
• SharePoint FIS• Hosted Learning• Dev. & Test • BI Apps• Departmental
Apps• Hybrid/LOB
Applications
• Services/Data Layer
• Storage and Archiving
• Messaging• Regional
Caching• Resource
Offload• Media Apps
• All-Cloud Solutions
• LOB applications
• Windows Phone 7.x Apps
• Custom Client-side Applications
What‘s in the Windows Azure Spring Preview?
Data
La
yer
Serv
ice
Layer
Inte
gra
tion
La
yer
Clie
nt
Layer
PCGamesConsolePhoneTablet Browser
On-premises Service
On-premises Database
OfficeSharePoint
Web/WorkerCloud ServicesMedia Services HadoopWeb Sites
Virtual Machines
CachingDrive QueuesTablesBlobs SQLSQL Reporting
SQL DatabaseStorage
Stream Insight
SP
GA
ConnectCDNTraffic Manager
AD Access Control
Service Bus
SQL Data SyncEAI / EDI
Virtual Network
Load Balancer
Today? Four Scenarios
Data SynchronizationData Sync to bridge cloud-based data sources
Streaming MediaAzure Media Services to manage videos
“Lift and Shift” Using IAAS to host SharePoint solutions
All-Cloud Solution SharePoint Online, BCS & Windows Azure
WFE WFE
INDXR APP SVR SQL SVR
Architecture
Data SyncSQL Azure Data Sync
SQL Database
SQL Azure Data Sync
PC PhoneTablet BrowserOfficeSharePoint
Process
Replicate schema to SQL AzureInstall Data Sync Agent on serverRegister SQL Server database with SQL Azure Data Sync AgentEdit the schema in SQL Azure you want to synchronizeSurface data in client/web/device
SQL Data ConnectionServiceREST
Windows Azure Cross-Premises Connectivity
CLOUD ENTERPRISE
Application-Layer Connectivity &
Messaging Service Bus
Data SynchronizationSQL Azure Data Sync
Secure Machine-to-Machine Connectivity
Windows Azure Connect
Secure Site-to-Site Network Connectivity
Virtual Network
Azure Media Services Architecture
REST APIs
Azur
e CD
N
Azure Media Services Components
“Build-On” Media Partners and Customers
Adaptive StreamingPorting Kits(STB, iOS/Android)
Silverlight
Windows Phone
HTML5
Flash
Partn
er C
DNs
Origin
Caching
Windows 8
Windows Azure Core Platform
Secure Media Ingest
Media Job Scheduling
Encoding
ContentProtection
On-DemandOrigin
Live Origin
Analytics BroadcastScheduling
Ad Insertion XBOX
“Build-In”Partner Media Processors
Live Ingest
Live Encoding
Client Libraries
BLOB Storage
WFE WFE
INDXR APP SVR SQL SVR
Architecture
CDN Cache
PC PhoneTablet BrowserO365SP-O
AMS Streaming
CDN Cache
Media
Azure Media Services (AMS)
Azure Media Services Code Snippet…string inputFilePath = @"C:\windows\Performance\WinSat\winsat.wmv";
CloudMediaContext mediaContext = new CloudMediaContext(new Uri("https://nimbustap.cloudapp.net/API/"), "F7DF85E4-E142-2212-A433-161FE60D409C", "7HCe8R6n", "urn:Nimbus", "https://nimbusvoddev.accesscontrol.windows.net");
IAsset asset = mediaContext.Assets.Create(inputFilePath);string fileName = asset.Files[0].Name;
IAccessPolicy readPolicy = mediaContext.AccessPolicies.Create("CanReadFor30Minutes", TimeSpan.FromMinutes(30), AccessPermissions.Read);
asset.AccessPolicies.Add(readPolicy);
ILocator locator = asset.Locators.Where(c => c.AccessPolicyId == readPolicy.Id && c.ExpirationDateTime > DateTime.UtcNow).First();
…
var uriBuilder = new UriBuilder(locator.Path);
uriBuilder.Path += Path.AltDirectorySeparatorChar + fileName;
Uri fullUrl = uriBuilder.Uri;… More information?
http://msdn.microsoft.com/en-us/magazine/jj133821.aspx
Process
Create a video (e.g. WMV file)Leverage Media Services to
Upload videoTranscode and encode BLOB…
Leverage the video URL within SMF player or custom player
StreamingProgressive Download
Embed SMF or custom player within a SharePoint (or SharePoint Online) site
Architecture
SP Standalone
WFE INDXR APP SVR SQL SVR
SharePoint Farm
WFE WFE
INDXR APP SVR SQL SVR
AD/DC/DNS
SharePoint Farm
LOB
VPN Tunnel
On-Premises Cloud
Process
Log onto Azure portalCreate a new VM (or upload an existing one)
Create a VNET if you want to create a cloud networkCreate or upload other VMs and associate them with the VNET
Configure the VM(s) as you would normally configure your SP Farm servers
ORUse PowerShell to do all of the above in parallel
PowerShell to Create/Migrate SP Farm## Create SP WFE1 $spwfe1 = New-AzureVMConfig -Name 'SP-WFE1' -AvailabilitySetName $avsetwfe `-ImageName $spimage -InstanceSize Medium |
Add-AzureProvisioningConfig -WindowsDomain -Password $dompwd `-Domain $domain -DomainUserName $domuser -DomainPassword $dompwd `-MachineObjectOU $advmou -JoinDomain $joindom |
Add-AzureInputEndpoint -Name 'http' -LBSetName 'lbhttp' -LocalPort 80 -PublicPort 80 -Protocol tcp -ProbeProtocol http -ProbePort 80 `-ProbePath '/healthcheck/iisstart.htm' |Set-AzureSubnet $spsubnet. . . $dns1 = New-AzureDns -Name 'dns1' -IPAddress '10.1.2.4'
New-AzureVM -ServiceName $cloudsvc -AffinityGroup $ag -VNetName $vnetname -DnsSettings $dns1 -VMs $spwfe1, $spwfe2, $spwfe3, $spwfe4, $spapp1, $spapp2, $spsql1, $spsql2
More Information? AZR327: Deploying SharePoint Farms on Windows Azure Virtual Machines
Web Service Proxy
(HTTP or HTTPS)
LOB Data(SQL Database)
LOB Data
Architecture
External List
SSS ECT
SharePoint(On-Premises or Online)
Device Interoperability
Other Potential BCS LOB Connectivity Patterns
Any public facing WCF/ASMX service Open or username/password protected
A WCF service that wraps any OData serviceA WCF service that wraps any REST-based serviceA WCF service that exposes data from any database An on-premises WCF service
Use a Windows Azure WCF Service as a proxy serviceAccess on-premises service via Windows Azure Service Bus
More Information? OSP331: Building Microsoft SharePoint Online Applications in a Hybrid World
Process
Create SQL Azure (or other DB or endpoint, e.g. REST)Write a WCF service wrapper around that endpoint
Optionally add certificate for HTTPSProvide username/password configuration
Expose the endpoint in SharePoint Designer and create an external content type (ECT)Provide permissions for ECTCreate external list and publish to SharePoint Online
Optionally code against that list using the client object model
What about Identity?Option Development or OOB Sample Scenario
Active Directory OOB Create VM in the cloud and federate with Brooklyn.
ADFS Federation OOB Federate on-premises users for SSO to O365.
Office Live ID OOB Log into O365 session with your Office Live ID.
Windows Azure Active Directory
Development/OOB Uses token and secret key to authenticate service/ device or federate (ADFS 2.0) with claims for SSO.
WIF Development Identity management across multiple systems with no flow-through.
oAuth Development/OOB Can use with ACS or leverage SSO.
BCS OOB Configure external content types to pass username and password claim using SSS and Application ID.
SQL Connection String Development Obfuscate in application code or encrypt.
Shared Access Permissions Development Set permissions on a BLOB in Windows Azure storage.
Certificate Development/OOB Upload/manage certs within Azure for HTTPS service endpoints.
Headless Authentication Development Access SP-O from Azure using system account.
IAASGood for a number of SharePoint workloadsReasonable to use for remote, hosted development environmentsYou might find challenges with network configuration/performanceGood hybrid story (on multiple fronts)
PAASUse as service bridge or cloud-based data appsOffload code to cloudHybrid solutions and cross-device
SAASSupports the all-cloud model—true cloud connect modelIncreasingly rich functionality with CRM Online and BCS supportAzure can provide service layer for device abstraction
Differentiation
Call to Action
For Development…Channel 9 SharePoint Developer Training KitChannel 9 Azure Developer Training KitChannel 9 O365 Developer Training KitSharePoint and Windows Azure Developer Kit
http://tinyurl.com/3hoga7c
Also...Check out Steve’s blog for code and walkthroughsRead Developing Microsoft SharePoint Applications using Windows AzureRead Professional SharePoint 2010 Cloud-Based Solutions
Steve Fox@[email protected]://blogs.msdn.com/steve_fox
Resources
Connect. Share. Discuss.
http://europe.msteched.com
Learning
Microsoft Certification & Training Resources
www.microsoft.com/learning
TechNet
Resources for IT Professionals
http://microsoft.com/technet
Resources for Developers
http://microsoft.com/msdn
The Business Collaboration Platform for the Enterprise & the Internet
The capabilities of SharePoint 2010 provide a powerful business collaboration platform
Deliver the Best Productivity Experience
Cut Costs with a Unified Infrastructure
Rapidly Respond to Business Needs
The Business Collaboration Platform for the Enterprise and the Internet
Manage Resources Improve efficiency and save money by better managing work and allocation of resources
Maximize Portfolio Returns Make informed investment decisions and effectively communicate results across a portfolio of projects
Keep Teams Productive Save time and improve project results by centralizing team collaboration on deliverables and tasks
Improve SharePoint ROI Effectively manage requests to maximize the ROI of your SharePoint environmentwww.sharepoint.microsoft.com
www.microsoft.com/project
Project and SharePoint Better Together
Resources
Connect. Share. Discuss.
http://europe.msteched.com
Learning
Microsoft Certification & Training Resources
www.microsoft.com/learning
TechNet
Resources for IT Professionals
http://microsoft.com/technet
Resources for Developers
http://microsoft.com/msdn
Evaluations
http://europe.msteched.com/sessions
Submit your evals online
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to
be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS
PRESENTATION.