Leverage the highly scalable Windows Azure platform and deploy your existing ASP.NET application to a new home in the clouds. This demo filled session will guide you in how to make successful use of Windows Azure’s hosting and storage platform as well as SQL Azure, the relational database in the cloud, by moving an existing ASP.NET application to a higher level.
Unblocking The Main Thread Solving ANRs and Frozen Frames
Put Your Existing Application On Windows Azure
1. Put your existing application on Windows Azure Maarten BalliauwTechnical Consultant Twitter: @maartenballiauw
2. About me Maarten Balliauw Antwerp, Belgium www.realdolmen.com Focus on web ASP.NET, ASP.NET MVC, PHP, Azure, VSTS, … MVP ASP.NET http://blog.maartenballiauw.be http://twitter.com/maartenballiauw
3.
4. Agenda Windows Azure An existing application... ... with some problems Windows Azure SQL Azure Blob storage AppFabric service bus What to remember? Resources Q&A
6. Definition of cloud (NIST) On-demand self service Standardized access Location independant resource pooling Rapid elasticity Pay per use
7. IT as a Service Private (On-Premise) Infrastructure (as a Service) Platform (as a Service) You manage Applications Applications Applications You manage Runtimes Runtimes Runtimes Security & Integration Security & Integration Security & Integration Managed by vendor You manage Databases Databases Databases Servers Servers Servers Managed by vendor Virtualization Virtualization Virtualization Server HW Server HW Server HW Storage Storage Storage Networking Networking Networking
8. The Windows Azure Platform Windows Azure SQL Azure Windows Azure platform AppFabric Microsoft Codename “Dallas” Microsoft Codename “Sydney”
9. Windows Azure Flexible application hosting Lights-out service management Provide code & service model, hit ENTER Storage at massive scale Blobs, tables, queues Compute Storage Management
11. Storage options Blobs, tables, queues Windows Azure Drive (a.k.a. XDrive) Virtual NTFS volume that can be mounted .vhd format Use existing NTFS API’s Easier migration Stored on blob storage provides quick mount/unmount in other VM
12. SQL Azure Relational database as a service Highly available, automatically maintained Extension of the SQL Server Data Platform Reporting Data Sync Business Analytics Database
13. SQL Azure Relational database, provided as a service Highly symmetrical development and tooling experience (use TDS protocol and T-SQL) Highly scaled out, on commodity hardware Built on the SQL Server technology foundation High availability, DB provisioning, and DB management are provided by the service
14. Windows Azure AppFabric Secure connections between services Across organizational boundaries Claims-based access control ServiceBus AccessControl
16. Windows Azure AppFabric - Service Bus Securely connect applications Over the internet Across any network topology (= across firewalls!) Across organizational boundaries Primary application patterns Eventing: Notify applications and/or devices Service Remoting: Securely project on-premises services out to the cloud Tunneling: App-to-app communication with NAT/Firewall traversal
17. Microsoft Codename “Dallas” Content brokerage and discovery platform Available as a CTP Microsoft Codename “Dallas”Information Services
18. Microsoft Codename “Sydney” - Connectivity WINDOWS AZURE PLATFORM ENTERPRISE Data Service Service Bus Access Control Service Code Name “Project Sydney”
20. Time Tracker Originated from the ASP.NET starter kithttp://www.asp.net/downloads/starter-kits/time-tracker Small modifications: List of projects from internal billing system Time registration can have an attachment
22. Time Tracker There are some problems with it... Running on 2 web servers that are > 2 years old, nearing EOL Looking to buy new hardware Looking to deploy the application in a cloud Spikes near the end of each month, reducing performance Looking to buy additional hardware Looking to deploy the application in the cloud They do have this “seamless scaling” thing, right?
23. Workload Patterns Optimal for Cloud “Growing Fast“ “On and Off “ Inactivity Period Compute Compute Average Usage Usage Average Time Time On & off workloads (e.g. batch job) Over provisioned capacity is wasted Time to market can be cumbersome Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Complex lead time for deployment “Unpredictable Bursting“ “Predictable Bursting“ Compute Compute Average Usage Average Usage Time Time Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases Services with micro seasonality trends Peaks due to periodic increased demand IT complexity and wasted capacity
24. Challenges Security? Forms based Claims based (AppFabric access control service) Availability & scalability out-of-the-box Still keep session state in mind Specify “upgrade domains” Logging & tracing System.Diagnostics.Trace Performance counters All stored on blob storage, not real-time! Operating system Windows Azure Cloud OS 1.0 – 1.1 – x.x See MSDN for patches and hotfixes in each OS version New cost model Pay-per-use Allow for scale-up and scale-down
26. TimeTracker on steroids! Our company decided to go for Windows Azure New migration track started Learn about Windows Azure Support deployment on Windows Azure Store data in SQL Azure Store attachments on blob storage Somehow connect with the billing system to get a list of project names Deploy
27. Support deployment on Windows Azure Convert the TimeTracker solution to a Cloud Service solution Make sure it can be packaged for deployment Make sure it runs on Development Fabric Requirements: IIS7 Visual Studio Windows Azure Tools for Microsoft Visual Studio Windows Azure SDK (shipped with the above)
30. TimeTracker on steroids! Our company decided to go for Windows Azure New migration track started Learn about Windows Azure Support deployment on Windows Azure Store data in SQL Azure Store attachments on blob storage Somehow connect with the billing system to get a list of project names Deploy
31. Store data in SQL Azure There is a database on-premise in SQL Server Schema should be migrated Data should be migrated Requirements: Native SQL client SQL Management Studio
32. Migrating schema and data SQL Azure Migration Wizardhttp://sqlazuremw.codeplex.com SQL Azure Data Sync Tool for SQL Serverhttp://www.microsoft.com/windowsazure/developers/sqlazure/datasync/ SQL Server Management Studio 2008 R2 November Community Technology Preview
34. ASP.NET Membership & Roles Will not work out of the box! Some incompatible SQL Updated scripts and aspnet_regqslazure.exe http://support.microsoft.com/default.aspx/kb/2006191
35. TimeTracker on steroids! Our company decided to go for Windows Azure New migration track started Learn about Windows Azure Support deployment on Windows Azure Store data in SQL Azure Store attachments on blob storage Somehow connect with the billing system to get a list of project names Deploy
36. Store attachments on blob storage Attachments currently stored on the web server Windows Azure server storage not guaranteed to survive There’s an option for that... ...but it will still fail in some situations Ideal candidate: blob storage Requirements: Windows Azure SDK A tool to browse storage and see if it works
37. Tools to see if it works CloudBerryLab Explorerhttp://www.cloudberrylab.com Azure Storage Explorerhttp://azurestorageexplorer.codeplex.com/ Onlinehttp://myazurestorage.com Visual Studio 2010 tools
39. TimeTracker on steroids! Our company decided to go for Windows Azure New migration track started Learn about Windows Azure Support deployment on Windows Azure Store data in SQL Azure Store attachments on blob storage Somehow connect with the billing system to get a list of project names Deploy
40. Connect with the billing system List of projects comes from on-premise billing system TimeTracker will be in the cloud Requirements: Expose the billing system to the Internet Connect to it
42. Connect with the billing system List of projects comes from on-premise billing system TimeTracker will be in the cloud Communication will happen over the AppFabric service bus Requirements: Visual Studio AppFabric SDK
44. Another option… Billing system WCF configuration was changed If that’s not possible: PortBridge to the rescue!http://bit.ly/bCDrUs
45. TimeTracker on steroids! Our company decided to go for Windows Azure New migration track started Learn about Windows Azure Support deployment on Windows Azure Store data in SQL Azure Store attachments on blob storage Somehow connect with the billing system to get a list of project names Deploy
46. Deploy Package up the application Deploy the thing Requirements: Windows Azure SDK A web browser
53. TimeTracker on steroids! Our company decided to go for Windows Azure New migration track started Learn about Windows Azure Support deployment on Windows Azure Store data in SQL Azure Store attachments on blob storage Somehow connect with the billing system to get a list of project names Deploy
54. What to remember? Windows Azure is Operating system (computing & storage) SQL Azure AppFabric Your application and skills Hybrid applications are possible It’s not that hard to do
55. Resources Websites Windows Azure http://www.azure.com Local MSDN http://www.msdn.be Local TechNet http://www.microsoft.com/belux/technet Blogs Steve Marx http://blog.smarx.com Clemens Vasters http://vasters.com/clemensv Simon Guest http://simonguest.com/blogs/smguest My blog http://blog.maartenballiauw.be/category/Azure.aspx Videos and presentations PDC http://microsoftpdc.com RealDolmen blogs is running on Azure!http://www.realdolmenblogs.com
56. AZUG.BE – Azure User Group Belgium Focus on the Azure Services Platform Community-driven Focus on architecture And development And the business value of Azure www.azug.be