Skip to content

Volt MX Foundry Deployment Guide: Overview

Deployment Guide

Guidelines for deploying Volt MX Foundry on-premises.

Volt MX Foundry is an enterprise-grade mobile backend as a service (MBaaS). How you set up Volt MX Foundry depends your application requirements and the number of users of your applications. You can set up Volt MX Foundry on-prem in many configurations with component servers that are configured on single or multiple physical and virtual hosts.

Volt MX Foundry Deployment Glossary

Term Definition
presentation tier The top-most level of an application, the user interface.
application tier The business logic, or logic tier, it controls the functionality of an application.
J2EE Java Platform, Enterprise Edition
EC2 Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud.
RDS Amazon Relational Database Service (Amazon RDS) is a web service that makes it possible to set up, operate, and scale a relational database in the cloud.
VM A virtual machine (VM) is an emulation of a particular computer system.
UAT User acceptance testing.
high availability A system or component that is continuously operational for a desirably long length of time.
separation of concern A design principle for separating a computer program into distinct sections, such that each section addresses a separate concern.
payload The part of the transmitted data that is the actual intended message. Payload does not include information sent with it such as headers or metadata, sometimes referred to as overhead data.
A-series, Dv2-series Sizes and options for the Azure virtual machines.
session affinity Enables the load balancer to bind a user's session to a specific instance. This ensures that all requests from the user during the session are sent to the same instance.

Software Requirements

The following are the underlying software requirements for Volt MX Foundry on-premises.

For a complete list operating systems, app servers, databases, and Java Runtime Environment supported by Volt MX Foundry , refer to Software Requirements by Volt MX Foundry.

Requirement Supported
Operating System Linux or Windows
Java Runtime Environment JDK 1.8
Session/cache management Memcached
HTTP servers (reverse proxy) Apache or Microsoft IIS
Application servers JBoss, or Tomcat
Database MySQL or MariaDB or Oracle or MS SQL or DB2 LUW

Deployment Topology

The following diagram depicts the topology of a typical deployment of Volt MX Foundry in a Production environment. Individual components can vary based on specific requirements.

Development Topology

A development environment can consist of any or all of the services that form part of Volt MX Foundry. The following diagram depicts the topology of a typical deployment of Volt MX Foundry in a development environment.

Moving a Volt MX Foundry App to a Different Environment

To move a Volt MX Foundry app from a development environment to a production environment, export the app from the source (dev) environment, and import app in to the new environment – for example, a UAT or Production environment. To learn more about moving a Volt MX Foundry app, see Exporting and Importing an Application.

App Server Sizing

This section provides a guide to sizing and capacity that can help you determine the optimal deployment configurations for your apps and user requirements.

The following table illustrates the sizing for each Volt MX Foundry component, for Tomcat:

Volt MX Foundry Runtimes Throughput/Sec Capacity CORES Memory
Integration & Identity 35 request/sec (Every request can have a payload of 50kb) 1-1.25 million session per year 1 Core per JVM 3 GB per JVM
Engagement 35 request/sec 60-70 pushes/sec 1 Core per JVM 2 GB per JVM
Volt MX Foundry Console Components Throughput/Sec Capacity CORES Memory
Console N/A for production N/A for production 1 Core per JVM 2 GB per JVM

Note: 1 Core and 2 GB is allocated for the operating system on each physical computer. Please note that Metrics and integration admin console Web archives (WARs) are installed as part of integration. The integration admin console provides basic reports. If advance reporting is required, install the reporting portal based on Jasper (VoltMX Foundry Reporting and Analytics - Installation Guide).

Note:  Metrics should be installed along with Integration services on the same physical computer.

Sample Hardware Configurations

The following scenarios illustrate a range of hardware configurations for Volt MX Foundry deployment.

Scenario A

A company requires Volt MX Foundry Integration to handle 1.25 million sessions/year and Volt MX Foundry Engagement for 80 pushes/sec. To maintain high availability, the customer adds an additional physical computer.

Hardware Configuration Volt MX Foundry Java virtual machines
Physical Computer/VM – 5 core & 12 GB RAM Console, Identity, Integration, Engagement and Sync
Physical Computer/VM – 4 core & 10 GB RAM Integration, Identity, Engagement and Sync
Physical Computer/VM – 2 core & 4-5 GB RAM Sync or Engagement or Integration and Identity
Physical Computer/VM – 4 core & 16 GB RAM (applicable for Database) Database components of the Volt MX Foundry:

    • Console (accounts and workspace)

    • Identity (authglobaldb and authconfig)

    • Integration (voltmxadmin, devicedb, voltmxreports (Metrics))

    • Engagement

    • Sync

Note: The Hardware includes the RAM required for Operating System.

Scenario B

If you are required to have 250 request/sec, then you need to have 7 instances.

Scenario C

A company requires Volt MX Foundry Integration, Identity, Engagement and Reports Portal for handling 1.2 million session/year on Azure Linux cloud with SQL Server.

