Recently I decided to break the mold and look into something other then WCF RIA Services, mainly because every developer on the planet seems to be doing just that. As fascinating as I find it, the concept is simple enough to grasp where gaining a stronger understanding would not be that hard to gain. I decided to change gears at look at something that has just as much potential: Windows Azure.
So why? Well working on in New York on what is becoming a very complex project I have begun to notice that my knowledge of scaling strategies could use a bit of work, and what is Windows Azure about: scaling, among other things. You see after doing some initial reading I tend to think of Azure as this way to gain near infinite scalability and without the cost or complex designs that generally come with a highly scalable deployment model. I decided to poke around and gain more insight into Azure, in particular SQL Azure and get some rough ideas on what it could offer.
So, I wont bore you with talking about how to create a deploy a “Hello World” Azure app, that tutorial can be found here. Essentially here is what appears to be happening. When you download and install the Windows Azure Toolkit you get a Cloud Project template. Utilizing this template prompts you for creation of “roles” among which is a Web Role. You can roughly think of this as an instance of a web server running in the cloud. This means you can dynamically configure how many you want, thereby easily scaling up to match demand, without increasing hardware cost. Just gotta pay the man for the bandwidth and processor you use; very cheap in comparison. Note: This is an over simplification and I am aware of it
So some links that are helpful:
- Windows Azure Training Kit (thanks @mikewo for this link)
- Windows Azure Tools for Visual Studio
- RESTful Northwind on SQL Azure
- SQL Azure Videos
Perhaps the coolest bit of Windows Azure is this idea of “Database as a Service” brought forth via SQL Azure. Based on what I am reading it has the ability to dissolve the common bottlenecking problems that occurs in many applications (database is a central point and therefore a bottleneck). But using “the Cloud” you can have as many SQL Azure instances running as you like and they even take care of backup, migration, maintenance, and replication tasks by themselves, all you do is pay for the storage. I love this aspect and if my assumptions about it are correct it may prove useful to not just my current client but many others to come.
The final piece I have been looking at is AppFabric. Just based on what I have seen so far it appears to allow application to have a “cloud runtime” complete with configuration settings and what not. I am the least sure about this piece and look forward to more exploration in the future.
To this end I am attending Azure Bootcamp in Southfield, MI next week ahead of my vacation to Japan.