There is this myth that Java EE containers aren’t fast and agile enough to build modern applications. Although this may be true for some app server vendors, it’s definitely not the case for Red Hat JBoss Enterprise Application Platform (JBoss EAP).  JBoss EAP is a modern application platform that includes a modular structure that allows service enabling only when required, improving startup speed.

With this in mind, we decided to run a comparison between JBoss EAP and other technologies that are touted to be the best for cloud-native applications. Not to our surprise, here are the results:

Note: The performance tests above were produced without any performance optimization, and if you run the tests yourself, you might get different results depending on your hardware and memory. The conclusion from the above results is that JBoss EAP is not slower and does not use more memory than the other runtimes.

When comparing a JBoss EAP instance running Java EE Web Profile app, a JBoss EAP running a Spring application, Tomcat and Spring Boot, you can see that in our tests, JBoss EAP running Java EE Web Profile was faster, used less memory, and had the highest throughput under load. You can find the entire test suite and source code at the following location:

https://github.com/tqvarnst/eap-vs-tomcat-vs-spring-boot

This makes JBoss EAP a great platform for building and running modern applications,  e.g. microservices and cloud-native applications, and provides one of the the most cost effective platform to run applications on the cloud, especially where customers have to pay for cloud memory and compute resources. Modern application servers like JBoss EAP provide full Java EE certification to allow existing applications to run as-is without need for costly refactoring or changes in architecture while at the same time is designed with a minimum footprint beneficial for cloud environments. Customers have noticed this, and an approach many of them have been taking to transition to the cloud is to migrate their existing monolithic applications to a modern application server like JBoss EAP running on-premise, on a cloud provider (Amazon, Azure, Google), or on OpenShift. Likewise, in a recent customer survey conducted by Red Hat, 52% of middleware customers are using or considering JBoss EAP for microservices.

Beside microservices, there are many reasons why customers continue to use JBoss EAP for modern application development.  Here are some of them (not an exhaustive list):

  1. Miniservices - miniservices are in between a modular and microservice design.  A miniservice is a collection of services that are split by domain and usually run on an application server. Miniservices improve agility and scale without the complexity of microservices design and infrastructure. Miniservices still require an investment in agile, DevOps and CI/CD so JBoss EAP on OpenShift or JBoss EAP in Red Hat OpenShift Application Runtimes are good options.
  2. Most organizations do not have web-scale or internet-scale requirements and miniservices provide sufficient value to them. Microservices require a big shift to the way companies develop software and not everyone will adopt microservices. In fact, according to a Gartner prediction (as presented in Microservices: The Future of SOA), most organizations that try microservices will find the paradigm too disruptive and use miniservices instead.
  3. Many analysts and experts recommend organizations interested in microservices, to start with a monolith (as he covered in his blog post, "MonolithFirst") and then refactor, even for green field projects.  Doing this gives them a better understanding of their domains, identifying areas to break down and then refactor from miniservices to microservices. JBoss EAP is a platform that can run both.
  4. For organizations that rely and run Java EE production workloads but would like to gain the benefits of DevOps, CI/CD, and containers, a fast-moving monolith provides an answer.  JBoss EAP on OpenShift or JBoss EAP on Red Hat OpenShift Application Runtimes are good options for organizations wanting to run their existing Java EE production applications in an agile environment that can speed up their development cycles and maintenance.
  5. On-premise existing Java workloads. We expect organizations to continue to maintain their existing Java EE applications for years to come. According to a 2017 Enterprise Strategy Group survey, 91% of organizations expect that AT LEAST HALF of their applications and workloads will still run on-premises in 5 years. These workloads may include Java EE applications that will stay on-premise and need continued maintenance.
  6. Microservices require a big shift to the way organizations develop software, and many companies will find that the move to microservices may be more detrimental to their business than the benefits they bring. In fact, according to a recent customer survey conducted by Red Hat, the top challenges when implementing  microservices were: corporate culture and organizational challenges, microservices management, diagnostics and monitoring, and time and resources.
  7. Not every solution requires microservices.  Organizations are not redesigning existing solutions or writing new ones using microservices just for the sake of using microservices.  They have realized that microservices are not a panacea for all IT problems and are applying them only where their use is warranted. We expect them to continue to develop monolithic applications, miniservices and microservices and their end-state architecture will consist of a mix of all these.
  8. Organizations will continue to use Java EE because of its value. According to a recent customer survey conducted by Red Hat, the top three reasons why Red Hat Middleware customers are using or considering to use Java EE for microservices are Java EE is a standard, there is no need to retrain workforce, and they trust Java EE to run production because it’s well established and enterprise-grade.

In conclusion, JBoss EAP is a platform that’s suitable to run your existing Java EE workloads as well as your microservices.  Its memory and compute usage optimizations make it a great platform to use for cloud deployment of modern applications. For their current applications and as they embark themselves into modern application development, customers continue to rely and trust Java EE, a market-tested approach that we are confident will be around for years to come.

For more information on Red Hat JBoss Enterprise Application Platform:

https://developers.redhat.com/products/eap/overview/

If you need help migrating from other Java EE application server to JBoss EAP, refer to:

https://www.redhat.com/en/technologies/jboss-middleware/migrate

If you would like to get your organization up to speed on modern application development, we have the Red Hat Open Innovation Labs.  For more information go to:

https://www.redhat.com/en/open-innovation-labs