Ruk-Com PaaS Documentation

Build, deploy and operate applications on the platform.

RUK-COM PAAS / APPLICATION SETTINGS

Auto-Clustering of Instances

This guide is maintained for Ruk-Com PaaS. Screens and options may vary by platform version and account permissions.

Confirm the environment, region and account permissions, and back up current settings before changing a production system.

Auto-Clustering of Instances via Topology Wizard

The platform provides an on-demand automatic clusterization for some of the managed templates. Such automation significantly simplifies and speeds up the creation of a reliable production-ready cluster for your project.

Below, we’ll consider the following points:

Templates with Supported Auto-Clustering

Currently, the following templates support the newly added clustering feature (with even more stacks to be added in the future):

Tip: Your particular service hosting provider can configure and implement auto-clustering for some additional stacks, which are not defined in the list.

Tomcat/TomEE

A highly available Tomcat/TomEE cluster that can balance the load across compute nodes to enhance performance and resilience. The implementation provides session replication, context attribute replication, and cluster-wide WAR file deployment.

Note: The Auto-Clustering feature for Tomcat and TomEE is available since the following stack versions:

  • Tomcat - 10.0.5; 9.0.45; 8.5.64; 7.0.108
  • TomEE - 9.0.0-M3; 8.0.5

Image 3: Tomcat/TomEE cluster scheme

Learn More »

GlassFish

Interconnection of the GlassFish servers with pre-configured session replication and load balancing.

Image 5: GlassFish cluster scheme

Learn More »

Payara

Interconnection of the Payara servers with pre-configured session replication and load balancing.

Image 7: Payara cluster scheme

Learn More »

Jenkins

A master Jenkins node in the master-slave mode with auto-scalable Java Engine workers and pre-installed plugins to support building and deployment automation for organizing continuous integration (CI) and continuous delivery (CD) pipelines.

Image 9: Jenkins cluster scheme

Learn More »

WildFly

WildFly nodes in Domain Mode with enabled clustering to get high availability and guarantee the continuous performance of a deployed Java EE application.

Image 11: WildFly cluster scheme

Learn More »

MySQL

Auto-Clustering is provided for the 5.7.x and 8.x MySQL versions only.

Automatic clusterization of the databases with pre-configured replication and auto-discovery of the nodes.

Based on your requirements, you can select Scheme of the following types:

  • Primary-Primary with Extra Secondaries

Pre-configured replication with two interconnected primary databases. During the horizontal scaling, the cluster is extended with additional secondary nodes. Image 13: MySQL cluster primary-primary scheme

  • Primary-Secondary with Extra Secondaries

Pre-configured replication with one primary and one secondary database. During the horizontal scaling, the cluster is extended with additional secondary nodes. Image 14: MySQL cluster primary-secondary scheme

MariaDB

Auto-Clustering is provided for the 10.x MariaDB versions only.

Automatic clusterization of the databases with pre-configured replication and auto-discovery of the nodes.

Based on your requirements, you can select Scheme of the following types:

  • Primary-Primary with Extra Secondaries

Pre-configured replication with two interconnected primary databases. During the horizontal scaling, the cluster is extended with additional secondary nodes. Image 16: MariaDB cluster primary-primary scheme

  • Primary-Secondary with Extra Secondaries

Pre-configured replication with one primary and one secondary database. During the horizontal scaling, the cluster is extended with additional secondary nodes. Image 17: MariaDB cluster primary-secondary scheme

  • Galera Cluster

All servers can accept updates even if being issued concurrently. Image 18: MariaDB cluster Galera scheme

Percona

Automatic clusterization of the databases with pre-configured replication and auto-discovery of the nodes.

Based on your requirements, you can select Scheme of the following types:

  • Primary-Primary with Extra Secondaries

Pre-configured replication with two interconnected primary databases. During the horizontal scaling, the cluster is extended with additional secondary nodes. Image 20: Percona cluster Primary-Primary scheme

  • Primary-Secondary with Extra Secondaries

Pre-configured replication with one primary and one secondary database. During the horizontal scaling, the cluster is extended with additional secondary nodes. Image 21: Percona cluster Primary-Secondary scheme

  • XtraDB Cluster

