Scaling and performance

Prev Next

Scalability and performance in the Grassfish system depend on the architecture.

Container setup (standard)

In the container setup, scaling is largely automatic. Performance is primarily achieved through horizontal scaling. This works as follows:

Vertical scaling

Vertical scaling for more CPU/RAM per node or SQL instance is done manually via Azure.

Horizontal scaling

Horizontal scaling of services is performed automatically via:

  • Horizontal Pod Autoscaler (HPA): By default based on CPU load, and in the future also based on request rate or queue lengths.

  • Kubernetes Event-Driven Autoscaling (KEDA): For special cases such as highly load-dependent services like Data Calculator, which reacts to open changes in the database.

Application Gateway

The Application Gateway distributes HTTP(S) traffic across multiple pods or instances (Layer 7 load balancing).

SQL Managed Instance

The SQL Managed Instance is manually scaled as needed via the service's scaling levels.

VM setup (legacy)

In the VM setup, scaling is largely done manually. Performance is handled in a more traditional way. This works as follows:

Vertical scaling

Vertical scaling is achieved through larger VMs or database instances.

Horizontal scaling

Horizontal scaling is achieved via additional servers that are manually added behind the load balancer.

Planned scaling

There is no automatic scaling of the database or application. Scaling in this case depends on the planning and project.