I've played around with Azure a bit in the past, but have recently dug into it much more than before. I'm not even close to an Azure expert, but I have to say...
So far I'm impressed.
In case you're not familiar with Azure, here's the link to find out a whole lot more than I can recite. Basically, it's a cloud infracture as a service offering which provides cheap, reliable, and easy to use computing services.
Coolness #1 - Quick Create
Standing up a new website is always a pain and requires a lot of what developers referred to as "plumbing". The analogy is that we're hired to build a beautiful house and our clients, and especially us, don't want our time to be focused on running plumbing lines (sure, plumbing has to work, but we were hired to build something).
With Azure I can stand up a website clickity-click. Click the New button, select Quick Create, provide a name, and click Create Web Site. Wait ~5 seconds and the web site is ready to receive your code.
Doing the same through most hosting companies? Submit a touble ticket and/or open an account, and wait for them to do it. It'll take a couple of hours or longer.
Doing it on your own server? Drag out the cheatsheet you (hopefully) created last time because you've probably forgotten how you did it last time...go into IIS, create a web site or virtual directory, select the correct Application Pool, muck with a bunch of settings. Hope you got it all right and repeat if you didn't.
Coolness #2 - Deploy from GitHub
We all love automation, and pushing code to a hosted server or your own server is a pain. After building the code in your IDE, deploy locally, maybe zip the file, FTP or RDP transfer the file to the server, unzip, copy/paste into the file directory.
Instead, with Azure you can provide your github credentials and let it know which repo and branch to deploy from. Within about 5 seconds of pushing to github, Azure is notified of the change, pulls the latest code, compiles, and deploys for you. That's one less thing you need to worry about.
If multiple people are working on the project then you don't need to train everyone on how to deploy - they can do it themselves by doing something they already need to be doing anyways - committing/pushing.
Easily deploy different branches too. Set up a DEV website in Azure to monitor and deploy from a DEV branch. Setup another website to monitor and deploy from a QA branch, etc.
Coolness #3 - Supports lots of technologies
I recently stood up this blog runs which runs on Ghost. Ghost is a Node.js application and uses SqlLite. Before trying to stand it up in Azure I though, "This is going to be a nightmare. Azure will probably only support .NET". Wrong. I pushed Ghost and clickity-click, it worked.
Two days ago I pushed an Angular and Mongo project and thought, "Ugh, Mongo. I wonder what hoops I'll need to jump through." Clickity-click - it just worked.
One of my clients in California has two main applications; one uses ASP.NET and Sql Server, the other uses PHP and MySql. Azure supports all those technologies, and I'm now pitching to push everything to Azure.
Look at all the technologies this one platform supports. So (almost) no matter what technology I choose, Azure covers me.
Coolness #4 - Web App Gallery
The reality of my Ghost deployment was that I spent a good chuck of a day tweaking and re-tweaking Ghost code so it would work in a cloud environment. These tweaks were needed because Ghost is a fairly new product and some thing just didn't work with Azure.
After successfully tweaking Ghost configurations and getting it up and running, that night I found out that Ghost had just been added to the Azure App Gallery. So I created a new website to test setting up Ghost from the App Gallery.Click, click, it was deployed. Too easy.
And there are lots of other templates in the App Gallery. Once deployed, you can FTP into Azure to get the files, make changes, and have Azure get and deploy the changes from github.
Coolness #5 - It's pretty cheap
In the past I've used shared hosting companies which usually have some technical limitations and cost about $150/yr or more.
For the past couple of years I've had my own server which is really convenient, but wow...it's really expensive. The server was $5,000 and the data center costs $120/month. Plus I have to manage everything on the server (plumbing), install MS patches, etc. Too painful.
In comparison Azure costs less than $10/month per web site.
Coolnees #6 - More than just websites
Honestly, my knowledge of Azure doesn't go beyond deploying websites. At least not yet. But what's comforting is to know that Azure supports way more than just websites. So you won't need to go find another vendor for things like:
- Databases (of course)
- Virtual machines
- Active Directory
- Mobile applications services
- Hadoop (aka HDInsight)
- Service bus
- Using a third-party API
There are a lot of other cool things that Azure can do like provide hardware redundancy, load balancing, and automatic failover. All the benefits of using the cloud over your own server or a hosted environment on a physical server.
I haven't dug that far, but given what I've found so far and what I know is still there to be leveraged later, I'm sold.