This is a presentation I put together for the Denver Azure User Group (DAUG). This explains how we built using open source and Azure to build a robust system for managing our Local Listing data at Location3.
AGENDA• Why Azure?• Map Application Architecture Overview w/Demo• Things we learned• The Future• Tools• Open Source Resources
WHY AZURE?• .Net shop• Bizspark discount/price• Less maintenance/management for developers, we are a small shop. (PaaS versus IaaS)• TCO (Total Cost of Ownership)• Existing Brownfield applications are .Net• Lokad Cloud built on Azure (One core application was designed with)
MAP APPLICATION ARCHITECTUREEngine (Worker console, worker roles)• MVC (Asp.net MVC 3)• Generic Workers (Each worker is the identical)• Auto and manual Provisioning (Horizontal scalability)• Queues (Main source of work)• Loosely coupled via durable messaging• Idempotent work/Resilience (Will have no affect if message is reprocessed by different worker)• RDMS(SQL Azure)• Blob storage for generated reportsWeb Application• MVC (Asp.net MVC 3)• Authentication(ACS with WIF for authentication against ADFS)• RDMS (SQL Azure)• UI(JQuery,JQuery UI, and Jqgrid)SharedHeavy use of open source(Lokad Cloud,AutoMapper,Autofac,Cassette,Elmah,Rhino Mocks,Fluent Assertions,JqGrid,Windows Azure Accelerator)
THINGS WE LEARNED• We had to learn how to handle DB Backups on our own in for SQL Azure. (Rolled our own tool.)• Deploying to Azure is really slow.• Deploying web roles in current version of azure was painful so we used Azure web accelerator (Allows multiple sites on 1 or more web roles)• Azure SDK still doesn’t have abstractions over it making hard to test unless you run the emulator.• Learning curve to learn a framework and its nuances is better than trying to roll your own. More time to focus on the domain problem you are trying to solve.• Trying to figure out billing early on was very hard. We used a third-party beta SaSS product called CloudValue for a long time. Subscriptions were all billed metered separately, instead of rolled up across our account.• ACS, hacks for Azure with Certificates and encryption issues.
THE FUTURE• Going to migrate current web applications to new Azure Websites• Currently looking to move our Brownfield applications to the new Azure persistent VM’s• Recently involved in Hadoop on Azure Trial• Team Foundation Server in Azure or Git• We are hopeful within the next 1-2 years to have all IT Infrastructure in Azure or some other cloud service
TOOLSAzure Storage Explorer - http://azurestorageexplorer.codeplex.com/Cloudberry Explorer - http://www.cloudberrylab.com/free-microsoft-azure-explorer.aspxSQL DAC Import Export - http://sqldacexamples.codeplex.com/releasesSQL Azure MW - http://sqlazuremw.codeplex.com/