As an illustration, each Standard tier: Dv2-series – Standard_D3_v2 server can handle 1.25 million sessions per year. Two Standard tier: Dv2-series – Standard_D3_v2 servers are configured for high availability so that the environment can handle any spikes and serve up to 2 million sessions per year. For every additional 1.25 million session /year, you will need an additional Standard tier: Dv2-series – Standard_D3_v2 server.

If high availability is required for Volt MX Foundry Console & Reports Portal, the deployment requires 2 Standard tier: A-series – Standard_A2 servers.

The following tables also include a configuration for AWS that uses EC2 and RDS for MySQL.

For Production

Azure AWS Volt MX Foundry JVM’s
2 standard tier Dv2-series – Standard_D3_v2 2 M3 series – m3.xlarge Integration & Identity, & Engagement
2 Standard tier A-series – Standard_A2 2 T2 series – t2.medium Volt MX Foundry Console & Reports Portal
Azure SQL Database – Standard S1 (200 eDTU per pool) or 2 Standard tier: Dv2-series – Standard_D3_v2 for MySQL/SQL Server Amazon RDS for MySQL – db.m4.2xlarge or 2 M3 series – m3.xlarge for MySQL/SQL Server  

For Development/QA

Azure AWS Volt MX Foundry JVM’s
1 standard tier A-series – Standard_A3 1 M3 series – m3.xlarge Integration & Identity, & Messaging
Azure SQL Database – Standard S1 (Basic (200 eDTU per pool) or Standard tier: A-series – Standard_a3 for MySQL/SQL Server Amazon RDS for MySQL – db.m4.2xlarge or 2 M3 series – m3.xlarge  

Note: If separation of concern and high availability of a particular runtime is important, you can configure runtimes on different physical nodes.

For more information about VM sizes and other aspects of performance, see Sizes for virtual machines in Azure and Amazon EC2 Instance Types.

Database Growth Sizing

Database Component Data growth Size (GB) per year Planned Data Growth per year (%) Estimated Data size for 5 years In GB Data growth criteria
VMS-Engagement 515 5 2846 0.1 million pushes per day 3000 - devices,
Sync 7 5 38 10000 sessions per day
Metrics (Without Events) 288 0 1440 1 Million Application Sessions, 10Million Service Calls, 2 Million Custom Metrics per month
Metrics (With Events+geography) 1980 0 9900 1 Million Application Sessions, 10Million Service Calls, 2 Million Custom Metrics, 50 M Application Events, Geolocation database per month
Admin Server 1 0 1 Mostly static data, excluding Logging feature(which is of trouble shooting data)
Identity/auth 0.6 0 0.6 10000 users, 50 apps. This data does not grow
Waas 1 0 1 For 10 apps or 500 services with 10 operations each, asset size of 2 MB each
Accounts 0.5 0 0.5 Mostly static data, excluding Logging feature(which is of trouble shooting data)

Session Management

Volt MX Foundry server supports Memcache or J2EE in-built session management.

The following lists the session requirements for Memcache and J2EE in-built session management.

Session Configuration Memcache J2EE In-built Session
Session affinity load balancer Not required Required
Additional configuration Yes, need to install Memcache software Not required. App servers provides session management
Data replication Not Supported Yes, session replication needs to be configured on App Server

Memcache Session Management

Memcache is an in-memory key-value store for small chunks of arbitrary data—for example, strings, and objects. Memcache is a high-performance, distributed memory object caching system, generic in nature. Memcache does not support data replication across nodes.

You can configure the Volt MX Foundry Server that is deployed on Tomcat to talk to any number of Memcache nodes. The nodes can be located on the same or different physical machines. All the user sessions are serialized and stored in the Memcache node. This makes it possible to deploy the Volt MX Foundry Server in an environment where session affinity is not available.

The following describes typical scenarios that may occur when you use Memcache and how it handles sessions:

Scenario A

Tomcat Instance is Down

In this scenario, there will be no transaction failure as the session data is available in the Memcache node. The request is routed to the other Tomcat instances. The other Tomcat instances will retrieve the session data from the Memcache.

Scenario B

Memcache Instance is Down

In this scenario, if the session data is stored in the Memcache instance that is down, there will be a transaction failure. All the users whose session data was stored on the Memcache instance that went down, have to reinitiate the transaction.

Scenario C

Physical Computer is Down

In this scenario, if the session data is stored on one of the Memcache instances of the physical computer that is down, there will be a transaction failure. All the users whose session data was stored on the Memcache instances of the failed physical computer, will have to reinitiate the transaction.

The following illustrates the Memcache-Session Management scenario.

J2EE In-built Session Management

J2EE-based Application servers provide HTTP-based session capabilities by default. The HTTP session is managed via an in-memory key-value store. The HTTP sessions will not survive application server restarts.

The following diagram illustrates this scenario.

The following describes typical scenarios that may occur when you use J2EE in-built session management and how it handles sessions:

Scenario A

Physical Computer is Down

In this scenario, all the users of this physical computer will have to re-initiate the transaction.

Note: If you configure session replication, the user will not have to re-initiate the transaction for the app server/physical computer restart or breakdown. You can configure session replication for small server farms—for example, 2-10 app server instances. Session replication will require additional CPU and a very high-speed network connection between the app server nodes.