Guest post: Windows Azure – review from a developer

This is the first of either one or many (depending on your feedback) guest blog contributions from people who are not named Long Zheng, step two of my five-step process to world domination. Today’s guest post is by David Burela, a team member of my Imagine Cup team and developer in Melbourne Australia. I recently gave him a Windows Azure beta invite code and asked him to review Azure as a developer.


Windows Azure is a new “Operating System” that Microsoft announced at PDC. They are marketing it as an “Operating System for the cloud”, but what does this really mean? To understand what Azure is and how it is different from Windows Vista you need to know a bit of background on recent computing trends.

Cloud computing – A background

Gone are the days of companies hosting their own servers in a data centre, with all of the associated costs of maintaining the physical hardware and worrying about backups. Instead it is more economical to have companies like Google, Amazon or Microsoft create giant data centres who then lease computing power to us. These companies don’t purchase individual servers, or even servers by the rack, instead they purchase servers by the shipping container! When a company purchases one of these shipping containers, all they see from the outside are 3 holes: one for power, network and water cooling. This allows them to rapidly add extra computing power and expand data centres with a minimum of fuss. Due to the massive economies of scale that these data centres get, you are now able to go to companies like Amazon and GoGrid.com to rent entire virtual computers for around 10 cents an hour. The possibilities opened up by being able to very quickly and cheaply get processing power are immense. A simple example being an e-commerce website, here a company would usually have to purchase multiple servers to host their website to handle peak load, but will have 80% of their servers sitting there idling. Instead of having to outlay a lot of initial capital on these servers, the same company can instead rent a single server from one of these websites, and scale it up as demand increases (like the holiday season). This way they are only paying for server time they actually need.

However with this cheap raw computing power comes complexity. Now developers need to manually turn these virtual servers on, set up load balancers, install applications and maintain security patches, while also updating their code and websites across multiple servers.

Cloud computing – Azure

Windows Azure simplifies and automates the concept that Amazon started with. Azure provides a “compute fabric” upon which you can run your applications. An example being the e-commerce website again, we’re not concerned with which server is actually doing the processing. All we care about is that we have our code and require a computer to simply provide the processing power. With Azure a developer packages their code, deploys it to Azure and states how many servers should run it. Azure will handle all of the details such as provisioning servers to run the application, load balancing clients, security patches as well as a more seamless way to upgrade your applications.

Microsoft has a very short film clip that helps to explain the concept (under the old code name). http://au.youtube.com/watch?v=NZO9YE1ZvqE

But why is this an “Operating System”

Look at what Windows Vista does. When you run an application you don’t need to tell it to set aside bits of memory, interact with hardware, how to load files from the hard disk, etc. Azure has a similar concept, but instead of handling a set of hardware and files for you, it is handling servers and your application. As mentioned before it will automatically provision servers, ‘network them’ and set up things like load balancers. You are able to automatically scale the computing power that you need up and down on demand without you needing to understand how it is working under the covers. Azure will hide all of the underlying complexity from us like a desktop Operating System.

Review from a developer

It works, and it works well. Azure provides a LOT of functionality ‘out of the box’. The most important being the automated scaling of computing power as needed. But it provides additional core functionality such as virtually unlimited online file storage and simple database storage. This makes creating online photo galleries or massive online sites cheap and easy to setup. The extremely low cost of creating massive websites will level the playing field, anyone will be able to create the next MySpace or YouTube without requiring a massive outlay of money at the beginning to provision hardware in a data centre.

Advanced services are layered on top of the core Azure services, such as highly scalable relational databases, analytics and reporting. The costs of getting enough computing power required to do complex analysis over massive datasets will now fall dramatically, this will again open up another realm of possibilities for companies.

Live services are also available to all Azure applications, providing a rich set of tools and services that any developer can easily hook into to provide functionality like mapping, instant messaging, searching, etc.

Development experience

The best part about Azure is the development experience. If a developer is able to currently write .Net applications, such as ASP.Net websites, then they can take their skills and start working with Azure immediately. Many ASP.Net websites will work on vista immediately when included into a new Azure project, only slight tweaks may be needed. As a .Net developer myself, I just needed to learn the basic concepts of what Azure does (a 20 min research exercise), I then had my own Azure application created and running without any additional tools or training.

But to get the most out of Azure, applications will have to be architectured to be massively scalable from the start, which is a whole topic on its own.

Future

Azure is currently only in developer preview with limited access being handed out but with it have released enough functionality to let us see what Azure is and how to develop with it. However they haven’t released much additional information about what we will see over the next year. Of course they have said that lots of additional functionality will be released, but we will have to wait and see.

Conclusion

From a programmer perspective, Azure allows existing .Net developers to very quickly jump into this whole ‘cloud computing’ wave without needing to worry about the underlying technology as Microsoft is handling all the complexity for us.

