Currently, I am running the application as a fat JAR with embedded tomcat server. However, the application would require high availability and clustering in future. Should I consider deploying it in an application server like Jboss? I am open to any software, as long as it is reliable and handy for a simple application like mine.

  • Sorry I've read "running", "application" as keywords for that you are applying for same job :-) I remove the post. – peterh Apr 22 '20 at 14:15
  • Haha! There's no need to apologize. Please proceed to post the actual answer if you have an idea about this. – Sangames Kumar Apr 22 '20 at 14:24
  • Okay, done. But maybe it would be a better option to delete my answer, because it decreases the probability that yet another arrives. If nothing happens, I can any time undelete it. – peterh Apr 22 '20 at 14:40

In my experience, appservers actually do not increase the availability/reliability. It is an important feature in them for their own developers, but fact is that it does not work in practical circumstances. They mean only a new source of possible bugs and configuration problems.

They could have many nice features (like session sharing, or even TLS state sharing), but these features mean little gain on a huge pain. Note: a complex system also mean more danger of an outage and hardly debuggable problems. Cluster systems are all complex, and they can be only done only rarely without critical parts. And these are all Java apps, meaning that even if you reached a good redundant structure of the application, you still have yet another round of pain, doing the same on the persistency backend, too.

Most typically, redundant clustering means in Java environment a code explosion, because they are being done on the java, ignoring the fact that it runs in a complex system of other softwares (for example, apache frontends, or various backend services).

You can learn server-side Java admin/devops at best with Tomcat. Thus, if you would like to choose an appserver, use tomcat (and not the spring boot embedded one, but an ordinary one with its xml configuration).

Beside appservers, jboss (and yet more: weblogic) are often considered large fossils, which is imho not very true, particularly not in big corporate environment. However, to learn them is real pain, mostly because the lack of adequate docs and resources (which is because they not really widely used).

Alternatively, Jetty has yet a KISS (keep it simple and stupid) reputation.

If you really want to learn redunant clustering, Weblogic and Jboss (recently renamed to Wildfly) are the more likely options. Note, these are far harder to configure, than Tomcat.

  • Hi peterh...I am given enough time and support from infrastructure and devops team for configuration of app servers...The main motive here is to choose which app server/web server would match the best. Rest is next. I am not sure why you are mentioning about job interview or vacancy description. – Sangames Kumar Apr 22 '20 at 14:02
  • @SangamesKumar Sorry I've read "running", "application" as keywords for that you are applying for same job :-) I remove the post. – peterh Apr 22 '20 at 14:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.