SlideShare a Scribd company logo
Converting an existing ASP.NET application to Windows AzureMaarten Balliauw – RealDolmenBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
Whoam I?Maarten BalliauwAntwerp, Belgiumwww.realdolmen.comFocus on webASP.NET, ASP.NET MVC, PHP, Azure, VSTS, …MVP ASP.NEThttp://blog.maartenballiauw.behttp://twitter.com/maartenballiauw
AgendaWindows Azure?An existing application…Migration pathsConsiderationsQ&A
What’s in the cloud?Windows Azure
The Windows Azure PlatformWindows AzureSQL AzureWindows Azure platform AppFabricDeveloper toolsMicrosoft Codename “Dallas”
Windows AzureFlexible application hostingLights-out service managementProvide code & service model, hit ENTERStorage at massive scaleComputeStorageManagement
SQL AzureRelational database as a serviceHighly available, automatically maintainedExtension of the SQL Server Data PlatformBusiness AnalyticsReportingData SyncDatabase
SQL AzureRelational database, provided as a serviceHighly symmetrical development and tooling experience (use TDS protocol and T-SQL)Highly scaled out, on commodity hardwareBuilt on the SQL Server technology foundationBeyond “hosted database”High availability, DB provisioning, and DB management are provided by the servicePay for what you use
Windows Azure AppFabricSecure connections between servicesAcross organizational boundariesClaims-based access controlServiceBusAccessControl
Windows Azure AppFabric - Service BusSecurely connect applicationsOver the internetAcross any network topologyAcross organizational boundariesPrimary application patternsEventing: Notify applications and/or devicesService Remoting: Securely project on-premises services out to the cloudTunneling: App-to-app communication with NAT/Firewall traversal
Windows Azure AppFabric - Access ControlProvides outsourcing of claims-based access control for REST web servicesKey capabilities:Usable from any platformLow friction way to onboard new clientsIntegrates with AD FS v2Supports WRAP / SWTEnables simple delegationUsed today by Service Bus and “Dallas”
Microsoft Codename “Dallas”Content brokerage and discovery platform Available as a CTP at commercial launchMicrosoft Codename “Dallas”Information Services
Introducing “Dallas”Content Brokerage and Discovery platform Discover, Explore, and Use any type of content (blobs, structured, real-time web services)Tap into an ecosystem of global content providersProcess & analyze dataEmpowers developers of all sizesBuilt on Windows Azure and SQL Azure
MSDN - Converting an existing ASP.NET application to Windows Azure
MSDN - Converting an existing ASP.NET application to Windows Azure
Windows Azure
Blob ContainerEntitiesAccountTablehttp://<account>.blob.core.windows.net/<container>http://<account>.table.core.windows.net/<table>MessagesQueueWindows Azure Storage Conceptshttp://<account>.queue.core.windows.net/<queue>
Blob StorageStore sets of binary dataText files, images, …Highly AvailableAutomatically scales to multiple servers and locationsDurableData is replicated at least 3 times
Table StorageStore sets of structured dataNot bound to schema!Billions of entities (rows) and TBs of dataAutomatically scales to thousands of servers as traffic growsHighly AvailableCan always access your dataDurableData is replicated at least 3 times
Table Storage CapabilitiesWhat tables don’t doWhat tables can doNot relationalNo Referential IntegrityNo JoinsLimited QueriesNo Group byNo AggregationsTransactions (limited)Very ScalableFlexibleDurableStore LOTS of stuff CheapIf these are important to you, use SQL Azure
Queue ServiceStore a queue of messagesFIFOCan be used by multiple worker roles
Windows Azure SummaryMany is better than oneLet Microsoft worry about thisLoose couplingWeb Role and Worker RoleStorage choiceAzure Storage: Simple stores scaleTable, Blob, QueueSQL Azure: Full RDBMSStored Procedures, Schema, Transactions, Views etc
Let’s have a look at…an existing application…
Existing ASP.NET applicationASP.NET Webforms“Repository pattern”Entity frameworkDatabaseFile storage on serverBuilt with no need for scale
An existing applicationDEMO
The shortest way to the cloudMigration paths
First things first…Tools:Windows Azure SDKWindows Azure Visual Studio Toolswww.microsoft.com/webNew solution:Blank “cloud service”Add existing projectsPromote to “web role”
Migration paths: hosting & file storageWindows Azure Web RoleHosting the web applicationWindows Azure Blob StorageHosting “user uploaded content”Option 1: HttpHandler+ Abstraction and migration freedom- Traffic & related costsOption 2: public blob container + Azure CDN+ Traffic & related costs+ Pretty download URL+ Fast! Nearby!-  Abstraction and migration freedom
Migration paths: dataOption 1: SQL AzureEasiest migration path for dataMore powerful RDBMSSync Framework Power Pack: http://bit.ly/5hTtSYSQL Azure Migration Wizard: http://sqlazuremw.codeplex.com/Option 2: Table storageWill be cheaper in operating costs for small applicationsWill probably require some rework
Migrating the applicationDEMO
Think before you go cloudy…Considerations
HostingMigrationWill be an easy migrationRemember to use the providers from the SDKKeep the “multiple roles” idea in mind!Considerations to makeStore all content in the application?Requires a re-deployment quite often…Better: store more dynamic content on blob storageBackground processingTry moving heavy CPU tasks to worker role where appropriateOne web role?Will be cheaper…But will have your application down during upgrade…Better: always > 1 web role (at least 2)
DatabaseWorking with EF / NHibernate / (insert ORM here)?SQL Azure wil be easiest path, but is more expensiveTable storage…Will get you frustrated if your application design is bad!(like mine in the demo)Use simple data structures for table storageMap these to whatever you want in your application
ArchitectureQuote: “Some architectures will require rework” All of them will require rework to do it right…Current application architecture not suited for large scale!I can go for multiple web rolesBut not for unlimited web roles…Think in “multiple roles”Web rolesBackedbyworkerroleswhereneededArchitecture will be one of the challenges
Typical ArchitectureService UnavailableVIPWorker RoleWeb RoleWindows Azure Storage (Blob, Table, Queue)
Web + Worker Role Service ModelWorker RoleService Still AvailableWorker RoleWeb RoleVIPWorker RoleWeb RoleWorker RoleWorker RoleWindows Azure Storage (Blob, Table, Queue)
Windows Azure - Coming soon…Programming modelAdministrator privileges in the VMDeployment of pre-configured VM imagesStill obtain the benefits of the WA service modelStorageUser-selectable geo-locations for replicasSecondary indices on tablesService managementRemote terminal server access to VMs
ResourcesWindows Azurehttp://www.azure.comSteve Marxhttp://blog.smarx.com/Clemens Vastershttp://vasters.com/clemensv/Simon Guesthttp://simonguest.com/blogs/smguestPDChttp://microsoftpdc.comMy bloghttp://blog.maartenballiauw.be/category/Azure.aspxRealDolmen blogs is running on Azure!http://www.realdolmenblogs.com
AZUG.BE – Azure User Group BelgiumFocus on the Azure Services PlatformCommunity-drivenFocus on architectureAnd developmentAnd the business value of Azurewww.azug.be
Questions, possibly Answers…?Maarten Balliauw – RealDolmenBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
© 2008 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.
Ad

