Multi-server architecture

Multi-server architecture

Analytics Plus now supports a distributed architecture to handle highly intensive data processing needs at enterprise scale. This configuration allows for load distribution across several servers, thereby boosting performance, reliability, and scalability.

Main objective

Customers with moderate data processing needs can easily handle their analytics workloads using a single, monolithic Analytics Plus deployment. However, for larger deployments with greater processing demands, horizontal scaling and distributed processing are essential.

To address the demand of large-scale applications, the self-hosted/on-premises version of Analytics Plus has been enhanced with a distributed architecture model to improve scalability. This setup enables users to scale the application horizontally and add additional servers (processing power) as their processing needs grow.

The architecture

The following are the key components of the deployment architecture:

App Server

The App Server is the core component of Analytics Plus, acting as the application's frontend and the primary interface for end users. All features and functionalities of Analytics Plus are accessed through the App Server. In a distributed architecture, multiple instances of the App Server collaborate to manage processing and user access, with one server designated as the primary server.

CStore nodes

CStore is Zoho's proprietary columnar database, designed in-house to manage large volumes of data and deliver it to users on-demand. Columnar databases like CStore are optimized for swift read operations, making them well-suited for analytics applications. It already powers the cloud versions of Analytics Plus, providing infinite scalability and swift read performance.

We are now extending this technology to self-hosted versions, providing scalability and performance comparable to SaaS applications. In a distributed deployment of Analytics Plus, multiple CStore nodes are used to balance the load of read operations efficiently.

The CStore nodes continuously synchronize data from the primary database. Data retrieval and display requests from users are directed to the CStore nodes, while write-back operations are managed by the primary database. Essentially, the CStore nodes manage all read operations, while the primary database handles write operations.

Database

Analytics Plus relies on PostgreSQL as its main backend database for storing all imported and processed data. This database is bundled with the App Server, and both are hosted on the same server.

Load balancer

When using multiple App Servers, Analytics Plus requires a third-party load balancer, such as Nginx, to effectively manage and distribute traffic across the servers. This load balancer is not included with the application package and must be acquired and configured independently.

Click here to learn more about deploying the multi-server architecture.

How this works?

The multi-server deployment enables the use of multiple App Servers and CStore nodes to manage large volumes of data and a high number of users.

When users access views in Analytics Plus, their requests are first routed through a load balancer, which assigns an App Server based on the current load distribution. The designated App Server then retrieves the relevant data from the CStore node cluster. Once the data is received, the views are displayed accordingly.

Horizontal Scaling

As user demand and data processing needs grow, organizations can scale Analytics Plus horizontally by adding more App Servers and CStore nodes. Typically, an increase in the number of regular users will necessitate additional App Servers, while a higher demand for data processing will require more CStore nodes. The decision on which components to scale depends on various factors, and our team of experts is available to provide tailored recommendations. For assistance, please contact us at analyticsplus-support@manageengine.eu (EU region) or analyticsplus-support@manageengine.com (Other regions).

Capacity expansion guidelines

It is crucial to scale horizontally as the application load increases to ensure optimal performance. Postponing capacity upgrades can result in sluggish user experiences, while adding capacity too early may waste resources. Key factors such as data model complexity, data volume, and the number of active users should be considered when determining additional capacity. The table below provides an indicative guide for the load a single server can handle and the capacity added by each additional application server. However, the actual load each App Server can handle might vary slightly based on the conditions stated earlier in this section.

 Primary App ServerWith 1 Additional App ServerWith 2 Additional App Servers
Users50100200
Viewers1000 (w/o load balancer)5000 (with load balancer)10000 (with load balancer)
Rows of dataUp to 499 MillionUp to 1 BillionUp to 1.5 Billion
Volume of dataUp to 499GBUp to 1TBUp to 1.5 TB

* Above table includes indicative figures. Actual load-bearing capacity for each App Server might vary slightly in each environment.

Please contact us at analyticsplus-support@manageengine.eu (EU region) or analyticsplus-support@manageengine.com (Other regions) to determine the accurate capacity based on your needs.

High availability

Analytics Plus supports deployment in an active-passive high availability (HA) mode, which requires a secondary deployment of both the primary App Server and the primary database. This app+database combo operates in passive mode, continuously monitoring the availability of the primary components while replicating data and configurations. If the primary components go offline, the high availability configuration goes live and takes over to ensure uninterrupted service for users.

Share this post : FacebookTwitter