Tomcat is more than enough to deploy most of the mid-end web applications without any problem but for the high-end applications which require high scalability and high availability, which might need some tune-ups with the support of expertise in this regard. Otherwise, you may realize numerous performance issues, memory leaks, server crashes etc.
Large companies will find it particularly useful, but smaller companies and independent developers will not be able to afford the cost, and will not see many advantages compared to using an open source solution. However, having some software to handle continuous integration build servers as well as deployments, and doing this consistently between products, is absolutely essential.
Continuous Deployment - you can use Bamboo to automatically build and deploy whenever there are changes in the source code.
Continuous Integration - by integrating the automated tests and the integration tests before deploying you make sure you know immediately if the latest code fits into the whole scheme of apps.
Integration with Jira and Bitbucket.
Flexibility with the program language used for builds: Maven, Ant, PowerShell, any command line tools.
tomcat is just part of the J2EE specification implementation, majorly focusing on the servlet (front-end) part. If you requires the full J2ee stack, like EJB support, you need consider other containers like Weblogic
tomcat's cluster level support is very limited
tomcat's admin/configuration is not so intuitive, and default logging needs a lot of improvement
Tomcat has a very rich API set which allows us to implement our automation script to trigger the deployment, configure, stop and start Tomcat from the command line. In our projects, we embedded Tomcat in our Eclipse in all of the developer's machines so they could quickly verify their code with little effort, Azure Webapp has strong support for Tomcat so we could move our application to Azure cloud very easy. One drawback is Tomcat UI quite poorly features but we almost do not use it.
Bamboo offers solid usability for teams looking for an integrated, scalable CI/CD solution, especially those using Atlassian tools. Its interface is intuitive for existing Atlassian users, and its focus on deployment automation makes it a strong option for continuous delivery. However, its complexity and cost may pose challenges for small teams or those new to CI/CD. Overall, Bamboo’s usability shines in environments where ease of integration and streamlined workflows are prioritized. Still, it may require more effort for teams unfamiliar with its setup or without dedicated resources.
Tomcat doesn't have a built-in watchdog that ensures restart upon failure, so you have to provide it externally. A very good solution is java service wrapper. The community edition is able to restart Tomcat upon out of memories exceptions.
Tomcat support to customize memory used and allow us to define the Connection pool and thread pool to increase system performance and availability, Tomcat server itself consume very little memory and almost no footprint. We use Tomcat in our production environment which has up to thousands of concurrent users and it is stable and provides a quick response.
Support for Bamboo has started lack a little over the years. Atlassian has been moving more towards Bitbucket Pipelines and away from the on-premise install of Bamboo. While the tool is still great, it may take a little bit of time to get a question answered by official support.
Commercial application servers are available that support enterprise application needs, but many times this is overkill for most web applications running in the cloud, particularly for independent software vendors. The capabilities and management tools provided with these applications are superior to Tomcat, but most times unnecessary for the vast majority of web applications developed in Java.
We chose Bamboo over Jenkins for 2 reasons - one, for its tight integration amongst all the products in the tool suite. We find explicit value in the traceability from JIRA issues all the way down to the Bamboo build that was triggered by the check in of those issues. The second reason was for support - we didn't want the burden of figuring out how to support Jenkins in our production environment, as can be the case with so many open source products.
It has simplified administration efforts, thus saving much time to focus on other projects and issues.
It saves us in costs, as there are no licensing requirements.
It gives us the ability to manage all of our java applets in one place, so as to be able to host both development and production systems on one server.