Recommended

Deploying asp.net and mvc applications to azure
Deploying asp.net and mvc applications to azure
Glyn Darkin
 
Put Your Existing Application On Windows Azure
Put Your Existing Application On Windows Azure
Maarten Balliauw
 
Migrate an Existing Application to Microsoft Azure
Migrate an Existing Application to Microsoft Azure
Chris Dufour
 
Migrating Apps To Azure
Migrating Apps To Azure
Harish Ranganathan
 
Azure in Developer Perspective
Azure in Developer Perspective
rizaon
 
AppSphere 15 - Microsoft Azure for Developers & DevOps
AppSphere 15 - Microsoft Azure for Developers & DevOps
AppDynamics
 
Building & managing wa app wely
Building & managing wa app wely
Spiffy
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)
Chris Dufour
 
Azure Automation and Update Management
Azure Automation and Update Management
Udaiappa Ramachandran
 
Building microservices on azure
Building microservices on azure
Vaibhav Gujral
 
Get Started With Microsoft Azure Cloud Service
Get Started With Microsoft Azure Cloud Service
Jayant Chauhan
 
Resumen - Microsoft Build 2021
Resumen - Microsoft Build 2021
Miguel Angel Teheran Garcia
 
Azure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App Platform
giventocode
 
Java PaaS comparison
Java PaaS comparison
Srinivas Kumar R
 
App fabric hybrid computing
App fabric hybrid computing
Hammad Rajjoub
 
App fabric introduction
App fabric introduction
Dennis van der Stelt
 
