21
Migrating Enterprise Applications to the Azure Platform

Migrating to Azureapi.ning.com/files/CRQAROePTa4rjnBTftnu1tNmGJ51vaiyGT8XJBOPW… · –Limited to 1GB ($9.99/mo) or 10GB ($99.99/m) ... •Co-locate apps/services with their data

Embed Size (px)

Citation preview

Migrating Enterprise Applications

to the Azure Platform

Agenda

• Announcements

• Silverlight Migration

• ASP.NET Migration

• Web Service Migration

• Database Migration

Announcements

• Microsoft Shutting Down Northwest Data Center

– Reason given: changes in local tax laws

– Apps hosted there must move to Southwest

– Expect they are relocating the data center elsewhere

• SQL Azure CTP Is Out

– …but we’re all still waiting for our tokens

– Documentation online at http://msdn.microsoft.com/en-us/library/ee336279.aspx

– Expect to look at SQL Azure at next month’s meeting

Mainstream Migration Targets

• Silverlight Application

• ASP.NET Web Site

• Web Service

• SQL Server Database

Migration Challenges

• Can’t install 3rd party applications on cloud machines

• Applications and web services need to be stateless or you must find a way to do session state in the cloud

• Need to secure cloud-hosted applications and services to your enterprise

• Need a data synchronization strategy between enterprise and cloud databases/storage

Silverlight Migration - Basics

• Silverlight project itself probably won’t change• Changes to web hosting

– Host in Windows Azure web role (2+ instances)– Need to secure access to application

• Changes to supporting web services– Can be enterprise- or cloud-hosted (2nd web role)– Enterprise services must host cross-domain policy file– Need to secure access to web services

• Changes to database– Keep database co-located with web services

Enterprise

Enterprise

Web Server

Silverlight Migration – Partial/Full

Silverlight Application

Cloud

Web Role

Silverlight Application

Cloud

Web Role

Silverlight Application

SQL Azure Database

Web Role

Supporting Web Service(s)

SQL Server Database

App Server

Supporting Web Service(s)

App Server

SQL Server Database

Supporting Web Service(s)

Silverlight Migration - Steps

1. Create cloud service with 1 web role

2. Add Silverlight project to solution

3. Specify web role as host for Silverlight app

4. Add each web service project to solution

5. Associate web service as additional web role

ASP.NET Migration - Basics

• Changes to ASP.NET Site

– Hosted in a Windows Azure Web Role (2+ instances)

– Go stateless or use a cloud session state provider

– Need to secure access to application

• Changes to supporting web services

– Can be enterprise- or cloud-hosted (2nd web role)

– Need to secure access to web services

• Changes to database

– Keep database co-located with web services

Enterprise

Enterprise

Web Server

ASP.NET Migration – Partial/Full

ASP.NET Application

Cloud

Web Role

ASP.NET Application

Cloud

Web Role

ASP.NET Application

SQL Azure Database

Web Role

Supporting Web Service(s)

SQL Server Database

App Server

Supporting Web Service(s)

App Server

SQL Server Database

Supporting Web Service(s)

ASP.NET Migration - Steps

1. Create cloud service with no web roles

2. Add ASP.NET web project to solution

3. Associate web project as web role

4. Add each web service project to solution

5. Associate web service as additional web role

Service Migration - Basics

• Changes to Web Service

– Use stateless code (recommended)or use a cloud session state provider

• ASP.NET-hosted WCF Services

– Host in a Windows Azure Web Role (2+ instances)

– Need to secure access to web service

• Self-hosted WCF Services

– Host in a Windows Azure Worker Role (2+ instances)

– Need to secure access to web service

Enterprise

Web Server

Service Migration – IIS-/Self-Hosted

Web Service

Cloud

Web Role

IIS-Hosted Web Service

SQL Azure DatabaseSQL Server Database

Cloud

Worker Role

Self-Hosted Web Service

SQL Azure Database

Service Migration - Steps

1. Create cloud service with no web roles

2. Add each web service project to solution

3. Associate each web service project as a web role (IIS-hosted) or a worker role (self-hosted)

Database Migration - Basics

• SQL Azure– SQL Server near-equivalent in the cloud– Database functionality only– “Only difference is the connection string”– Limited to 1GB ($9.99/mo) or 10GB ($99.99/m)– No transactions across databases

• Need a data management strategy– Some data in the enterprise, some in the cloud– Decide where the master stores are, how you will

synchronize/replicate

• Co-locate apps/services with their data stores

Authentication Options for Cloud Apps

• MS Membership Provider for Cloud Storage

• Windows Live ID

• Access Control Service (primarily for services)

• Geneva Server / ADFS(redirect to domain for login then back to application)

• Custom Membership Provider (you implement)

Geneva Server – Azure GuideMicrosoft has issued guide and sample for securing Azure Sites with Geneva ServerDownload from http://code.msdn.microsoft.com/wifwazpassive

An Experimental Approach to Securing Azure Web

Applications with Domain Windows Authentication

This approach applies the pattern used by Windows Live ID to an enterprise.

Cloud application sends unauthorized user to a page hosted at your enterprise for a true domain login. The page provisions cloud storage and the user is redirected back to the cloud application where a login cookie is created.

Demo 1 – Migrate ASP.NET App + Service

• ComputeTax Demo

– Accepts an amount and a tax rate, computes total

– ASP.NET front end, calls a WCF web service

• Starting point – enterprise solution

– ASP.NET web site + service

• Ending point – cloud solution

– Windows Azure-hosted ASP.NET web site + service

Demo 2 – Microsoft Cloud Providers

• AspProvidersDemo (Windows Azure SDK)http://msdn.microsoft.com/en-us/library/dd179386.aspx

• Demonstrates MS membership, role, profile, and session state providers for the cloud

Resources

• Azure Design Patternshttp://www.AzureDesignPatterns.com

• Azure Portalhttp://www.Azure.com

• Azure User Group Sitehttp://www.AzureUserGroup.com

• Azure Blogshttp://www.AzureFeeds.com