This week is an exciting one at MuleSoft — we just announced our newest product, MuleSoft Tcat Server. Tcat Server is a new enterprise Tomcat server, which provides application provisioning and server management capabilities for Apache Tomcat. You can read the press release here.
Why did we choose to build this new product? In talking with the mule community, we realized that Mule ESB and Tomcat are a natural fit – over 65% of our community is running Mule in or alongside a Tomcat environment. The majority of these Tomcat users have said they consider Tomcat to be enterprise capable, but they need better features around run-time diagnostics, application provisioning, and server management capabilities for groups of servers. We also heard that our users are not looking for yet another Java EE app server based on Tomcat, such as JBOSS or Geronimo. They want to be able to develop and run their Tomcat applications with no changes to their code and no vendor lock-in, but to get enterprise-class features and support for their Tomcat servers to run these applications in production.
Following are some of the capabilities that we have developed in Tcat Server.
Today, you have to manage Apache Tomcat instances on an individual basis. While this might work for a small environment, as soon as you have more than a handful of Tomcat instances, it becomes harder to manage them individually. Tcat Server provides a central console to manage your Tomcat server instances. Using Tcat Server, you can group servers together into server groups and then deploy applications to these server groups. Below is an example for organizing servers into server groups.
Currently, there are multiple ways of deploying applications to a Tomcat server. You can either copy the WAR file or copy the extracted WAR file to the webapps directory. Alternatively you can use the manager application included with the Tomcat distribution to remotely upload an application (WAR or extracted WAR file contents). However, all these methods are manual and are prone to human error. In addition, there is no easy way to version the applications and keep track of application deployments.
With MuleSoft Tcat Server, we are adding the capability to provision applications either as a single WAR file or group them together as a package to be deployed together onto a single server or group of servers at once. All deployment actions are tracked as deployment history, including the result of the deployment (e.g., success, failure, error codes, etc.). All applications belonging to a package are stored in an application repository and their versions can be maintained.
For example, let's say you are deploying a new business application to support your sales organization. Your developers have provided you with three WAR files: sales-inquiry.war, sales-nurture-lead.war, and sales-generatePO.war. You are deploying this new business application to a group of servers called SalesServerGroup to handle the load. With the new Tcat Server, you can do this in three steps:
1)Define a new package, (let's call it SalesPackage).
2)Add sales-inquiry.war, sales-nurture-lead.war, and sales-generatePO.war to the package.
3)Select the server group named ‘SalesServerGroup', which contain all the servers that you want to deploy this package to.
Here is a screenshot that shows new package creation. After adding the war files and selecting the group of servers, you click ‘Save and Deploy'. Now your package has been deployed to the servers in SalesServerGroup.
The deployment action has also been recorded, and you can review the history of the deployments for SalesPackage. This is useful for auditing and for reviewing the error codes if a deployment failed.
Now, let's say sales-inquiry.war has been updated by the development team, and you have a newer version of the application. You simply upload a new copy of the war file, assign it a newer version number in the package, and then click ‘Save and Deploy'. The package will be updated on the servers with newer version of sales-inquiry.war.
Performance Diagnostics for Tomcat
Tcat's server management also includes a rich set of diagnostics data for Tomcat. It provides a list of current running applications, details about each of those applications, threads and their contexts, a way to retrieve log files, gather system information including memory utilization, and perform a quick health check. Instead of describing all the rich data that's available as part of Tcat Server, I encourage you to download a copy of Tcat server and see it for yourself. Below is an example screen shot of the diagnostics data that you get with Tcat Server.
Needless to say there are many more features and capabilities of Tcat Server, including application control, remote log retrieval, and more. I encourage you to get your own copy of Tcat Server ASAP and start managing your Tomcat servers. It's free for unlimited use in your development environment, so download now. You can also read more about MuleSoft Tcat Server and access additional resources for Apache Tomcat.