Develop Your Own Path On Microsoft Azure
Develop Your Own Path On Microsoft Azure
WePlus Consultancy
 
Running SSIS 2017 at Scale Everywhere
Running SSIS 2017 at Scale Everywhere
Sandy Winarko
 
Microsoft Azure: Deploy and Scale Modern Websites
Microsoft Azure: Deploy and Scale Modern Websites
WinWire Technologies Inc
 
Enter The Matrix Securing Azure’s Assets
Enter The Matrix Securing Azure’s Assets
BizTalk360
 
Let's Talk About: Database Migration Service
Let's Talk About: Database Migration Service
Pedro Sousa
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Ido Flatow
 
IaaS vs. PaaS: Windows Azure Compute Solutions
IaaS vs. PaaS: Windows Azure Compute Solutions
Ido Flatow
 
Windows Azure Web Sites - Things they don’t teach kids in school - Comunity D...
Windows Azure Web Sites - Things they don’t teach kids in school - Comunity D...
Maarten Balliauw
 
Microsoft SQL Licensing Workshop - Software ONE
Microsoft SQL Licensing Workshop - Software ONE
Digicomp Academy AG
 
Azure sql introduction
Azure sql introduction
ManishK55
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud resource manager
Aymeric Weinbach
 
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Michael Rüefli
 
PHP And Silverlight - DevDays session
PHP And Silverlight - DevDays session
Maarten Balliauw
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudy
Maarten Balliauw
 

More Related Content

What's hot (20)

Azure Automation and Update Management
Azure Automation and Update Management
Udaiappa Ramachandran
 
Building microservices on azure
Building microservices on azure
Vaibhav Gujral
 
Get Started With Microsoft Azure Cloud Service
Get Started With Microsoft Azure Cloud Service
Jayant Chauhan
 
Resumen - Microsoft Build 2021
Resumen - Microsoft Build 2021
Miguel Angel Teheran Garcia
 
Azure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App Platform
giventocode
 
Java PaaS comparison
Java PaaS comparison
Srinivas Kumar R
 
App fabric hybrid computing
App fabric hybrid computing
Hammad Rajjoub
 
App fabric introduction
App fabric introduction
Dennis van der Stelt
 
Develop Your Own Path On Microsoft Azure
Develop Your Own Path On Microsoft Azure
WePlus Consultancy
 
Running SSIS 2017 at Scale Everywhere
Running SSIS 2017 at Scale Everywhere
Sandy Winarko
 
Microsoft Azure: Deploy and Scale Modern Websites
Microsoft Azure: Deploy and Scale Modern Websites
WinWire Technologies Inc
 
Enter The Matrix Securing Azure’s Assets
Enter The Matrix Securing Azure’s Assets
BizTalk360
 
Let's Talk About: Database Migration Service
Let's Talk About: Database Migration Service
Pedro Sousa
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Ido Flatow
 
IaaS vs. PaaS: Windows Azure Compute Solutions
IaaS vs. PaaS: Windows Azure Compute Solutions
Ido Flatow
 
Windows Azure Web Sites - Things they don’t teach kids in school - Comunity D...
Windows Azure Web Sites - Things they don’t teach kids in school - Comunity D...
Maarten Balliauw
 
Microsoft SQL Licensing Workshop - Software ONE
Microsoft SQL Licensing Workshop - Software ONE
Digicomp Academy AG
 
Azure sql introduction
Azure sql introduction
ManishK55
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud resource manager
Aymeric Weinbach
 
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Michael Rüefli
 
Azure Automation and Update Management
Azure Automation and Update Management
Udaiappa Ramachandran
 
Building microservices on azure
Building microservices on azure
Vaibhav Gujral
 
Get Started With Microsoft Azure Cloud Service
Get Started With Microsoft Azure Cloud Service
Jayant Chauhan
 
Azure Cloud Dev Camp - App Platform
Azure Cloud Dev Camp - App Platform
giventocode
 
App fabric hybrid computing
App fabric hybrid computing
Hammad Rajjoub
 
Develop Your Own Path On Microsoft Azure
Develop Your Own Path On Microsoft Azure
WePlus Consultancy
 
Running SSIS 2017 at Scale Everywhere
Running SSIS 2017 at Scale Everywhere
Sandy Winarko
 
Microsoft Azure: Deploy and Scale Modern Websites
Microsoft Azure: Deploy and Scale Modern Websites
WinWire Technologies Inc
 
