Looking at the title of this post, you might notice something missing. It's the classic five questions:
But the title is missing two of them… where & when. Well those are easy:
- What: look at the title… my blog is hosted on Azure… that's what
- When: right now… actually, starting back on March 19, 2013
In this post I want to touch on a few questions I've been getting about my blog since I elected to move it.
Why Did I Go with Azure as the Host?
This might be the easiest question to answer, and the quickest decision I had to make. First, I was loving the improvements that I saw the Azure team add to their stack over and over the last year or so. Ever since Scott Guthrie took over, that product has become so much more friendly to developers and is aggressively adding new features.
I also liked the fact that when I was having issues with my blog, unlike before where I had to stop doing what I was doing and debug / troubleshoot why I was using so many resources. Now… if I don't have the time (or the patience), I can just throw more hardware & money at the problem until I get it under control. I can't tell you how many times my old blog was having performance problems and I would have jumped at the chance to say to my hoster "I'm busy, here's $100… make it work and I'll deal with it later."
How: Software and Hardware Configuration
As I've stated previously, I'm running the OrchardCMS open source CMS engine v 1.6. It's mostly a stock configuration except I've done a little manual tweak to keep all my settings, storage and media storage of my site in a Azure storage blob rather than with the website codebase… you can see how that's done in this post in the OrchardCMS forum on CodePlex.
Everything is running in Windows Azure. I'm using Azure Websites to host my blog, specifically a single instance of the medium configuration which is a dual-core machine with 3.5 GB of RAM allocated. This is configured to run in reserved mode which is more pricy than the free or shared mode, but I prefer the level of isolation over what shared gives you.
All my data is stored in a SQL Azure database… I'm using the 5GB Web Edition version which suits me just fine. I'm also storing all content files (the configuration "settings.txt" file Orchard uses and all content media files) in an Azure storage blob which has been setup with it's own custom DNS CNAME pointer.
Finally, I've also provisioned an instance of the Azure Add-On SendGrid product that lets my site send up to 25,000 emails/month for free which powers my contact page.
Another service I'm leveraging for my blog is Disqus which hosts the commenting feature for my blog. I love being able to moderate and respond to comments via email, as well as letting someone else maintain a white list.
I've setup Disqus, and the contact form on my blog, to use my Akismet key which you can think of is like a crowd contributed spam blocking solution.
The most common question I keep getting is around pricing. I've intentionally held off on addressing this because I wanted to see first hand what the pricing looked like for a regular consumer. Then I wanted to make a change and take advantage of a benefit I have and run under that for a month and see what that experience was like. Well, I've now done both for at least a month.
When I first launched, I was using a commercial, or regular, Azure subscription… the classic "pay-as-you-go" where you pay for the services you use. I ran this way for over a month with the above configuration. Easily the biggest cost was the Azure Website hosting which was calculated in compute hours and was the biggest expense. Here's what the cost breakdown looked like for my blog:
- Total Usage Cost for Compute Hours (Azure Web site): $78/mo est
- SQL Azure DB: less than $6/mo est
- Data Storage (Azure Blob) & Transfer: less than $2/mo ets
Now that first month of service wasn't exactly cheap at $86/mo est… it was more than I expected it would be. You pay for what you get. I really like the ability that when my site was having some performance issues due to some misconfiguration and settings on my part, when I didn't have time to address it I just bumped up the size of the web roles I was using and the number of them.
Now, as an MSDN Universal Subscriber, a benefit I get from my MVP award, we get a certain allocation of Azure resources. These are real resources, not some developer or scaled back edition… that's how Azure does it: everything is production to them, you pick if stuff is developer or not. So I wanted to move everything over to use those services. The best part of this move is that after one month, I stayed under my allocations for resource usage and as such, my bill dropped to zero. The most expensive part of my Azure bill comes from the compute time for the website. Last month I only used up 80% of my allocation. One cool part of this benefit with MSDN is you can elect to tie a credit card to your account which means if you go over your allocations, the overage goes to your credit card. Basically, it's like you get free minutes on your mobile phone plan until you go over, and then you start paying a pro-rated fee
I was going to show a fair comparison, if you took my usage from my last month under the MSDN plan and applied the pay-as-you-go rates, but I have to admit I'm having trouble making sense of how the calculations are made and excluding other Azure services I'm operating. Regardless, the consumption numbers are basically the same so the price would have been basically the same, I'm just taking advantage of some build in allocations.
So the question I know you'll ask: if you didn't have an Azure benefit through your MSDN subscription, would you still pay for it? My answer: absolutely. Is it more expensive than a typical $10/mo plan? Absolutely. But I've been on those plans and I can do so much more than I can wit those like leverage new services Azure is adding all the time. Or you have better access to stuff you use than you do under a shared hosting plan (recycle your app pool, export/import your SQL Server database, scale up/down your website at a moment's notice, etc).
Is that worth it for a personal website? You have to make that call. But for me, my blog is my "company" site and for me knowing it's on Azure and always up and online… it's worth the price for the peace of mind.