Hello everybody. I have 3 years of experience with
Java programming and web programming. I have used
Tomcat during these years with a jsf-like framework.
Recently I got really pissed off by server downtime due to hardware failure and also by redeployments of my application on Tomcat each time I put new features or bugfixes. My clients were more pissed off than me. So I promised to myself that my next web-app will be highly available.
It is quite easy to achieve such a feature with a stateless application: I could just go with frameworks like Spring or Play and replicate my app on multiple servers. The only concern would be replicating also the database and maybe rsyncing data folders. Even though almost anything can be achieved with a stateless architecture, I personally prefer stateful apps. I have some basic knowledge of JavaEE and plan on building some experience with it. A few friends of mine told me, though, that managing a cluster of application servers requires decent skills and could also be time consuming. Something a developer would not want to worry about. Is that true? I thought I could just install
Wildfly or any other AS on multiple servers, setup the cluster and don't worry too much about it.
In your experience, do you think it's really that bad to manage a cluster of AS with multiple apps? Of course, as a developer I would love to just use a PaaS like heroku or amazon and forget about the hardware, the servers and the whole platform. But with such services I feel like in prison, I really like to have control of the underlying layer of the application. I also have the feeling that once you start developing on these platforms, you are bound to them, because your code is specifically tailored to work on them.