Java wishlist for Windows Azure
By arungupta on Feb 11, 2011
|TOTD #155 explains how to run GlassFish in Windows Azure. It works but as evident from the blog, its not easy and intuitive. It uses Worker Role to install JDK and GlassFish but the concepts used are nothing specific to Java. Microsoft has released Azure SDK for Java and AppFabric SDK for Java which is a good start but there are a few key elements missing IMHO. These may be known issues but I thought of listing them here while my memory is fresh :-)|
Here is my wish list to make Java a better on Windows Azure:
- Windows Azure Tools for Eclipse has "PHP Development Toolkit" and "Azure SDK for Java" but no tooling from the Java perspective. I cannot build a Java/Java EE project and say "Go Deploy it to Azure" and then Eclipse + Azure do the magic and provide me with a URL of the deployed project.
- Why do I need to configure IIS on my local Visual Studio development for deploying a Java project ?
- Why do I have to explicitly upload my JDK to Azure Storage ? I'd love to specify an element in the "ServiceConfiguration" or where ever appropriate which should take care of installing JDK for me in the provisioned instance. And also set JAVA_HOME for me.
- Allow to leverage clustering capabilities of application servers such as GlassFish. This will also provide session-failover capabilities on Azure :-)
- Sticky session load balancing.
- If Windows VM crashes for some reason then App Fabric restarts it which is good. But I'd like my Java processes to be monitored and restarted if they go kaput. And accordingly Load Balancer switches to the next available process in the cluster.
- Visual Studio tooling is nice but allow me to automate/script the deployment of project to Azure.
- Just like Web, Worker, and VM role - how about a Java role ?
- And since this is a wishlist, NetBeans is the best IDE for Java EE 6 development. Why not have a NetBeans plugin for Azure ?
- A better integration with Java EE APIs and there are several of them - JPA, Servlets, EJB, JAX-RS, JMS, etc.
- The "happy scenario" where every thing works as expected is fine is good but that rarely happens in software development. The availabilty of debugging information is pretty minimal during the "not so happy scenario". Visual Studio should show more information if the processes started during "Launch.ps1" cannot start correctly for some reason.
And I'm not even talking about management, monitoring, adminstration, logging etc.
Thank you Microsoft for a good start with Java on Azure but its pretty basic right now and needs work. I'll continue my exploration!
Christmas is coming later this year ... and I'll be waiting :)