When Apprenda started, we were heavily focused on supporting .NET apps on our enterprise Platform as a Service (PaaS). But for several years, we’ve had deep Java support that matches our .NET prowess, including support for JBoss, Tomcat, and WebSphere apps. We often receive questions from customers around our Java capabilities, so let’s do a quick walkthrough to show how we deploy and debug Java apps on our platform.
To start off, let’s look at how Apprenda deploys a standard Java Web Archive (WAR) file. All an Apprenda platform needs to deploy a Java application is one Linux node. Apprenda 6.0 currently supports both RHEL 6 and CentOS 6, with support for 7 coming shortly. When a Java application is deployed, a target server is selected for the deployment that meets deployment policies that might be in place for the platform.
Next, Apprenda bootstraps the application. This process includes adding necessary libraries, modifying the application server configuration, copying the extracted application to the chosen server and more. Finally the Load Management Layer is configured using IIS Application Request Routing to route requests to the chosen server that is now hosting the Java application.
This workflow is similar to our .NET application deployment, with exceptions for technology differences. It allows developers and system operators to tweak the workflow with bootstrap polices, platform extensions, and custom properties as needed to meet a customer’s requirements.
Once your application is deployed, you will see the “Start Debug” option. Since every instance of an application runs on its own Java virtual machine (JVM), the platform is able to provide developers with the ability to debug remotely. Placing an application in debug mode will cause all currently deployed applications to be undeployed and a single instance will be deployed with required JVM options to enable remote debugging. Once redeployed, the remote debugging information will be displayed in the dashboard.
This information can then be used by the developer to debug an application in their IDE of choice. Without remote debugging, developers must go back and forth between a local and Apprenda instance if problems arise. Debugging directly on the platform greatly reduces the time spent for each iteration of a troubleshooting process, allowing developers to spend more time developing.
Want to learn more about how we support Java apps or anything else about the Apprenda platform? Let us know.