It’s been just over a week since Microsoft has started to offer the commercial subscription of Windows Azure. As a Cloud enthusiast, I quickly signed up for the Introductory Special subscription and downloaded the required tools to deploy my first app to the Cloud. I had access to Windows Azure since PDC08 and I deployed quite a few apps to test the functionality and features of the platform. As an independent Cloud Computing Strategist, I also explore Amazon Web Services and Google App Engine. Having worked on a few mature Cloud Computing platforms and tools, I had certain expectations from Windows Azure particularly after it has gone past the beta phase. Honestly, there is no significant difference (except the pricing part) that I could notice in the development and deployment experience on Windows Azure.
Here is a list of top 5 things that I feel Microsoft should fix immediately.
5) Metering and Billing Model – Microsoft would start charging the moment you deploy your app even if it is not running and not consuming any resources. Refer to the FAQ on pricing for more details. I personally find this as a huge entry barrier. Ideally, I wouldn’t want to get charged when my app is in ‘Suspended’ mode and not in ‘Run’ mode. Technically speaking, what resources would my app consume when it is not running? It would only be a few megabytes of storage to keep the package and the configuration files. Amazon doesn’t charge me VM hours for inactive AMIs. They only charge me for the nominal storage cost of storing the AMI on S3. Charging VM hours for an idle application is just not convincing enough. I find it to be counterproductive and a barrier for developers to embrace this platform.
4) Simpler Pricing and Subscription Plans – Microsoft is at it again! After confusing the consumers with half-a-dozen flavors of Windows Vista and recently with Windows 7, they are doing it to their Online Services subscribers. There are at least 4 types of subscription to choose from – Introductory Special, Development Accelerator Core, Development Accelerator Extended and ‘Pay As You Go’ Consumption. This bouquet of subscription offers is confusing and not a straightforward model. This reflects the classic Microsoft way of packaging and licensing products in the form of Express, Standard, Professional and Enterprise. This doesn’t gel with the online services model. I personally prefer the Amazon way of pricing and the sign up process. Simple and straightforward!
3) Agile Deployment and Faster Change Management – On the commercial version of Windows Azure, it takes more than 7 minutes for the application to be available and accessible. And, I am not talking of an Azure application built to assist NASA launch the Mars Rover. This is a plain and simple Hello World ASP.NET app that doesn’t even have a single line of server side code. Add a Worker Role, few lines of dynamic code and storage access code, it will take a good 10 minutes for your application to take off. Again, comparing this with Google App Engine and Amazon EC2, they are almost instant. Each Linux EC2 AMI takes about 2 min. to boot and I am at the root prompt in no time. Windows Azure is a PaaS offering and I cannot afford to wait for few minutes every time I make a trivial change to my HTML file. I can understand if Amazon forces me to go through this as I may have to bundle the AMI with every change that I make. With EBS now supporting booting AMIs, I need not even worry about bundling the AMI. Windows Azure might also be doing the job of spinning the new VMs for every change that I make to the app or the configuration. But I don’t care and cannot wait for 10 minutes for the simple changes to reflect. This needs to be fixed!
2) Configuration Editor – After you deploy the Cloud application, you may need to change the configuration settings. This includes changing the no. of instances of Web Role / Worker Role or changing a custom configuration setting. Having a plain vanilla textbox to change the sensitive configuration setting is just not acceptable! Microsoft has every reason to put up a better frontend to manage the configuration settings that can be potentially built using Silverlight. At least that will drive more downloads of Silverlight plugin. One look at the Configuration settings textbox makes me feel that I am working on an early CTP release. I consider the EC2 Console from Amazon (and a bunch of 3rd party tools like ElasticFox) and ElasticHosts’ configuration editor to be much better. Though Microsoft may want to encourage partners like RightScale to eventually build such tools, as a paid subscriber I deserve a better tool here!
1) Windows Azure Integration with Visual Studio – This certainly deserves to be the numero uno. The biggest USP of Microsoft is its integrated platform and tools approach. Whether it is core .NET Development, Microsoft Office Development, BizTalk Adapter Development or SharePoint Development, it has always been the ‘Better Together’ story for the developers by putting Visual Studio in the center. When it comes to Azure, I had a lot of expectations from Microsoft on the Visual Studio integration. The reason for that is Azure is logically an extended development platform on the Cloud and the developers should be able to seamlessly deploy their new breed of applications. To my surprise, Windows Azure Tools for Visual Studio 2008 1.1 has little to no integration with the real Azure platform. When I right click on the Cloud Service project and select Publish, I expected Visual Studio to prompt me for my Windows Live ID to enumerate the Hosted Service project to seamlessly deploy the app onto Azure and then take me to the Development Portal to let me decide between staging and production. The approach of opening an Explorer window with the folder containing the .cspkg and .cscfg files and launching the browser with the Azure development portal appears to be so broken! Compare this with the Eclipse and the Google plugin integration. Two independent entities coming from different companies offer a better experience to the developers than Azure Tools for VS. When I click on the GAE button on Eclipse toolbar, it just does the deployment after prompting me for the Google ID and the Application ID. I am not sure if this would get fixed in Visual Studio 2010. But as of now, on the currently available Visual Studio 2008 SP1, it is not in place. I want Visual Studio to fully support me end to end during my Cloud application design, development, testing and deployment. I also expect an integrated Azure Storage tool within Visual Studio. I should be able to browse and manipulate the Tables, Blob metadata and the Queues. Today I have to rely on 3rd party tools for this which doesn’t make the developer productive. Overall, Visual Studio and Azure integration has a long way to go!
source : MSV