Autoform DM Clustering
    • 01 Nov 2024
    • 3 Minutes to read
    • Contributors
    • PDF

    Autoform DM Clustering

    • PDF

    Article summary

    A typical software solution consists of a single software installation which is used to achieve the required functionality. If that software breaks, then the service it provides will no longer be available. To solve this problem, modern software aims for High Availability (HA) through clustering.

    Overview

    What is Clustering?

    Clustering involves having multiple software installations working together as one; the user continues to interact with the software as normal and the cluster makes sure that if one instance goes down the user can continue to work, uninterrupted, on another node.

    Clustered solutions can be:

    • Active-Active: Multiple nodes actively serving requests at the same time.

    • Active-Passive: A single active node, with other nodes ready to serve requests only if the active one fails.

    Note

    Being highly available is the main goal of our clustered solution, but it also provides active-active capability to give the additional benefit of horizontal scalability. That offers potential performance improvements in high throughput systems.

    Concepts

    A cluster is made up of multiple nodes. The most basic components that a cluster requires are:

    • A Load Balancer node

    • Two or more application nodes

    Comparing a standalone (non-clustered) solution to a clustered solution visually:

    Load Balancer

    The single point of entry to the cluster for users, responsible for ensuring the user is provided with a working application node.

    Note

    The user does not necessarily need to know they are interacting with a load balancer; from their point of view, they are just using the application.

    Application

    Provides the functionality to the user, as in a standalone system. The main difference in a clustered setup is that there will be two or more applications working together.

    Redundancy

    For failover purposes, each type of node in the cluster should have at least one redundant copy. It is easy to see this with the application nodes – the same principle should be followed for the load balancer. This ensures there is no single point of failure in the setup, and seamless transition to the backup system if necessary.

    Wildfly Concepts

    Our clustered solution for Autoform DM is built on the support in Wildfly (JBoss). Wildfly introduces more concepts to help with cluster maintenance; Domain Controllers and Host Controllers.

    These concepts are illustrated:

    Domain Controller

    The master of the cluster, responsible for connecting the rest of the cluster together as well as storing any common cluster configuration, allowing for a single point of management for the system administrator.

    Warning

    Not to be confused with the Microsoft Domain Controller, this term applies to the Wildfly Domain Controller.

    There can only be one Primary Domain Controller (PDC) active for the cluster, so if full redundancy is required a passive Secondary Domain Controller (SDC) can be configured.

    If the PDC fails, the other nodes providing the application service would continue to function; however, management of the cluster (such as adding new nodes) would not be possible. Failover here can be achieved either by installing a new PDC, or by activating the SDC to take over as PDC.

    Host Controller

    The slave of the cluster, responsible for managing a single node – in this case, the Load Balancer and Application nodes.

    Note

    The Host Controller inherits its configuration from the Domain Controller.

    All Host Controllers communicate directly with the PDC via the native management port (usually 9999) in order to register themselves with the cluster and receive configuration and deployments.

    This is illustrated:

    Note

    Host Controllers are not explicitly linked together; they use a technology called multicast to discover each other. This is how the load balancer is made aware of any application nodes.

    Replicated Cache

    Internally, the cluster configures a replicated cache. This is comparable to shared memory that all nodes can access. The cache allows us to ensure full HA for things like the user session; if one node fails, the user can continue their tasks with minimal disruption.

    Deployment Architecture

    There are different ways to structure a clustered solution with Autoform DM; understanding the concepts and options will allow you to decide which setup suits your needs. This page summarizes alternative deployment architecture strategies.

    Balanced

    A balanced approach provides a practical balance between satisfying HA requirements and reducing configuration overheads by installing multiple nodes/services per server. All components (Domain Controller, Load Balancer, Application) are installed together on a single machine which is then replicated on a second machine for failover.

    Note

    Scaling this approach would not necessarily require an additional server containing all components, just the required node (such as Autoform DM).

    Maximum Redundancy

    An architecture for maximum availability and limited third-party requirements. Each component critical to the solution (Domain Controller, Load Balancer, Application) is installed on its own server, has at least one redundant copy and can be scaled up independently.

    Note

    This approach does come with the additional overhead of a server or virtual machine (VM) per component; however, it does allow for fully symmetrical scalability of individual nodes.


    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.