Scaling#

This page discusses horizontal scaling to meet increasing demands.

The page does not cover scaling services such as Kafka, Zookeeper, and PostgreSQL Metrics.

Horizontal Scaling of ESS#

Horizontal scaling of ESS involves adding more worker nodes (VMs) to run additional instances of ESS services; for instance, having 2 instances of Pod Storage service, each running on a separate server, instead of a single Pod Storage service running on one server.

Scale Services Independently#

With ESS, you can scale each service independently of each other. For example, you can have 3 instances of the Pod Storage service and 1 instance of the Solid OIDC Broker Service.

Stateless Services#

All user-facing ESS services (Pod Storage, etc.) are stateless. Using stateless services strongly supports horizontal scaling as a user’s requests to a given service do not need to route to the same instance of that service.

Scale a Deployment#

You can use Kustomize Overlays to scale your deployment.

Example: Scale a Deployment#

Adding more Pod provisioning helps with resiliency. The following example file sets the number of replicas for ess-pod-provision deployment to 2.

  1. Go to your ESS installation directory:

    cd ${HOME}/ess
    
  2. Modify the kustomization.yaml (i.e., step 3 of the Applying Your Customizations procedure).

    Specifically, add the highlighted content to the kustomization.yaml file under the replicas key:

    Tip

    If replicas key does not exist in kustomization.yaml, add the key replicas as well.

    # kustomization.yaml in your ESS installation directory
    
    # ...  Preceding content omitted for brevity 
    # ...
    
    replicas:
    - name: ess-pod-provision
      count: 2
    
  3. Continue with the rest of the Applying Your Customizations procedure.