Cluster Orchestrator

Cluster Orchestrator (Infrastructure Node) is a set of internal components for managing resources, processing requests, analyzing users’ behaviours and supporting Jelastic system maintenance. Usually we recommend using a dedicated server for the Cluster Orchestrator as it gives better stability and performance.

For high availability, Jelastic Platform is running on two infrastructure nodes with a pair of replicated proxy servers at them. In such a way, even if some infrastructure element fails, the comprised end-users containers will remain accessible.

All infra node components are run in separate virtual Virtuozzo Containers for Linux on CentOS and are responsible for:
  • Provisioning
  • Templates configuration and clustering binding
  • Environment’s lifecycle management
  • Applications deployment
  • Scalability management
  • Handling users requests via Global Resolver
  • Logs and statistics
  • Billing
  • Business analysis tools
  • Monitoring and health checking

Each process mentioned above is served with a separate subsystem:

Let’s consider in detail each cluster component and its functions.

Jelastic Services

The following Jelastic Services are running on the tcServer with NGINX as an entry point:

Jelastic Core (JCore) is a provisioning subsystem for implementing an environment’s lifecycle coordination from creation to deletion. It is responsible for performing such actions as:

  • Create environment
  • Start/Stop environment
  • Edit environment topology
  • Enable high availability
  • Bind domains
  • Enable external IP
  • Equal distribution of containers from one environment among different hardware nodes

These actions are initiated directly from the dashboard.

Statistics Service (JStatistics) is responsible for collecting statistics about the consumed resources of the existing environments.

Billing Service (JBilling) is responsible for processing the information about hardware resource consumption, calculating the amount for charging and providing billing information.

Jelastic doesn't provide its own payment gateway. For payment implementation, the integration of JBilling with different external billing systems is applied.

Follow the link to get more information on the billing system in Jelastic.

Pool Manager (JPool) is an internal module for managing the templates of containers using RPMs from the Spacewalk. The Pool Manager is responsible for setting and adding containers on Hardware Nodes, if any new stack is requested for a user’s environment.

JPool initiates the creation of a new container using the sources from the RPMs Storage on Spacewalk. And, if the container of the requested type has already been created before on this Hardware Node, JPool simply makes a copy of it.

When a template is ready (either newly created or copied) the Pool Manager processes it by setting the required configurations and making it available for the users’ environment.

Pentaho is a Data Analysis and Reporting system with a wide range of reports connected with the end-users. It is responsible for providing analyzed and visualized data (reports) across multiple dimensions via an interactive and easy to use web-based interface.

Follow the link to get acquainted with the available Jelastic reports.

Hivext Core (service bus)

Hivext Core (HCore) is responsible for internal subsystems functioning. It implements the functionality of account management, access rights management, application hosting and script execution.

HCore is running on two tc Servers with the Uploader (XSSU) application and FTP server.

The Uploader (XSSU) application is responsible for uploading the users’ application archives and locating them in the Uploader Storage.

Uploader Storage

All archives of the deployed users’ applications are located in Uploader Storage. These archives are uploaded via the HCore component (Uploader application) and redirected to the Uploader.

We recommend to have the Uploader Storage as a separate component in order to avoid any interference of users’ app packages.

Database Server

Percona DB is used as a Jelastic platform Database Server.

It is responsible for storing the data like users’ accounts and environments, resource consumption history, billing information etc. This guarantees data integrity and provides easy and faultless synchronization between Resolvers (where slave Percona DBs are located).

Resolver

The Jelastic Resolver is a proxy server which consists of a DNS Server, an NGINX balancer, a Percona slave database and a health-checker.

It is responsible for connecting a client side (browser, for example) and end user’s application deployed to Jelastic. Follow the link to get more information about Resolver in Jelastic.

To increase high availability of the system, Jelastic uses several Resolvers for receiving requests simultaneously. As a result, there can be several entry points for users' environments used at the same time. In this way, the load can be effectively distributed. Follow the link to get more information about Resolver High Availability.

Spacewalk

Spacewalk includes RPMs Storage of the users’ containers templates of all types. These templates can be requested by the Pool Manager in order to place them on Hardware Nodes and make them available for users’ environments. Also Spacewalk is responsible for updating the software components on the Hardware Nodes in the Jelastic cluster.

Puppet

Puppet is an infrastructure component for deploying and updating the Jelastic Platform. It is responsible for gathering the required data from the GIT, SVN, Nexus repositories, RPMs Storage and processing it in order to install/update all the components of the Jelastic Infrastructure Node.

Zabbix

In order to monitor the main parameters of the Jelastic infrastructure and cluster components such as hardware and infrastructure nodes, Zabbix Monitoring Solution is used.

It is responsible for monitoring numerous network parameters, server’s health and integrity. Zabbix uses a flexible notification mechanism that allows a user to configure email based alerts, for any event. This ensures a fast reaction to server problems.

Follow the link for more information.

Awakener

Awakener is responsible for waking up the containers in the users’ environment which have been suspended because of inactivity of an application.

The containers can be placed in hibernate mode because the deployed applications are not requested for an extended period of time. As soon as any request is processed to the application, Awakener wakes up the servers used in the appropriate environment. This is gained with the help of checkpointing, available in Parallels Containers.

In such a way it decreases the resource consumption, without damage to the application’s performance.