How VMware tc Server Differs from Apache Tomcat?
tc Server provides tooling to manage the lifecycle of a Java Servlet Container. This tooling includes a powerful templating engine which allows a consistent and repeatable configuration to be used. tc Server consists of 4 major components:
- The tc Server core, or
tcserverCLI. This command line interface is used to create instances, apply templates, start, stop, and even delete tc Runtime Instances (also referred to as
instances). The tc Server core can easily be upgraded independently of the tc Runtimes and tc Runtime Instances it manages by installing an updated version and pointing it to the same instances and runtimes directory as the previous version.
- The tc Runtime Instance which is the CATALINA_BASE containing webapp(s), configuration, logs, etc. This is linked to a specific tc Runtime (CATALINA_HOME) and can be easily updated to use a different tc Runtime version as long as it is the same major version.
- tc Runtimes which are 100% compatible with ASF Tomcat and built from same source base. This is the CATALINA_HOME linked to by tc Runtime Instances.
- Templates which are used to apply a repeatable configuration to instances. Examples of templates include adding ssl connector, diagnostics, and integration with third party services.
This table outlines the differences between Apache Software Foundation’s Tomcat and VMware tc Server. Features may require the latest version of tc Server.
|Feature/Topic||Apache Tomcat||VMware tc Server||Details|
|Leadership and Expertise||Community channels||Direct access to the top committers on the Apache Tomcat project||Nearly 90% of the commits on Apache Tomcat projects are from VMware employees|
|Security Diagnosis and Resolution||Community channels||VMware Support and Engineering||VMware’s Tomcat experts are, in many cases, the ones who are alerted to possible security vulnerabilities and resolved the confirmed vulnerabilities|
|Multi-instance shared binaries||Must be configured||Default configuration||By default, tc Server instances are created using the “separate” layout to allow trivial upgrades and a simple separation of the server binaries and the instance configuration in order to preserve configurations|
|Instance Provisioning, Lifecycle Management, and Administration||None||Included||
tc Server provides the following instance lifecycle management out-of-the-box:
tc Server provides the following instance administration out-of-the-box:
|Variable Substitution||Must be configured||Default configuration||
Allows consistent configuration (e.g. common server.xml config)
Easy management of ports and other properties
|Tuned for Secure Environments||Secure||Enhanced secure configuration||In addition to Apache Tomcat secure steps, tc Server has enhanced the secure environment by limiting external access to management apps, locking down ports, and limiting remote access to JMX|
|Automatic runtime version retrieval||None||On instance creation||On instance creation, tc Server will automatically retrieve the tc Runtime binary requested*|
|On-demand tc Runtimes||None||Command-line interface||
Upgrade or downgrade to new versions of tc Runtime (Tomcat runtimes) using a simple command *
List available tc Runtimes, specify a specific version, or grab the latest recommended version
|Apache Tomcat Binary Compatibility||Yes||Fully Compatible with Apache Tomcat||
tc Runtimes provide features that extend Apache Tomcat functionality
tc Runtimes are 100% compatible with Apache Tomcat versions
|Security and Regression Fixes||Wait for a community release||The tc Server team will provide maintenance releases||Since the VMware tc Server team consists of members of the security team for Apache Tomcat and we are able to release at will. VMware is able to provide security fixes, in many cases prior to the public being aware of an issue at all|
|Extended JMX Interface||None||Included||tc Server ships with a template provides access to a secure set of JMX MBeans for increased visibility and actions on the instances (e.g. dynamic log levels, diagnostic metrics, and deployments)|
|Advanced HTTP Session Replication||DeltaManager and BackupManager||GemFire, in addition to DeltaManager BackupManager||
VMware GemFire Session Manager as a template for instance configuration.
GemFire provides better scaling with larger sessions, control over copies, sockets options and more.
|Datasource Diagnostics||None||Included||A diagnostic template is available for easy instance configuration. It provides a JDBC diagnostic datasource with slow-query identification and a thread diagnostic valve that is applied via the diagnostic template|
|Security Encoding and Decoding||None||Included||Provides simple way to secure passwords and other vulnerable values in property files by using high-encryption password obfuscation|
|RPM and Debian Packages||None||Included||DEB and RPM packages are provided via our download site.|
|Linux/Unix Service Management||None||Included||tc Server provides a systemd template that is available to generate a configuration so systemd can manage a tc Server instance (e.g. starting the instance at boot)|
|Kubernetes support||None||Included||tc Runtimes can be created and configured via a single command using ConfigMaps and/or Secrets|
|Cloud-native Buildpacks (CNB)||None||Included||Create your own container images using CNBs and deploy them on Kubernetes or run them in Docker|
- External internet access required