What is our primary use case?
I use it to deploy applications built with Spring Boot and Java.
How has it helped my organization?
Tomcat is installed on-premises. Then, we expose what we call the management console. Developers can log in to the management console and do deployments from there.
What is most valuable?
I like the flexible nature of Tomcat. It allows you to deploy so many applications within a single instance of Tomcat.
Moreover, Tomcat's ease of use has positively impacted project timelines. Tomcat already has high availability – it doesn't go down so often and doesn't require a lot of maintenance. As long as your application works, you can depend on Tomcat.
The integration with key databases like Redis and MySQL, as well as tools like RabbitMQ and more, is invaluable. Tomcat is a one-stop shop. You can easily connect to so many other resources that you need for a running system. If I were to summarize it, Tomcat is already a robust, quote-unquote, container for running a Java application.
For now, it fulfills all my integration requirements.
What needs improvement?
Tomcat could be a little bit more innovative. Tomcat could come up with a framework that's more lightweight and purely targeted at Java applications. Some other solutions are doing better right now, maybe because they have come up with MicroProfile, which I think is moving forward. It may actually beat Tomcat because of the lightweight nature of the framework, the MicroProfile. They're coming up with new solutions.
So, for the future of Tomcat and to maintain the market share they might be looking for, they need to come up with initiatives to ensure that several of us have a lightweight framework to deploy applications on.
For how long have I used the solution?
I have been using it for four years.
What do I think about the stability of the solution?
Tomcat has high stability. That's one of the reasons I like it – I build an app, deploy it, and it just runs. That's the kind of independence I want.
What do I think about the scalability of the solution?
It's very scalable. We currently have about a hundred engineers using it.
How are customer service and support?
We've never needed tech support.
How was the initial setup?
The initial setup is straightforward. We can do it in one to two hours.
For the deployment process, you download the zip file from the documentation page, copy it to a server, unzip it, configure certificates, ports, and users, and you're ready to go.
Tomcat is flexible. You can deploy it on-premises with your own server and storage, or you can embed an IP version into your application and publish it on cloud platforms like AWS or GCP.
Tomcat doesn't release upgrades very frequently. Right now, they're working on version 11, but version 10 has been out for over a year. This means I can stay on version 10 for a while, and if I want to upgrade, it's straightforward. I simply download the active apps for the new version, set it up, decommission the old one, and I'm running with the new setup.
What was our ROI?
The main benefits are scalability and availability. Tomcat offers this.
You don't need a high-end server. A server with 4GB RAM, 24GB storage, and maybe 20GB of additional disk space is enough to set up your Tomcat instance.
This means your infrastructure costs can be low – probably under $100 USD per month if you're starting out.
This means Tomcat won't impact your revenue much, and your return on investment (ROI) can be achieved quickly. With AWS, costs will be based on traffic, memory usage, CPU usage, and so on.
What's my experience with pricing, setup cost, and licensing?
It's open-source. We don't pay for the license.
What other advice do I have?
Overall, I would rate the solution a nine out of ten.
There are several application server options: JBoss, WebLogic, Tomcat, and Payara. I've personally worked with all of them.
I recommend Tomcat for on-premises deployments because I've found issues with WildFly – they have frequent releases and patches, and some become incompatible with existing setups.
My advice is to go with Tomcat for on-premises setups. Also, if you want to move to AWS or GCP, it's easy. You just need to change how you compile your application; the application itself doesn't need to change. It's a matter of moving from a WAR (web archive) file to a JAR (JAVA archive) file.
Which deployment model are you using for this solution?
On-premises