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 3 rd 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 (2 nd 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
Silverlight Migration Partial/Full Enterprise Cloud Cloud Silverlight Application Web Server Silverlight Application Web Role Silverlight Application Web Role Supporting Web Service(s) App Server SQL Server Database Enterprise Supporting Web Service(s) App Server Supporting Web Service(s) Web Role SQL Azure Database SQL Server Database
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 (2 nd web role) Need to secure access to web services Changes to database Keep database co-located with web services
ASP.NET Migration Partial/Full Enterprise Cloud Cloud ASP.NET Application Web Server ASP.NET Application Web Role ASP.NET Application Web Role Supporting Web Service(s) App Server SQL Server Database Enterprise Supporting Web Service(s) App Server Supporting Web Service(s) Web Role SQL Azure Database SQL Server Database
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
Service Migration IIS-/Self-Hosted Enterprise Cloud Cloud Web Service Web Server IIS-Hosted Web Service Web Role Self-Hosted Web Service Worker Role SQL Server Database SQL Azure Database 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 Guide Microsoft has issued guide and sample for securing Azure Sites with Geneva Server Download 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/enus/library/dd179386.aspx Demonstrates MS membership, role, profile, and session state providers for the cloud
Resources Azure Design Patterns http://www.azuredesignpatterns.com Azure Portal http://www.azure.com Azure User Group Site http://www.azureusergroup.com Azure Blogs http://www.azurefeeds.com