put your existing application on windows azure
DESCRIPTION
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.TRANSCRIPT
![Page 1: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/1.jpg)
Put your existing application on Windows AzureMaarten BalliauwTechnical Consultant
Twitter: @maartenballiauw
![Page 2: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/2.jpg)
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
![Page 3: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/3.jpg)
![Page 4: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/4.jpg)
Agenda• Windows Azure• An existing application...• ... with some problems• Windows Azure• SQL Azure• Blob storage• AppFabric service bus• What to remember?• Resources• Q&A
![Page 5: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/5.jpg)
Windows Azure
![Page 6: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/6.jpg)
Definition of cloud (NIST)• On-demand self service• Standardized access• Location independant resource pooling• Rapid elasticity• Pay per use
![Page 7: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/7.jpg)
IT as a Service
Private(On-Premise)
Infrastructure
(as a Service)
Platform(as a
Service)
Storage
Server HW
Networking
Servers
Databases
Virtualization
Runtimes
Applications
Security & Integration
Storage
Server HW
Networking
Servers
Databases
Virtualization
Runtimes
Applications
Security & Integration
Storage
Server HW
Networking
Servers
Databases
Virtualization
Runtimes
Applications
Security & Integration
You
man
age
Managed by vendor
Managed by vendor
You
man
age
You
man
age
![Page 8: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/8.jpg)
The Windows Azure Platform• Windows Azure• SQL Azure• Windows Azure platform AppFabric• Microsoft Codename “Dallas”• Microsoft Codename “Sydney”
![Page 9: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/9.jpg)
Windows Azure
• Flexible application hosting• Lights-out service management
• Provide code & service model, hit ENTER• Storage at massive scale
• Blobs, tables, queues
Compute StorageManagement
![Page 10: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/10.jpg)
Windows Azure
![Page 11: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/11.jpg)
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
![Page 12: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/12.jpg)
SQL Azure
• Relational database as a service• Highly available, automatically maintained
• Extension of the SQL Server Data Platform
Database
Reporting Business Analytics Data Sync
![Page 13: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/13.jpg)
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
![Page 14: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/14.jpg)
Windows Azure AppFabric
• Secure connections between services• Across organizational boundaries
• Claims-based access control
ServiceBus
AccessControl
![Page 15: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/15.jpg)
Service Bus Overview
![Page 16: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/16.jpg)
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
![Page 17: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/17.jpg)
Microsoft Codename “Dallas”
• Content brokerage and discovery platform • Available as a CTP
Microsoft Codename “Dallas”Information Services
![Page 18: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/18.jpg)
Microsoft Codename “Sydney” - Connectivity
WINDOWS AZURE PLATFORM
Data Service
Service Bus
Access Control Service
ENTERPRISE
Code Name “Project Sydney”
![Page 19: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/19.jpg)
An existing application
![Page 20: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/20.jpg)
Time Tracker• Originated from the ASP.NET starter kit
http://www.asp.net/downloads/starter-kits/time-tracker
• Small modifications:• List of projects from internal billing system• Time registration can have an attachment
![Page 21: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/21.jpg)
DEMO
TimeTracker – On-premise
![Page 22: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/22.jpg)
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?
![Page 23: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/23.jpg)
Workload Patterns Optimal for Cloud
Usage
Com
pu
te
Time
Average
Inactivity
Period
“On and Off “
On & off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome
Com
pu
te
Time
“Unpredictable Bursting“
Average Usage
Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases
Average Usage
Com
pu
te
Time
“Growing Fast“
Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Complex lead time for deployment
Com
pu
te
Time
Average Usage
“Predictable Bursting“
Services with micro seasonality trends Peaks due to periodic increased demandIT complexity and wasted capacity
![Page 24: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/24.jpg)
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
![Page 25: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/25.jpg)
Moving an application to the cloudA
ssess
applic
ati
on • Is it
suitable?• Architecture
?• Functionals?• Non-
functionals?• Are there
good reasons?
Inco
mpati
ble • Most
applications are not 100% compatible
Clo
ud • It runs!
Clo
ud o
pti
miz
ed • It runs!
• Many instances
• Auto-scaling• Reliable• Cost-
effective• Monitored• Self-aware• ...
refactoring
![Page 26: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/26.jpg)
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
![Page 27: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/27.jpg)
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)
![Page 29: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/29.jpg)
DEMO
Converting the TimeTracker solution
![Page 30: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/30.jpg)
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
![Page 31: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/31.jpg)
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
![Page 32: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/32.jpg)
Migrating schema and data• SQL Azure Migration Wizard
http://sqlazuremw.codeplex.com • SQL Azure Data Sync Tool for SQL Server
http://www.microsoft.com/windowsazure/developers/sqlazure/datasync/
• SQL Server Management Studio 2008 R2 November Community Technology Preview
![Page 33: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/33.jpg)
DEMO
Migrating data to SQL AzureSynchronizing SQL and SQL Azure
![Page 34: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/34.jpg)
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
![Page 35: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/35.jpg)
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
![Page 36: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/36.jpg)
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
![Page 37: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/37.jpg)
Tools to see if it works• CloudBerryLab Explorer
http://www.cloudberrylab.com• Azure Storage Explorer
http://azurestorageexplorer.codeplex.com/• Online
http://myazurestorage.com • Visual Studio 2010 tools
![Page 38: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/38.jpg)
DEMO
Storing attachments on Windows Azure blob storage
![Page 39: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/39.jpg)
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
![Page 40: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/40.jpg)
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
![Page 41: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/41.jpg)
Service Bus Overview
![Page 42: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/42.jpg)
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
![Page 43: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/43.jpg)
DEMO
Using AppFabric service bus
![Page 44: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/44.jpg)
Another option…• Billing system WCF configuration was changed• If that’s not possible: PortBridge to the rescue!
http://bit.ly/bCDrUs
![Page 45: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/45.jpg)
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
![Page 46: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/46.jpg)
Deploy• Package up the application• Deploy the thing
• Requirements:• Windows Azure SDK• A web browser
![Page 47: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/47.jpg)
Windows Azure Platform Benefits for MSDN Subscribers• MSDN Subscriber Benefits
• 750 Hours• 8 Months• 10 GB Storage• SQL Azure Web Edition
• Details at http://msdn.microsoft.com/en-us/subscriptions/ee461076.aspx
Windows Azure Platform offerIntroductory MSDN Premium
offer
Windows Azure
Compute hours per month 750 hours
Storage 10 GB
Transactions per month 1,000,000
AppFabric Service bus messages per month 1,000,000
SQL Azure Web Edition (1GB databases) 3
Data Transfers per monthEurope and North America 7 GB in / 14 GB out
Asia Pacific 2.5 GB in / 5 GB out
![Page 48: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/48.jpg)
DEMODeploying TimeTracker
![Page 49: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/49.jpg)
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
![Page 50: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/50.jpg)
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
![Page 51: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/51.jpg)
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
![Page 52: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/52.jpg)
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
![Page 53: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/53.jpg)
QuestionsPossibly Answers
![Page 54: Put Your Existing Application On Windows Azure](https://reader035.vdocuments.mx/reader035/viewer/2022081602/554f3d81b4c90572088b50c4/html5/thumbnails/54.jpg)
THANK YOU!Maarten Balliauwhttp://blog.maartenballiauw.be
http://twitter.com/maartenballiauw