I recently posted that Microsoft have support for running Java applications on Azure. I was intrigued by this offering and wondered why Microsoft were chasing this market when they have yet to convince their own .NET community that Azure is a suitable cloud platform over say Amazon AWS.
I develop for both the Java and .NET platforms so am not biased towards one or the other, and having a Platform as a Service (PaaS) such as Azure being capable of supporting both would be highly attractive to me and my company as we could streamline our cloud usage to a common platform. Until the recent Windows Azure Starter Kit for Java, the process of deploying a Java application to Azure involved writing some .NET code in C# and some Azure specific config files. The new CTP makes the process a little simpler but it is still tedious if I take the view I am a Java developer and not a .NET developer. With the CTP release Microsoft have said they are interested in getting feedback from Java developers so they can ‘nail down the correct experience for Java developers’.
I find this approach very naive. Java has always defined a standard structure for Web applications that enable them to be deployed to many different servers, from vendors such as IBM and Oracle with no change in code or configuration. When it comes to cloud deployment, Amazon with Elastic Beanstalk, VMware with Code2Cloud and Google with Goggle App Engine, all enable standard Java Web applications to be deployed to their clouds. They have taken the standard structure and worked with it and created tools that make deployment seamless. Developers need not change anything from the way they normally develop to the way they normally deploy to use their clouds. So why have Microsoft decided to be different and create a tool that seems to want to mix a bit of .NET and a bit of Azure into the standard Java Web application world ? I really cannot understand the approach they have taken.
So in a highly competitive space, Microsoft have released an inferior toolset, requiring new skills to deploy to a cloud that is more expensive than the equivalent others on a per hour basis. To me it seems they have failed at the very beginning of their attempt to entice Java developers to the Azure world. Hopefully I am wrong, because as I stated before it would suit me to be able to deploy Java to Azure, but I am not expecting anything better soon. If you would like to try the toolkit out, Microsoft are offering 750 hours per month free on their extra small instances plus a SQL Azure database. Let me know how you find it.