Keyvan Nayyeri

God breathing through me

Is Windows Azure the Right Technology for the Future?

Windows Azure It’s PDC time, and unlike the last two conferences, I haven’t been very active in publishing the news and my opinions about it. PDC used to be one of my favorite technical events before, but to be honest, the last two conferences were very disappointing for me.

As you may have noticed, these days I’m more like a listener than speaker, and would like to read others’ content rather than writing my own blog posts on different topics, however, this great post by Frans made me write my own opinions on Windows Azure and cloud computing stuff that are being presented in this huge atmosphere by Microsoft because I believe that this whole thing is not a big deal to have such a noise around it, and somehow Microsoft is exaggerating about the products that it has provided in this area.

In PDC 2008 and 2009 Ray Ozzie has been focusing on Windows Azure and the nature of cloud computing as the future of software world and Microsoft development technologies, and has been stressing that they’re trying to provide an integrated set of tools and a unified model of software development based on cloud computing for Desktop, Mobile, and TV devices.

I have no comment on the latter assertion as I also admit that Microsoft is good at providing integrated solutions and it’s one of the main reasons for its success in this field, but I think that I’m not at the same line with Microsoft and some fellow community leaders on the importance of Azure at the moment. In essence, I believe that Microsoft has missed many things in between that had to come before Azure in the mainstream and has quickly jumped to something that is far (maybe impossible) from becoming the main concern of common software development scenarios. I try to develop this and explain my reasons in the below paragraphs.

I know PDC as the main Microsoft event for developers in which they try to introduce and showcase the newest products for software developers, and have a set of different sessions in various categories to teach developers some general information about the new technologies to get them started, and send them to the community and their companies in order to promote these products and spread the word. PDC 2003 and 2005 were great examples of this strategy and I can recall them as two great conferences that had a huge impact on the Microsoft community and follower companies for years.

In my opinion Bill Gates was a great leader for Microsoft and one of the key points of the long-time success of the company was the fact that he was able to predict the main requirements of the software world to invest in them. He knew when to enter the video gaming field by a console, and when to enter the mobile world with Windows Mobile. On the other hand, he also had some mistakes and one of them was the inability to recognize the importance of online search and advertisement, and they’re still unable to catch Google in the field!

PDC 2000 and 2001 focused on the .NET Framework and new generation of Visual Studio and in 1-2 years they became the mainstream because there was a huge demand for a cross-platform technology for software development. In PDC 2003 and 2005 they introduced enhancements in the .NET Framework and new technologies such as ASP.NET 2.0, ASP.NET AJAX (formerly known as Atlas), WCF, WPF, and WF, and you saw that they had their own demand in the past few years.

Here I’d stress that the reason that all these products could succeed was the real demand that was there for them among ordinary software developers and companies for common software projects. The set of classic controls and wizards in ASP.NET 2.0 or ease of AJAX development in ASP.NET AJAX were some stuff that were becoming the common demand for developers.

But PDC 2008 and the current one, 2009, are far from that point or at least it’s hard to believe for me that the main topic of these conferences, Windows Azure, can have that demand in the coming years. I think that Microsoft leadership has the wrong imagination of the current situation in the software world.

The first question that comes to mind is about the importance of cloud computing in the main software development world? Putting some discussions that support the assertion and are all made by evangelists aside, do you, as some ordinary software developers, believe that cloud computing is the main area of the software world in the next 3-5 years? What is it coming to solve? What is it coming to help with? Are these concerns the main concerns of all software developers, teams, and projects, especially yours? In my experience, the answer is a simple “No”!

The second question is, if cloud computing is really necessary, do we really need such a big and complex structure to respond to our needs? Why can’t we use another solution such as those provided by Amazon or Rackspace? Why should we go this far and put all this effort in Windows Azure? In other words, even if cloud computing is a major concern, what are the advantages for Azure over its smaller rivals that are simpler and easier to implement? Even if there are some software projects needing a cloud solution, I do think that most of them will be satisfied with very simpler solutions.

The other challenging point is about the precedence of cloud computing in comparison with other requirements in the software world. How can you run a software on cloud when a simple change and redeployment requires a recompilation? Yes, I know that Dynamic Extensibility has been a field of work in the .NET Framework but it seems that it has more priority and precedence over cloud computing while it hasn’t received it yet.

The last point is somehow related to the politics of software. Considering that Windows Azure is going to host enterprise large-scale applications, we all know that most of such applications fall in two categories: strategic applications (such as those written for banks, militaries, etc), and big commercial applications that would be comparatively less. How many governments and banks are ready to host such strategic applications on Microsoft data centers? I think that you know the answer yourself!

Besides, this Azure wave is something more like an imposed discussion by Microsoft evangelists to the community than something really demanded by people, themselves. There were noticeable demands for say, new features in ASP.NET 2.0 or ASP.NET AJAX, but I can’t see such a demand except those encouraged by Microsoft evangelists.

Having all this stuff said, to me it seems that in the current economic situation the best thing to work on is some ways to automate the Software Development process, accelerate the coding speed, and reduce the overall costs of a project for companies. I think that this could be a better area to invest in than cloud computing.

