Windows Azure - When do I use What?

WindowsAzure

At this week’s Azure Dev Camp in Sydney, I showed a slide with suggestions as to when you’d use Windows Azure Web Sites, when you’d use Windows Azure Cloud Services, and when you’d use Windows Azure Virtual Machines. I pinched the slide from Yochay Kiriaty and Craig Kitterman’s TechEd US Session “Windows Azure Websites: Under The Hood (AZR305)”, which is well worth a watch by the way.

I’ve had a few questions and a couple of requests to post the slide, so here it is (reformatted for the blog format)

Windows Azure Web Sites are ideal for

  • Modern web apps
    Perfect if your app consists of client side markup and scripting, server side scripting and a database. Powerful capability to scale out and up as needed.
  • Continuous development
    Deploy directly from your source code repository, using Git or Team Foundation Service.
  • Popular open source apps
    Launch a professional looking site with a few clicks using apps like WordPress, Joomla!, Drupal, DotNetNuke and Umbraco

Windows Azure Cloud Services (Web Role) are ideal for

  • Multi-tier applications
    Cloud-based applications that separate application logic into multiple tiers (i.e. caching middle tier, asynchronous background processes like order processing) using both Web and Worker Roles  
  • Apps that require advanced administration
    Cloud-based applications that require admin access, remote desktop access or elevated permissions
  • Apps that require advanced networking
    Cloud-based applications that require network isolation for use with Windows Azure Connect or Windows Azure Virtual Network

Windows Azure Virtual Machines are ideal for

  • Enterprise server applications
    Run your existing enterprise applications in the cloud, such as SQL Server, SharePoint Server or Active Directory.
  • Porting existing line of business apps
    Choose an image from the library or upload your own VHD.
  • Windows or Linux operating system
    Support for Windows Server, along with community and commercial versions of Linux. Connect virtual machines with cloud services to take full advantage of PaaS services.