A database clustering solution that ensures high availability, prevents downtime and data loss, and provides linear scalability for a growing environment. Image 22: Percona cluster XtraDB scheme

PostgreSQL

Pre-configured PostgreSQL database cluster with asynchronous primary-secondary replication and automatic addition of the new nodes into the cluster (as secondaries).

Image 24: PostgreSQL cluster primary-secondary scheme

Learn More »

Couchbase

Automatically interconnected Couchbase servers with the pre-configured auto-scaling and rebalancing to provide a single highly available data storing system.

Image 26: Couchbase cluster scheme

Redis

Automatization for a distributed implementation of Redis Cluster - an open-source, in-memory data structure store. It is usually used for caching, data storing, as a message broker, and for other tasks. The provided topology consists of at least three Primary servers, each with a Secondary node to ensure the read load distribution and auto-recovery if the Primary goes down.

Image 28: Redis cluster scheme

Learn More »

OpenSearch

Automatic clusterization of a community-driven, open-source search engine that provides a distributed, multitenant-capable full-text search. Solution provides built-in settings to add the OpenSearch Dashboards for data visualization and Logstash for processing logs.

Image 30: OpenSearch cluster scheme Learn More »

Shared Storage Container

Automatically configured, reliable storage cluster (replicated volume) based on the Gluster solution, which ensures data safety. In case of failure of one or several nodes, the AutoFS client automatically switches to the working instances, providing storage high-availability.

Image 32: Shared Storage cluster scheme

Learn More »

Auto-Clustering Management

  1. The Auto-Clustering feature can be enabled for the node group through the same-named switcher in the central part of the topology wizard (if available for the selected stack).

Image 34: wizard auto-clustering switcher

Tip: Based on the specific implementation, the Auto-Clustering option can be:

  • mandatory enabled (e.g., for the Couchbase database)

Image 35: mandatory enabled auto-clustering * provided with some additional settings (e.g., cluster scheme and ProxySQL load balancer for the MySQL database)

Image 36: auto-clustering additional settings * restricted by the minimum/maximum nodes count and/or scaling mode (e.g., for the MariaDB Galera type)

Image 37: auto-clustering validation

  1. Herewith, to get additional information on the cluster to be created, you can hover over the question mark next to the switcher. Within the appropriate pop-up frame, you can find a short description, which is usually supplemented with a topology scheme and a link to the more detailed overview.

Image 38: auto-clustering hint description

Tip: Additional info on the various database cluster types can be viewed by hovering over the appropriate Scheme:

Image 39: database cluster scheme description

  1. The other settings can be configured just as for any regular environment.

Image 40: glassfish cluster at dashboard

Note: After being configured, auto-clustering cannot be disabled from the topology wizard.

  1. If needed, you can track the cluster configuration via the Cloud Scripting logs (Import> JPS > View Logs) in the dashboard:

Image 41: cloud scripting logs For example, you can use this info for debugging while developing packaged solutions with Cloud Scripting, which utilize the auto-clustering feature.

Setting Up Auto-Clusterization with Cloud Scripting

In order to define auto-clustering settings in your JPS solutions, a new cluster property can be used. For example:

  1. Enable or disable auto-clustering for the specific layer.

json

"nodeGroup": "couchbase",
"cluster": true | false
  1. Additional parameters for auto-clustering can be provided in the following way (for example, can be required to select a database cluster scheme):

json

"nodeGroup": "mysql",
"cluster": {
  "scheme": "master"
}
  1. If needed, the default JPS manifest with the clusterization steps can be substituted with a custom one:

json

"nodeGroup": "mysql",
"cluster": {
 "jps": "http://.../custom-manifest.jps",
 "settings": {
   "scheme": "master"
 }
}
  1. Based on the particular cluster requirements, some topology restrictions may be needed (e.g., the minimum/maximum number of nodes, scaling mode, etc.). It is implemented through the validation property.

This parameter can be specified for any JPS package, check the YAML example below:

yaml

type: install
name: Validation
nodes:
 image: alpine
 nodeGroup: cp
 count: 2
 validation:
   minCount: 2
   maxCount: 3
   scalingMode: stateful

That’s it! Now, you can easily use the auto-clustering solutions supported by the platform, as well as all benefit from the implementation specifics.