As a side-note, it’s very interesting for me that Microsoft conferences have become a place saturated with evangelists to spread a noise about something to advertise it. Microsoft wants to force people to accept its products and technologies rather than attracting them to use. At this point, some readers want to find me and kill me!

The bottom line is that they can waste much money on holding such relatively expensive conferences, giving fantasy keynotes with 3D glasses, and asking people to cheer them (the people who have paid to come and watch this fantasy), but the software market in the world is demanding something else, and if they can’t respond to these demands, they’re letting their rivals take the power. What I see is a huge group of community leaders and talented people who prefer to stay at home, and even don’t watch these keynotes and follow the stuff because they’re becoming so boring.

Windows Azure should be a great technology for a company like Microsoft to host many of its own services and upcoming integrations on it, but I doubt that it can be something appropriate for the main body of the software world.

5 Comments
Pingback from Dew Drop – November 19, 2009 | Alvin Ashcraft's Morning Dew

Nariman
Nov 23, 2009 7:29 AM
#
Keyvan – I couldn’t disagree with you more on this one. Nothing has piqued my passion and enthusiasm in recent years than the PaaS/IaaS offerings from the Big Three (Amazon, Google, Microsoft). The problem that they solve is to abstract infrastructure complexities of servers, applications, power, security, data, and heterogeneous platforms – the “muck” as Jeff Bezos calls it. Yes, these are challenges that plague every day businesses and developers (and it pains me to have to spend time in this area as opposed to enriching the product itself).

As to your second question (on why we can’t use Rackspace or Amazon), scaling intelligently requires more than an OS in the cloud (scaling databases is particularly challenging – this is what SQL Azure and the recent Amazon RDS attempt to address – to address gaps in “SQL Server” images that have been available on EC2 for years). Ryan Barret has a great presentation on ‘multi-homing’ that’s worth a watch.

I’m not sure I understand your third question, but I agree with the 4th one – it’s unfortunate that ‘privacy’ concerns will curb adoption over the short-term; eventually though, social/legal/technical advancements will make this a moot point and competition will force the hand of the reluctant.

Can you see the benefit of SaaS? The benefit of gmail or Exchange-online versus on-premise Exchange? The benefit of hosted analytics like Omniture or GA? Hosted collaboration/CMS (SharePoint Online or Google Sites)? The same efficiencies of scale apply to IaaS and PaaS.

There’s zero doubt in my mind that this is future – it truly is a ‘disruptive technology’.

Keyvan Nayyeri
Nov 23, 2009 8:41 AM
#
@Nariman

First of all, thank you very much for sharing your comments and thoughts.

The main point of this post, in essence, was the fact that in my opinion cloud computing doesn't seem to concern the mainstream businesses in the software market and even if it does, for most circumstances it doesn't need that level of complexity, so Azure doesn't seem to become a big deal for the future of the software world.

Besides, you may have seen the pricing plans for the service and as far as I’ve heard from friends’ feedback, it doesn’t seem like a good fit for many small/medium-scale business in the field.

Areg Sarkissian
Nov 25, 2009 9:57 PM
#
First I have to say that I am a fan of your writing and also own a copy of your MVC book.
I do however have an alternate take on Azure. I think cloud services and particularly Azure have the opportunity to democratise web application development/deployment just like blogging tools democratised citizen journalism.
The very point that you agreed with which was the great tooling integration goes a long way in making this possible.
Below I have posted a copy of my, admittedly fictional ,account that I posted at Frans' blog:

...Let me explain from a point of view of a Lone ASP.NET MVC developer's perspective trying to launch the next FaceBook ( I know, I know its a one in a hundred million chance but for the purposes of illustration...) I download the new VS2010 Beta 2 and Azure deployment toolkit. I lock myself in my bedroom all weekend and hammer out the next big internet application)
I test it on the simulated azure app fabric environment on my PC. Through the azure tools,I create 2 web role instances (one of which acts as staging and the other as production - both with identical environments) and one sql azure database. I package my application and database with VS2010 and upload to staging instance using the azure portal tool right from my desktop. After making sure everything runs great on the staging web role ,I swap the two web roles where the production becomes staging and staging becomes production and I'm done.
I am so lucky that next day the site gets blogged about on TechCruch and I get a massive amount of traffic in the next 24 hours. So I quickly provison as many instances of the production web roles as I need to handle the spike. Alas people do not find the application as compelling as I thought it would be so traffic dies down quickly and I scale down the instances back to just two.
This is powerful stuff for a single developer
working from his home office. He can do all this from within VS sitting at his desk .
Of course this is just one scenario and different people and companies will have different needs. I do love the choice though.
BTW after all of this there is one reason I am still not sure if I will be using azure. It has to do with limitations of being able to set your own unique domain name. Now if they fix that, then were talking.

Keyvan Nayyeri
Nov 25, 2009 10:26 PM
#
@Areg

Thank you for your comment and sharing your experiences.

I totally agree with your point of view and have no doubt that Azure is a helpful technology but the main point of my post was arguing that Azure can become the commonly used technology for web development in the next few years. Surely, it will be used by developers but as I mentioned in my post, I doubt it can be the common technology, so that's why I didn't like it being the main topic of PDC09.

Leave a Comment





Ads Powered by Lake Quincy Media Network