Both Payara Server and Oracle WebLogic servers can be considered classic application servers, but in addition to running classic Enterprise applications on Payara Server, it also complies with more recent trends in the industry. In this blog, we'll cover 6 technical reasons why you should choose Payara Server over WebLogic:
1- Release Cadence
Earlier this year, March 30, 2020, Oracle released WebLogic Server 14c. Before that, in September 2019 there was the release of WebLogic Server 12cR2 (126.96.36.199) which came about two years after the previous release of 12cR2 (188.8.131.52)
There is always a large gap between the releases of WebLogic server containing new features. This also means that upgrades of components like CDI and JAX-RS take a while and thus vulnerabilities aren't fixed as soon as possible.
This is in high contrast with the release strategy of Payara Server, in which a new release is made available every month containing new features, fixes, and security updates. That way, you can be assured vulnerabilities are patched as soon as possible, and as a developer, you can benefit from all the latest features quickly.
2- Compatibility with Latest Standards
The release of WebLogic Server 14c in March 2020 was the first version that supports Java EE 8, almost three years after the release of Java EE 8 itself.
The Payara Server 5 release in March 2018 could already run Java EE 8 applications.
This means that you had to wait a very long time before you could use the new features of Java EE 8 within WebLogic Server. And this observation is more a general fact about the WebLogic Server and their support for the latest standards.
Java EE was donated to the Eclipse Foundation. It's first release as Jakarta EE 8 has been available since September 2019. Not long after this date, a Jakarta EE 8 certified compatible version of Payara Server was released (5.193.1 in October 2019).
Eclipse MicroProfile optimizes Enterprise Java for a microservices architecture and delivers application portability across multiple MicroProfile runtimes. But these specifications are not only useful in a microservices environment, they are also very handy in any application. Examples include specifications such as:
- Configuration - to define application configuration outside your application
- OpenAPI support - to document your REST services
- Request Tracing - to follow your user requests through various parts of your application or across services
- Rest Client - allows you to call endpoints in a very compact way
Payara Server contained implementations for all the core MicroProfile specifications right from the beginning, and they are always updated to the latest version within a few months after new specifications are released.
Oracle WebLogic Server does not contain any of them and thus developers are missing out on this improved and easier development experience.
But also on the support for the JVM, there is some substantial lagging. The latest version of WebLogic Server is now also supported on JDK 11 - but this is about six months after Payara Server. The official support of JDK 11 with Payara Server was announced in November 2019, but it was available as a preview feature six months earlier and most people could already use JDK 11 without any major issues.
The latest WebLogic version is also certified on the GraalVM runtime. But only the enterprise version, which has an additional cost, on the Red Hat Enterprise Linux Operating System.
Payara Server on the other hand is supported on the GraalVM community edition on all Operating Systems.
WebLogic Server support for common standards is always lagging behind, and sometimes only available many years after it is available in Payara Server.
3- Flexible Clustering Options
In many cases, you need to deploy your application in a clustered way. The application is available on different machines so that the requests can be distributed and thus higher throughput can be achieved.
WebLogic Server supports classic clustering where you have different instances joined in a cluster, all running the same application or applications.
Payara Server has a much more flexible option called Deployment Groups. With Deployment Groups, you can also define that the application is associated with a Deployment Group, just as with the classic Cluster option, but since an instance can be joined to multiple Deployment Groups, not every instance is running the same set of applications.
The setup of such a Deployment Group is also very easy and simple. You not only assign the application but also define the other resources it requires, like the database connection pool setup. All the required configuration, such as the connection pool, is performed on the new instance the moment a Payara Server instance joins an existing Deployment Group.
This flexibility is extended into containerised environments. The Payara instance can be located in a Docker Container and when this container is started, it automatically joins an existing Deployment Group, and all the required configuration and deployments of applications are performed and it can participate without any intervention into the handling of user requests.
The WebLogic Diagnostics Framework (WLDF) is a monitoring and diagnostic framework. It provides WebLogic administrators with statistics for subsystems like the number of Threads active and the number of Sessions. Information around this monitoring can be written to various notifications channels like Log files, SMTP, SNMP, JMX, and JMS.
Oracle WebLogic has also support for more advanced monitoring features like Self-Health Monitoring. It detects if a Managed server needs to be restarted due to some failures or SQL Leak Connection detection.
The same set of monitoring values, like Thread, Request and Connection values, and SQL leak detection, are also available on Payara Server. But there are more monitoring options available on Payara Server.
With Payara Server, you have also the Slow SQL detection and the Request Tracing feature available as monitoring options. Both give you an indication when a call takes too much time, which can be used to research the slow performance of your application.
The channels you can use to receive notifications for this monitoring subsystem are also more extensive on Payara Server. Besides the classic channels like Log files or ELK stack, Mail messages, JMS messages, JMX Beans, Payara Server has a few additional channels supported by default:
- CDI events
- New Relic
This gives you the greatest possible choice to monitor your system in production.
But you do not need to rely on an external system for the monitoring of the application in Payara Server. Starting from version 5.194 you also have the Monitoring Console available within Payara. This gives you all the monitoring information from within the server itself and therefore doesn't require any external system. The features of the console are improved which each release.
5- Security Updates
Security is a very important part of your environment and should be your priority along with the functionality of the application.
In the section above around the release cadence, it was already mentioned that due to the more frequent release cadence of Payara Server, vulnerabilities are address much faster than they are in Oracle WebLogic Server.
There are also some additional security-related benefits within Payara Server. The TLS 1.3 support was initially only available within JDK 11 and only very recently available within the JDK 8 releases.
The Zulu JDK (support for Zulu JDK is included with Payara Server Enterprise) offered TLS 1.3 support through the OpenJSSE project in JDK 8 before the official backport was available. Within Payara Server, we have supported TLS 1.3 in this combination from the beginning, making your secure connections even more secure.
Other improvements are related to the availability of the Security API within Java EE 8. We have built some connectors based on this framework to support OAuth2, OpenIdConnect, and JWT tokens. All these security protocols are available within Payara Server out of the box to make your application more secure.
6- Hollow Jar Type Functionality
The classic application server requires you to install the software, perform the required configuration like defining the JDBC connection pools, and install the applications.
In the modern paradigm, a lot of companies switch to a Server runtime. You just start up the server that is packaged in an executable JAR file, and during boot time, the configuration and application deployment is performed.
Especially in a Cloud environment, this flexible 'installation' is beneficial as instances are much more volatile.
With Payara Micro, this methodology is possible without any special development adjustments as is the case for many other frameworks. Payara Micro is a packaging capable of running Java EE and Jakarta EE Web Profile-based applications. It is an executable JAR file that when supplied with an application (WAR or EAR), and a script file containing the asadmin commands for the configuration, gives you this runtime functionality.
Since it is based on the Web Profile, with the addition of the Concurrency and JMS client specification, you can just use your application as a microservice with the help of Payara Micro.
You can just run Payara Micro with no need for using specific dependency, frameworks, or development idioms. The Jakarta EE and MicroProfile specification give you all you need to run the application as a microservice.
Payara Server Enterprise is Designed for Production Applications
Payara Server, an open source product with a 10 year software lifecycle, provides several benefits for running your Enterprise applications over Oracle WebLogic Server. Due to the frequent release cadence, security vulnerabilities are fixed more frequently, and as a developer, you can benefit from the new features in standards like Jakarta EE and JDK.
There are also several benefits on the DevOps side. You have access to more monitoring and notification options. And in this age of cloud and microservices environments, the Payara Platform products are perfectly adapted to them.
Learn More about Payara Platform Enterprise