From a business perspective, Azure will allow companies to reduce the running cost of their existing websites. Additionally, it will enable business applications to be cheaply and rapidly created to quickly respond to changes in the market.

Azure will be released commercially next year. It will be interesting to see what wave of new applications this technology will enable. A pair of programmers created YouTube but had growing pains when trying to expand. Imagine what can happen now that many more developers will be able to get over this stumbling block!

19 insightful thoughts

  1. I just wanted to say thanks for the flattering review of Windows Azure! In particular, your last paragraph really captures our vision of making it much easier for developers to build internet-scale applications. I look forward to seeing what you build with Windows Azure. Keep me posted!

  2. Windows 7 and Azure target totally different needs. Just like a Radio and a TV.
    7 is a desktop operating system, we’ll all be sitting in front of a computer which will require windows 7. But so that companies like MySpace can continue to create cool new websites, that is what Azure focuses on

  3. hmm. azure seems silly.. why dont they just put both of these functions into widnows 7 and make an even better OS?

  4. Great post David!

    “This is the first of either one or many (depending on your feedback) guest blog contributions from people who are not named Long Zheng…”

    I think you should have more guest posts Long. Obviously you are busier these days and the frequency of your blog postings has gone done, this blog would be more valuable to me if you had guest posts. Liveside has guest posts and the site functions fine.

  5. Excellent article David. I’m surprised at how many of the commenters are missing the point though and keep bringing up Windows 7…totally different scenarios Azure represents a paradigm shift and it is difficult to wrap your head around until you see it in action.

    I only take issue with one of your points: “Gone are the days of companies hosting their own servers in a data centre, with all of the associated costs of maintaining the physical hardware and worrying about backups.” Those days are not gone, yet. There is no way that my Fortune 500 company is going to trust ALL (some yes) of its data to Microsoft or whoever else. We just finished building another massive data center that we own and manage. I think Cloud computing for the enterprise will remain in-house for the foreseeable future.

    However, corporations will (and have) slowly start to put some data up in the cloud as it makes sense. Maybe most of it will be in the cloud some day. After all, when electricity was new companies built their own power plants until trust was gained and eventually it turned into a utility. Computing power is going the way of electricity and the only things of strategic value are the business process that consume the power.

    Existing businesses had better watch out because Azure removes a significant barrier to entry. Now anyone on the planet can create the next whatever and not have to worry nearly as much about deploying and scaling it. Be very very worried.

  6. Wow! More of these guest post things if they are going to be as great as this one. Better watch out Long…

  7. I to am working with Azure. I was able to get access to it about a week ago. So far it has been pretty good. It is a much smarter approach to cloud computing than what amazon is doing, its not a massive cloud of VMs.

    The out of the box stack is nice, however I think SQL Data Services needs the most work. I like where they are going but the current limitation are a bit harsh. The model is Schema”less” you do not make columns or tables, but containers and put objects in them, and the objects themselves are just property bags, they call them flex entities. You put entities in containers, and containers live in authorities. A container holds any type of entity you throw at it. The current limitation is that containers have to be small, right now 100 meg, my guess is that this will be a couple gig when released, but that still is small. You also cant search automatically between containers with a select, you have to do them individually. A speaker at PDC said they are working on this. The speaker also said they are going to cross the ADO Data Services and SQL Data Services, giving SDSS a more “Schema” like appoarch.

    The container part is still my biggest concern, I have tables alone that are many many gig and I cant logically split them up into containers. MS does this for scale-out, that is the trick – you get the massive scale by moving your data around multiple servers, to do this, the data has do be in chunks. Maybe they can make some massive map reduce auto container middle layer that handles this, I do NOT what to think “how am I going to break out my 10 million records into 20 containers”. It does sound like the team knows this is an issue, and will find a way, and they seem excited about it.

    The other services are very interesting, I am just now playing with the .NET Service Bus which is game changing for a very large client / server model app, it could be the backbone for a IM app.

    So far, happy, just needs a bit more time in the oven. Not even looking at Amazon anymore, though they REALLY need to release pricing on this puppy – it should be less than what Amazon is as there is far less overhead.

  8. ya the container stuff really does seem to be quite a nasty bunch of limitations but if they fix it i can really see it as being spectacular.

  9. Excellent Post .. guest postings is an excellent idea. I also like the fact you got some one form outside the United States to give there opinon … keep up the great work

  10. Really awesome entry. I now understand the importance of cloud computing, as well as the possible challenges that accompany it.

    More guest posts!

  11. Good job David. Long should make a wordpress account for you and let you write guest posts yourself rather than have him post them for you :P

    I personally liked the post. Hopefully people will realise how 7 and Azure are two very very different OS’ and how each of them is necessary :)

    Hoping to hear more from you :)

Comments are closed.