--- title: "Scaling and performance" slug: "scaling" updated: 2025-12-05T09:28:21Z published: 2025-12-10T14:08:19Z canonical: "docs.grassfish.com/scaling" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.grassfish.com/llms.txt > Use this file to discover all available pages before exploring further. # Scaling and performance 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](/grassfish/docs/grassfish-backend-server-services#backend-services), 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. HTTP stands for Hypertext Transfer Protocol. This is a standardized protocol for transmitting data between clients and servers on the internet. The client sends an HTTP request to the server using a standard set of methods such as GET to specify the action it wants to perform on a specific resource.