Does anyone care about enterprise application servers anymore?

A few years ago it seemed like everywhere you turned there was a vendor extolling the virtues of their enterprise application server. The message was very much “big is beautiful”. The more complicated the better. The more features the better. Fast forward to present time and is that message still the same?

In a recent conversation I was asked about my thoughts on this and my response was I don’t think these “do it all” application servers matter anymore. This post outlines my feelings on the matter.

Full disclosure

Because of my job I was forced to learn WebLogic, and I’ve always disliked it. I think it’s over-complicated, a pig to manage, and every quarter the list of vulnerabilities look like a horror show. Keep this in mind when reading the rest of this post. Basically, I’m saying this is my biased opinion and you don’t have to agree with me. I’m not throwing shade at any particular company. In my opinion, the mindset at the time was different to now, which resulted in similar products from multiple companies.

Also, it’s worth saying I’m not an application server guru, so that probably affects my views on the subject.

Third-party application vendors

The company I work for at the moment uses a lot of third party apps. From what I can see, the 3rd party application vendors that were previously looking to offer solutions on products like Websphere and WebLogic are quite happily getting rid of them in favour of more streamlined solutions. They are quite happy to forgo the additional features, or implement them with additional libraries in their code.

Maybe that’s just the application vendors I come into contact with. Maybe your experience is different. I would be interested to know, in case I’m totally off the mark here.

Containers

With the rise of containers we’ve become accustomed to small and lightweight pieces of infrastructure that focus on doing one thing well, rather than trying to be all things to all people.

I know you can run these enterprise application servers in containers and on Kubernetes, but it just feels like trying to force monoliths into containers. That’s not my idea of progress.

When I talk about lightweight, I’m not just thinking about the size of the footprint, but the complexity of it also.

Administration

The administration of the monoliths is too complicated. Given the choice of training up a new person on WebLogic or Tomcat, I know which I would pick.

Even after all these years, when we get an issue on a WebLogic server a piece of me dies because I know I’ll be rooting around for ages to get the answers. In comparison, Tomcat is so much simpler.

We go back to my definition of the size of the footprint again. The complexity of some of these products comes at a cost.

But what about product X?

I realise that some products still need these enterprise application servers. If you use a product that needs them, that’s fine. Continue doing so. I just wouldn’t be looking to buy new products that require that much investment in time and money. It’s just my opinion though.

Moving to the cloud

One of the things I’ve mentioned several times is the move to the cloud changes things significantly. To a certain extent, I don’t care about the underlying technology used by a cloud service. I just care that it meets my requirements. Does it perform well enough? Does it have the required availability? Does it come at a reasonable price? Is it really easy to administer, or preferably need no real administration? Does it support the programming language/framework I care about? At no point am I really thinking about the underlying tech.

If a cloud provider builds out there service using an enterprise application server, that’s fine. I just don’t want to pay those licensing fees, and I don’t want to see any of the management. I want the most streamlined experience I can get.

What do you think?

I’m really interested to know what you think. I come to this conversation with a lot of bias, so I understand if a lot of people don’t agree with me. Are you looking to simplify this layer of your infrastructure, or do you still lean on the side of “big is beautiful”?

Cheers

Tim…

Author: Tim...

DBA, Developer, Author, Trainer.

6 thoughts on “Does anyone care about enterprise application servers anymore?”

  1. deploy weblogic.jar to tomcat and create a docker container in a cloud VM, job done 😉

  2. We started from scratch with our new product and have moved away completely from application servers to lightweight containers (and node.js) in the backend and nginx at the front end.
    Simpler is better 🙂

  3. Lonneke: That is the sort of response I am hearing a lot. Simple self-contained tools that perform an action well.

  4. I’m with you, Tim, when you say that is complicated to manage, monitor, etc. A lot of customers suffer with the app server management, and in particular, when you run workloads such as Oracle SOA Suite on top of Weblogic, it was hard to keep it simple and without the risk that a single process can kill the whole system. Also the diagnosis of a problem, reading thread dumps, understanding the thread lifecycle and so on, makes it a little harder for people to understand what is happenning behind the scenes.
    But for people who has been managing and using app servers for the last 20 years, in my opinion, is easier to understand the values of modern architectures, since some of the problems that you’ve lived while managing and deploy them, can be avoided by using a moder arch.

  5. On one side I see an every-month need for (asking our WLS admins to) restarting WLS because of whatever esoteric reasons.

    On the other side I see lightweight, self-contained, self-hosted (Jetty or Kestrel) solutions working at least equally well, if not better, than those residing at WLS’s.

    To me as a dev the choice is absolutely clear.

    To my large corporate employer… not so much.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.