One of the other announcements from yesterday is that there's now tooling for Eclipse which should eliminate this pain point. See http://msdn.microsoft.com/en-us/library/windowsazure/hh69094... for an overly-detailed description of deploying a Java app to Azure.
It didn't take long to figure out (Microsoft is one of the few companies that really puts a lot of effort into documentation, and I appreciate that).
I have two other problems with that:
- I need to think about it again whenever a (security) update is released for the software (not only including the jvm, but also the web server and, for me, scala and akka)
- I have to upload that whole mess each and every time when I update my software. For my slowish internet connection, it took at least 30 mins to upload the whole stack (JRE, netty, scala, akka). [Fixed that by putting the .zips into the storage (whatever their S3 is called) and let the .cmd script download these]
Oh wait, I just remember one more detail about the webserver (taken from the .cmd):
:: 3) Place a Jetty 7.x distribution as jetty7.zip under approot in your project
:: 3.1) If you want to download the server into Azure directly from a URL instead, then
:: uncomment the next line and modify the URL as appropriate:
:: cscript /NoLogo "util\download.vbs" "http://download.eclipse.org/jetty/7.4.5.v20110725/dist/jetty... "jetty7.zip"
That is just wrong. If the eclipse server is down or changes its URL... my servers won't start. And, if I load balance my servers, I everytime use server resources of eclipse?
I really do not understand why Microsoft doesn't simply provide VM images with Java and the common webservers pre-installed. Or, at least a repository inside azure where I can download common Java versions and other common Java software. They spent big marketing dollar on their website and documentation on Java, yet when I actually used it, it felt like the engineer spent 2 hours on the Java support.
All of this is fine IF I want 100% configurable IaaS. But I'd rather have PaaS (which is what the parent comment was about), and Heroku, CloudBees etc. have so much more to offer, at least for Java.