Azure Like It

A current pet project runs on IIS, and having found too many restrictions with the IIS instance on my shared hosting accounts I needed to look for alternatives. Digital Ocean and Linode are great reasonably priced VPS services, but Linux only, and this project doesn’t yet warrant the cost of getting a dedicated box somewhere. My familiarity with Amazon Web Services meant that I have quickly been able to setup Amazon Web Services stack utilising Windows Server EC2 instances, Elastic Load Balancing, Auto Scaling, and Cloudfront…. the biggest downside to this approach is the ongoing management and maintenance of the Windows Updates that the VM’s will need, so I’ll probably loop back at some point to try out IIS on AWS Beanstalk. [update: feedback from some friends is that Beanstalk doesn’t automagically update the OS/IIS ]

I’ve had a few little looks at the Microsoft Azure offering, but have found the information on the Azure site difficult to navigate, however this felt like it should be the perfect opportunity to get to know Microsoft Azure better.

As I mentioned, the Azure Website is unfortunately the first barrier to entry… it’s very nice looking, but initially I struggled to easily find the information I was looking for:

On the services list, what do they mean by a ‘Website’?

Do I want a ‘website’ or a VM?

Does a ‘Website’ give me full IIS control, and if so what version?

Is there a free tier for a year (like with AWS) or developer environments – how much can I explore the offering before the cost becomes noticeable.

(Perhaps Microsoft should consider an “Introduction to Azure for AWS users…”)

My ideal would be more of maintained IIS in a PaaS fashion, rather than a VM running a full OS that I have to maintain and update…. I hoped this was what ‘Azure Websites’ was about, and I’m glad to have fond the following confirmation: https://azure.microsoft.com/en-us/services/web-sites/

“Run your Web apps in a high-availability environment with automatic patching. Web apps deployed with Azure Web Sites are isolated and are hosted in VMs dedicated to your applications – ensuring predictable performance and security isolation. Built-in OS and web-server patch management performed automatically with zero downtime.

So – let’s get stuck in:

Screenshot 2014 07 05 10 34 08 Screenshot 2014 07 05 10 44 50

 and a free 30 day trial (though I really do value the 1 year free tier you get with AWS)

Screenshot 2014 07 05 10 50 00 Screenshot 2014 07 05 10 50 44

  Initial confusing layout:

Screenshot 2014 07 05 10 51 26

But gave some guidance in suggesting a refresh:

Screenshot 2014 07 05 10 51 38

It’s a good looking interface, though for the unfamiliar, not an entirely intuitive set of choices:

Screenshot 2014 07 05 10 51 55

Let’s fire up a New ‘Web Site’:

Screenshot 2014 07 05 10 53 43

Within a few minutes it’s looking good:

Screenshot 2014 07 05 10 53 53 Screenshot 2014 07 05 10 54 22

mysite.azurewebsites.net is now public:

Screenshot 2014 07 05 10 55 24

Some nice clear options for configuring my WebSite:

Screenshot 2014 07 05 10 57 36

Next step was to get some of my project tests files on to the instance. I’ll consider a Visual Studio based deployment workflow, but for now using FTP, so needing to: ‘Setup Deployment Credentials’

Git and FTP cannot use your Windows account to authenticate, so this dialog lets you specify a user name and password that can be used when using those technologies.”

The interface displays details of the instances FTP and SFTP, but this bit puzzled me for a little while as I was getting errors trying to connect using Filezilla.

The solution was to ‘Download the publishing profile’, and to extract the details from there, the password appears to be a more complex and secure derivative, rather than the password I keyed in.

Files uploaded, and initial tests all looking good.

I’ll need to upgrade the instance to a basic or standard one in order to be able to enable auto-scaling, but for now, I’m going to point an AWS Cloudfront distribution at the Azure instance, and then CNAME that distribution to a subdomain on my project. (I’ll explore the Azure CDN offering at a later date.)

A few things to note about the ‘free’ tier:

** “Free and Shared (Preview) tiers include 60 minutes and 240 minutes of CPU capacity per day, respectively.” http://azure.microsoft.com/en-us/pricing/details/web-sites/ . So I’ll have to be somewhat ‘measured’ about how I utilise the instance while on a Free or Shared Tier, which isn’t exactly helpful for the project development phase, where I’m likely to have some variability in the times when I am working on this pet project.