Horizontal Scaling inside the Cloud: Multi Nodes

With Jelastic PaaS, hosting of your applications becomes truly flexible. In addition to automatic vertical scaling, Jelastic also lets you increase/decrease the number of servers in your environment manually or automatically.

The process of manual scaling is fairly simple - open the environment topology wizard and use the appropriate “+” and “-” buttons in its central pane to state the required number of nodes for the selected server and select the required scaling mode from the appropriate drop-down list.

topology wizard horizontal scaling

Tips:

  • you can automate horizontal scaling based on incoming load with the help of tunable triggers
  • you can use the initial (master) node of the layer as your storage server for sharing data within the whole layer
  • in case of scaling in (i.e decreasing the nodes number), the last container added to the layer is the first one to be removed
For additional details refer to the horizontal scaling specifics section below.

Scaling Modes

Starting with the 5.5 platform version, the preferred scaling mode can be selected for new environments during creation, as well as adjusted for the existing ones through the topology wizard:
  • Stateless - simultaneously creates all new nodes from the base image template
  • Stateful - sequentially copies file system of the master container into the new nodes

The first option is comparatively faster, while the second one automatically copies all custom configurations. Herewith, during the initial layer creation, all of the nodes are created simultaneously to speed up the process (even for the stateful mode, as no customization has been applied yet).

While using the stateless mode, be aware of the following features absence on the new nodes within the layer:
  • deployments - the existing project contexts won’t be transferred
  • custom SSL - SSL certificates and configs won’t be copied
  • mount points - custom mounts will be moved only if the appropriate volume is configured
  • add-ons - any add-ons installed on the layer won’t be available

Tip: The transfer of custom files for the stateless mode can be done manually or configured via the Cloud Scripting automation (e.g. using the onBefore- and onAfterScaleOut events).
Based on these peculiarities, Jelastic PaaS recommends (and applies by default) the stateful scaling mode for the load balancer, application server, and VPS stacks. In case of necessity, you can manually redefine the scaling mode for your nodes at any time via topology wizard.

Horizontal Scaling Specifics

The maximum number of the same-type servers within a single environment layer depends on a particular hosting provider settings (usually this limit stands for 16 nodes). You can check the exact value within the Quotas & Pricing > Account Limits information frame.

All newly added servers are created at different hardware nodes, providing advanced reliability and high-availability.

horizontal scaling high-availability

Each environment node group (layer) is provided with the dedicated name, which, if needed, can be manually adjusted. In case there are several instances inside, layer name will be complemented with the xN label (where N is the actual nodes number).

Having several same-type nodes within a layer enables their synchronous management. Thus, all comprised containers can be simultaneously configured, inspected for logs and statistics, restarted or redeployed through the corresponding icons.

scaled nodes management
In order to operate with a particular container separately, expand the layer’s string to see the full list of its nodes. Each of these containers is an isolated instance, which has a unique Node ID and can be accessed/configured apart from others. Herewith, the layer master node can be easily located due to the dedicated icon.

nodes in scaled layer

To facilitate interaction with numerous servers of the same type, Jelastic also allows marking a particular node with the appropriate label, e.g. to define master and slave instances in a DB cluster.

Just double-click at the default Node ID: xxx value (or hover over it to reveal a special pencil icon) and specify the desired alternative name.

aliases for scaled nodes

More information on this labeling feature can be found in the Environment Aliases document.

While scaling different types of stacks, consider the following specifics:
  • upon scaling the application server instance, the load balancer node will be automatically added to the environment topology
  • if enabling the high-availability option for application server, the obligatory required NGINX load balancer cannot be scaled horizontally (if several nodes of NGINX were available before, they will be automatically downscaled to a single instance)
  • upon scaling VPS nodes, each one is provided with a separate Public IP address attached
  • Maven is the only node, which cannot be scaled horizontally (as there is no point in such operation)

Now, you know how easy it is to horizontally scale instances in Jelastic PaaS and aware of the operation specifics. Also, feel free to configure an automatic nodes scaling to smoothly overcome high load spikes without overpaying for unused resources.