Over a million developers have joined DZone.

In Defense of Tomcat

· Java Zone

Discover how AppDynamics steps in to upgrade your performance game and prevent your enterprise from these top 10 Java performance problems, brought to you in partnership with AppDynamics.

Sateesh Narahari of MuleSoft says he's cleaning up the FUD he's been hearing from Java EE app server vendors about Tomcat.  As a company that's heavily invested in open source Tomcat products like the Tcat Server management tools (which are free to use in development and pre-production environments), MuleSoft believes a "bloated" JEE app server isn't always the best option.  Most developers should know this because several surveys indicate that Tomcat severs are used in a majority of Java development shops.  Narahari says that vendors stand to lose a lot of business if you move more applications over to Tomcat:

"If you've considered ever considered a move to Apache Tomcat, you may have come across statements like these:

"Tomcat is only good for development; it doesn't perform well in production."

"Tomcat is not proven for use in your vertical - you should be running Java EE app server."

"You won't be able to get any support if you run your applications on Tomcat."

"Tomcat needs to be modified and our forked version of Tomcat is the only one you should use."

"You shouldn't move away from Java EE to Tomcat, you should move to a lightweight Java EE app server."
"

Narahari then attempts to refute these statements, claim-by-claim:

"What they say: "Tomcat is only good for development - it doesn't perform well in production."

FUD Buster
: This is not correct - several high performing web applications use Tomcat as their app server, including ETrade, WalMart, Cardinal Health, The Weather Channel and more. Anyone saying Tomcat isn’t suited for production use is either uninformed, or giving
you the run-around.  Want more data?  Check out this list of all websites, systems and applications that run on Tomcat, refer to this page on Apache's website. You might need to clear some time out of your schedule, because it's about a mile long.  Case closed!

What they say: "Tomcat is not proven for use in your vertical - you should be running a Java EE app server."

FUD Buster
: Actually, this statement is more of a half-truth. There may be some special situations where a reliance on legacy applications forces you to use a legacy application server.  However, in the majority of mainstream verticals, Tomcat has been proven more than a match for the job, and the proof is available across multiple industries - healthcare providers, auction houses, financial organizations, grocery stores, real estate... It's simply not a matter of debate.  Let's put this myth to rest.  Tomcat is proven in the vertical.


What they say: "You won't be able to get any support if you run your applications on Tomcat."

FUD Buster:   No support?  There several world-class companies, including MuleSoft, that provide first class support for Apache Tomcat. For example, MuleSoft employs a team of Tomcat experts led by Jason Brittain, author of Tomcat 6: The Definitive Guide (O'Reilly), who provide our customers with 24/7 rapid response Apache Tomcat
support.

What they say: "Tomcat needs to be modified and only our version of forked Tomcat is the right one you should use."

FUD Buster
:   As we pointed out above, Tomcat is battle tested and has been used widely in production. If a vendor is telling you to use their forked version of Tomcat, you should be bit concerned about that vendor's true motives.  Vendor lock-in is never a good situation to find yourself in, and that's just what these companies are setting you up for when they try to sell you their "improved" version of Tomcat.  I am not saying Tomcat does not have any wrinkles, but those are minor annoyances when compared to a vendor lock-in situation.  Use a forked version of Tomcat, and you're at the mercy of one vendor for security and bugfix patches, without the ability to upgrade to the latest version of Tomcat on your own.  That’s not help – that’s hurt.


What they say
: "You shouldn't move away from Java EE to Tomcat, you should move to a light weight Java EE app server instead!"

FUD Buster:  Let's get the facts straight.  Using Java EE app servers is proven to be unhealthy for your IT environment.  It increases cost and complexity and puts you on a operational treadmill, leaving very little time to actually run your business.  Java EE includes over 25 technology standards that are designed by armies of committees over years of meetings. However, most web applications do not require more than four or five of these technologies.  When you use Java EE you are paying hefty license fees and jacked up infrastructure costs for features and complexity that you most likely don’t need. Move away from Java EE - there is no such thing as a good lightweight Java EE app server; by definition, any and all Java EE-compliant servers are burdened by the weight of the same bloated committee designed standards.

I'm curious to hear about your experiences dealing with these tactics.  Have you ever been confronted by this or any other FUD from large app server vendors or from people within your own organization who are afraid of change and resist the move to a lightweight applicationserver?"

If you want to find out more about Tomcat's strengths and weaknesses as an application server, check out this article from TomcatExperts.com or MuleSoft's Apache Tomcat Resource Center.

The Java Zone is brought to you in partnership with AppDynamics. AppDynamics helps you gain the fundamentals behind application performance, and implement best practices so you can proactively analyze and act on performance problems as they arise, and more specifically with your Java applications. Start a Free Trial.

Topics:

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}