Enter The Matrix Securing Azure’s Assets
Enter The Matrix Securing Azure’s Assets
BizTalk360
 
Let's Talk About: Database Migration Service
Let's Talk About: Database Migration Service
Pedro Sousa
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Ido Flatow
 
IaaS vs. PaaS: Windows Azure Compute Solutions
IaaS vs. PaaS: Windows Azure Compute Solutions
Ido Flatow
 
Windows Azure Web Sites - Things they don’t teach kids in school - Comunity D...
Windows Azure Web Sites - Things they don’t teach kids in school - Comunity D...
Maarten Balliauw
 
Microsoft SQL Licensing Workshop - Software ONE
Microsoft SQL Licensing Workshop - Software ONE
Digicomp Academy AG
 
Azure sql introduction
Azure sql introduction
ManishK55
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud resource manager
Aymeric Weinbach
 
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Michael Rüefli
 

Viewers also liked (8)

PHP And Silverlight - DevDays session
PHP And Silverlight - DevDays session
Maarten Balliauw
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudy
Maarten Balliauw
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meeting
Maarten Balliauw
 
PHPExcel
PHPExcel
Maarten Balliauw
 
Mocking - Visug session
Mocking - Visug session
Maarten Balliauw
 
ASP.NET MVC Wisdom
ASP.NET MVC Wisdom
Maarten Balliauw
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVC
Maarten Balliauw
 
MSDN - ASP.NET MVC
MSDN - ASP.NET MVC
Maarten Balliauw
 
PHP And Silverlight - DevDays session
PHP And Silverlight - DevDays session
Maarten Balliauw
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudy
Maarten Balliauw
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meeting
Maarten Balliauw
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVC
Maarten Balliauw
 
Ad

Similar to MSDN - Converting an existing ASP.NET application to Windows Azure (20)

A Lap Around Azure
A Lap Around Azure
DavidGristwood
 
Windows azure camp - Kolkata
Windows azure camp - Kolkata
Abhijit Jana
 
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
vaishalisahare123
 
Windows azure camp
Windows azure camp
Abhishek Sur
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform March 2010
DavidGristwood
 
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Maarten Balliauw
 
Azure and Umbraco CMS
Azure and Umbraco CMS
Orbit One - We create coherence
 
Azure for ug
Azure for ug
dotNETUserGroupDnipro
 
Sky High With Azure
Sky High With Azure
Clint Edmonson
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010
DavidGristwood
 
Ukfs Snr Dev Arch Forum Pres2 St
Ukfs Snr Dev Arch Forum Pres2 St
AllyWick
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
Bill Wilder
 
Windows Azure Platform Overview
Windows Azure Platform Overview
BusinessIntelligenze
 
Building services using windows azure
Building services using windows azure
Suliman AlBattat
 
Clouds clouds everywhere
Clouds clouds everywhere
Matt Deacon
 
Microsoft Partner Roadshow - To the Cloud
Microsoft Partner Roadshow - To the Cloud
Nigel Watson
 
Understanding The Azure Platform Jan
Understanding The Azure Platform Jan
DavidGristwood
 
The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)
Dave Bost
 
Design Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows Azure
Eric Nelson
 
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Hanneke Dotnet
 
Windows azure camp - Kolkata
Windows azure camp - Kolkata
Abhijit Jana
 
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
vaishalisahare123
 
Windows azure camp
Windows azure camp
Abhishek Sur
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform March 2010
DavidGristwood
 
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Maarten Balliauw
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010
DavidGristwood
 
Ukfs Snr Dev Arch Forum Pres2 St
Ukfs Snr Dev Arch Forum Pres2 St
AllyWick
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
Bill Wilder
 
Building services using windows azure
Building services using windows azure
Suliman AlBattat
 
Clouds clouds everywhere
Clouds clouds everywhere
Matt Deacon
 
Microsoft Partner Roadshow - To the Cloud
Microsoft Partner Roadshow - To the Cloud
Nigel Watson
 
Understanding The Azure Platform Jan
Understanding The Azure Platform Jan
DavidGristwood
 
The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)
Dave Bost
 
Design Considerations For Storing With Windows Azure
Design Considerations For Storing With Windows Azure
Eric Nelson
 
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Hanneke Dotnet
 
Ad

More from Maarten Balliauw (20)

Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
Maarten Balliauw
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Maarten Balliauw
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
Maarten Balliauw
 
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Maarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Maarten Balliauw
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
Maarten Balliauw
 
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
Maarten Balliauw
 
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
Maarten Balliauw
 
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
Maarten Balliauw
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days Poland
Maarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Maarten Balliauw
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
Maarten Balliauw
 
CodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory lane
Maarten Balliauw
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
Maarten Balliauw
 
ConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttling
Maarten Balliauw
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Maarten Balliauw
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
Maarten Balliauw
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NET
Maarten Balliauw
 
VISUG - Approaches for application request throttling
VISUG - Approaches for application request throttling
Maarten Balliauw
 
Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
Maarten Balliauw
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Maarten Balliauw
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
Maarten Balliauw
 
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Maarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Maarten Balliauw
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
Maarten Balliauw
 
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
Maarten Balliauw
 
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
Maarten Balliauw
 
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
Maarten Balliauw
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days Poland
Maarten Balliauw
 
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Maarten Balliauw
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
Maarten Balliauw
 
CodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory lane
Maarten Balliauw
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
Maarten Balliauw
 
ConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttling
Maarten Balliauw
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Maarten Balliauw
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
Maarten Balliauw
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NET
Maarten Balliauw
 
VISUG - Approaches for application request throttling
VISUG - Approaches for application request throttling
Maarten Balliauw
 

Recently uploaded (20)

Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 

MSDN - Converting an existing ASP.NET application to Windows Azure

  • 1. Converting an existing ASP.NET application to Windows AzureMaarten Balliauw – RealDolmenBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
  • 2. Whoam I?Maarten BalliauwAntwerp, Belgiumwww.realdolmen.comFocus on webASP.NET, ASP.NET MVC, PHP, Azure, VSTS, …MVP ASP.NEThttp://blog.maartenballiauw.behttp://twitter.com/maartenballiauw
  • 3. AgendaWindows Azure?An existing application…Migration pathsConsiderationsQ&A
  • 4. What’s in the cloud?Windows Azure
  • 5. The Windows Azure PlatformWindows AzureSQL AzureWindows Azure platform AppFabricDeveloper toolsMicrosoft Codename “Dallas”
  • 6. Windows AzureFlexible application hostingLights-out service managementProvide code & service model, hit ENTERStorage at massive scaleComputeStorageManagement
  • 7. SQL AzureRelational database as a serviceHighly available, automatically maintainedExtension of the SQL Server Data PlatformBusiness AnalyticsReportingData SyncDatabase
  • 8. SQL AzureRelational database, provided as a serviceHighly symmetrical development and tooling experience (use TDS protocol and T-SQL)Highly scaled out, on commodity hardwareBuilt on the SQL Server technology foundationBeyond “hosted database”High availability, DB provisioning, and DB management are provided by the servicePay for what you use
  • 9. Windows Azure AppFabricSecure connections between servicesAcross organizational boundariesClaims-based access controlServiceBusAccessControl
  • 10. Windows Azure AppFabric - Service BusSecurely connect applicationsOver the internetAcross any network topologyAcross organizational boundariesPrimary application patternsEventing: Notify applications and/or devicesService Remoting: Securely project on-premises services out to the cloudTunneling: App-to-app communication with NAT/Firewall traversal
  • 11. Windows Azure AppFabric - Access ControlProvides outsourcing of claims-based access control for REST web servicesKey capabilities:Usable from any platformLow friction way to onboard new clientsIntegrates with AD FS v2Supports WRAP / SWTEnables simple delegationUsed today by Service Bus and “Dallas”
  • 12. Microsoft Codename “Dallas”Content brokerage and discovery platform Available as a CTP at commercial launchMicrosoft Codename “Dallas”Information Services
  • 13. Introducing “Dallas”Content Brokerage and Discovery platform Discover, Explore, and Use any type of content (blobs, structured, real-time web services)Tap into an ecosystem of global content providersProcess & analyze dataEmpowers developers of all sizesBuilt on Windows Azure and SQL Azure
  • 18. Blob StorageStore sets of binary dataText files, images, …Highly AvailableAutomatically scales to multiple servers and locationsDurableData is replicated at least 3 times
  • 19. Table StorageStore sets of structured dataNot bound to schema!Billions of entities (rows) and TBs of dataAutomatically scales to thousands of servers as traffic growsHighly AvailableCan always access your dataDurableData is replicated at least 3 times
  • 20. Table Storage CapabilitiesWhat tables don’t doWhat tables can doNot relationalNo Referential IntegrityNo JoinsLimited QueriesNo Group byNo AggregationsTransactions (limited)Very ScalableFlexibleDurableStore LOTS of stuff CheapIf these are important to you, use SQL Azure
  • 21. Queue ServiceStore a queue of messagesFIFOCan be used by multiple worker roles
  • 22. Windows Azure SummaryMany is better than oneLet Microsoft worry about thisLoose couplingWeb Role and Worker RoleStorage choiceAzure Storage: Simple stores scaleTable, Blob, QueueSQL Azure: Full RDBMSStored Procedures, Schema, Transactions, Views etc
  • 23. Let’s have a look at…an existing application…
  • 24. Existing ASP.NET applicationASP.NET Webforms“Repository pattern”Entity frameworkDatabaseFile storage on serverBuilt with no need for scale
  • 26. The shortest way to the cloudMigration paths
  • 27. First things first…Tools:Windows Azure SDKWindows Azure Visual Studio Toolswww.microsoft.com/webNew solution:Blank “cloud service”Add existing projectsPromote to “web role”
  • 28. Migration paths: hosting & file storageWindows Azure Web RoleHosting the web applicationWindows Azure Blob StorageHosting “user uploaded content”Option 1: HttpHandler+ Abstraction and migration freedom- Traffic & related costsOption 2: public blob container + Azure CDN+ Traffic & related costs+ Pretty download URL+ Fast! Nearby!- Abstraction and migration freedom
  • 29. Migration paths: dataOption 1: SQL AzureEasiest migration path for dataMore powerful RDBMSSync Framework Power Pack: http://bit.ly/5hTtSYSQL Azure Migration Wizard: http://sqlazuremw.codeplex.com/Option 2: Table storageWill be cheaper in operating costs for small applicationsWill probably require some rework
  • 31. Think before you go cloudy…Considerations
  • 32. HostingMigrationWill be an easy migrationRemember to use the providers from the SDKKeep the “multiple roles” idea in mind!Considerations to makeStore all content in the application?Requires a re-deployment quite often…Better: store more dynamic content on blob storageBackground processingTry moving heavy CPU tasks to worker role where appropriateOne web role?Will be cheaper…But will have your application down during upgrade…Better: always > 1 web role (at least 2)
  • 33. DatabaseWorking with EF / NHibernate / (insert ORM here)?SQL Azure wil be easiest path, but is more expensiveTable storage…Will get you frustrated if your application design is bad!(like mine in the demo)Use simple data structures for table storageMap these to whatever you want in your application
  • 34. ArchitectureQuote: “Some architectures will require rework” All of them will require rework to do it right…Current application architecture not suited for large scale!I can go for multiple web rolesBut not for unlimited web roles…Think in “multiple roles”Web rolesBackedbyworkerroleswhereneededArchitecture will be one of the challenges
  • 35. Typical ArchitectureService UnavailableVIPWorker RoleWeb RoleWindows Azure Storage (Blob, Table, Queue)
  • 36. Web + Worker Role Service ModelWorker RoleService Still AvailableWorker RoleWeb RoleVIPWorker RoleWeb RoleWorker RoleWorker RoleWindows Azure Storage (Blob, Table, Queue)
  • 37. Windows Azure - Coming soon…Programming modelAdministrator privileges in the VMDeployment of pre-configured VM imagesStill obtain the benefits of the WA service modelStorageUser-selectable geo-locations for replicasSecondary indices on tablesService managementRemote terminal server access to VMs
  • 38. ResourcesWindows Azurehttp://www.azure.comSteve Marxhttp://blog.smarx.com/Clemens Vastershttp://vasters.com/clemensv/Simon Guesthttp://simonguest.com/blogs/smguestPDChttp://microsoftpdc.comMy bloghttp://blog.maartenballiauw.be/category/Azure.aspxRealDolmen blogs is running on Azure!http://www.realdolmenblogs.com
  • 39. AZUG.BE – Azure User Group BelgiumFocus on the Azure Services PlatformCommunity-drivenFocus on architectureAnd developmentAnd the business value of Azurewww.azug.be
  • 40. Questions, possibly Answers…?Maarten Balliauw – RealDolmenBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
  • 41. © 2008 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.

Editor's Notes

  • #18: http://eric.blob.core.windows.net/music/rock/rush/xanadu.mp3Blobs – Provide a simple interface for storing named files along with metadata for the fileTables – Provide structured storage. A Table is a set of entities, which contain a set of propertiesQueues – Provide reliable storage and delivery of messages for an applicationTab