While Payara is a relatively new entrant in the Java application server space, it has gained significant community traction in recent years. Payara Server was conceived as a commercially supported version of GlassFish, at the time the open-source reference implementation for Java EE. Since then, Payara has become a compelling offering in its own right, providing robust support for Java EE, Jakarta EE, and MicroProfile. The Payara team plays a very active thought leadership role in the Jakarta EE and MicroProfile communities.
Payara has long provided strong support for Azure through a number of resources including an excellent high-level datasheet about the Payara Platform on Azure that covers virtual machines,Azure Kubernetes Service (AKS), Azure Container Instances (ACI), and Azure App Service. There is a detailed user guide for running Payara Micro on AKS, and the soon to be released Payara Cloud will provide a Payara/Jakarta EE PaaS capability on Azure that simplifies cloud infrastructure management by eliminating the need for application server deployment and Kubernetes knowledge.
Official Azure Sample
We frequently encounter customers that want to run Payara on Azure. Many of these customers are migrating and modernizing their on-premises GlassFish applications to Payara Micro on AKS. While it is possible to run both Payara Server and Payara Micro on AKS, customers find that Payara Micro is especially suited to containerization. To meet the needs of these customers more effectively, we provided an official Azure sample that demonstrates how to run Payara Micro on AKS.
The sample utilizes best practices from Payara like using the official Payara Micro Docker images and the Payara Kubernetes cluster mode. The Kubernetes cluster mode is an innovative approach to Java application server clustering on Kubernetes that utilizes the Hazelcast data grid under the hood. This approach is an alternative to the more typical strategy of deploying a Kubernetes Operator on a separate node for application server cluster coordination. Instead, Payara Micro instances automatically detect all other instances in the Kubernetes cluster using Kubernetes networking under the hood. This forms an elastic Payara Micro cluster that seamlessly scales up/down and maintains shared state. The official sample also demonstrates several representative Azure service integrations such as using Azure SQL as a data source, using the Azure App Gateway as an ingress controller, and using the Azure Container Registry (ACR) as a container registry. The sample enables session affinity in the Azure App Gateway for efficient application server state management.
Figure 1: Example high-level architecture for Payara on AKS
Get Started with Payara Micro on AKS
The official sample is intended to be a starting point to a production ready Payara Micro on AKS deployment. The sample enables customers to further customize their deployments including integrating with more Azure services such as Azure Active Directory or Application Insights. We welcome feedback on how to further improve the sample.
If you need specialized assistance, the Java/Jakarta EE on Azure engineering team is happy to help you migrate to Azure. This migration assistance is completely free of charge.