Junos Space High Availability Software Architecture Overview
The Junos Space platform is designed to ensure five-nines availability with a clustered, multi-tiered, distributed architecture comprising the following features:
Standard browser-based Web 2.0 GUI clients and REST/HTTPS-based NBI clients
Apache Load Balancer as a top-level load balancer
JBoss Application Server based on J2EE technology to provide application framework
MySQL database to manage persistent data
Cassandra distributed file system to store device image files and files from Junos Space applications
The following sections describe the Junos Space architecture and identify the basic requirements for communication between nodes in a Junos Space cluster:
Junos Space Software Architecture
Figure 1 provides a high-level view of the Junos Space software architecture. Junos Space services are accessible to GUI and NBI clients by means of a single virtual IP address for the cluster.
The requests from clients are load-balanced between multiple nodes in the cluster through the Apache HTTP Load Balancer, which is deployed in an active-hot standby configuration on two nodes in the cluster. The load balancer on the node which owns the virtual IP (VIP) address acts as the active instance. If the node which currently owns the VIP address goes down, the other node in the Linux Virtual Server (LVS) cluster will detect this failure and automatically take over the VIP address. The HTTP requests are load-balanced across all active JBoss servers in the cluster using a round-robin algorithm.
Active JBoss servers within the cluster provide the application framework for Junos Space applications, including the following services:
Hosting the applications and associated business logic
Application-level load balancing within the cluster
Application monitoring and automatic recovery
Cluster node monitoring and automatic recovery
Database services with direct access to MySQL DB through JDBC
Hosting Device Mediation Logic
A Junos Space cluster is presented with two kinds of loads:
Incoming requests from GUI and NBI clients
Communication with managed devices
Junos Space is designed to load-balance incoming requests across all active nodes in the cluster. Requests from GUI and NBI clients arrive as HTTP requests serviced by the active instance of the Apache HTTP load balancer. The load balancer distributes the requests to all active JBoss servers in the cluster using a round-robin algorithm. Sticky sessions are utilized to ensure that all HTTP requests associated with a specific GUI session are served by the same JBoss server during the lifetime of that session. For the purpose of application-level load balancing, JBoss business logic processes complex requests as a set of sub-jobs, which are distributed across multiple nodes in the cluster. For example, a single request to a four-node Space cluster to resynchronize 100 devices is divided into four sub-jobs that are executed on four different nodes, with each node resynchronizing 25 devices. For a detailed overview of load balancing, see the topic Understanding the Logical Clusters Within a Junos Space Cluster.
To perform device-level load balancing, Junos Space employs logic in the Device Mediation Layer (DML) so that device connections are equally distributed across all active nodes in the cluster. Device-level load balancing is performed during device discovery by comparing the number of device connections served by individual nodes and selecting the least loaded node. If any node goes down, all associated device connections are distributed to the remaining active nodes in the cluster, thus preventing a node outage from affecting device connectivity. For a detailed overview of device connectivity management, see the topic Understanding High Availability Management of DMI Connections.
MySQL Enterprise Edition is used to provide database services for managing persistent data for both platform and applications. MySQL DB servers are running on two nodes in the cluster in active-standby configuration. Database transactions are replicated between the two MySQL servers in near real‐time. For information about the MySQL cluster that is formed within each Junos Space cluster, see Understanding the Logical Clusters Within a Junos Space Cluster.
Junos Space platform also incorporates network monitoring for fault and performance management, which uses the PostgreSQL relational database service for storing fault and performance related data. The PostgreSQL server runs on two nodes in the Space cluster in active-active configuration with real-time replication to ensure that fault and performance data continues to be available even if one of these nodes fail. For more information, see High Availability for Network Monitoring.
Inter-Node Communication Among Nodes in a Junos Space Cluster
In order to facilitate seamless communication between the nodes in a Space cluster and to achieve optimum performance of the cluster, you need to ensure the following:
All nodes in a Junos Space cluster are configured with IP addresses inside the same subnet. This is important for the VIP switchover mechanism to work correctly.
All nodes in a Space cluster are connected by means of a 1-Gbps or 100-Mbps local network with negligible latency.
JBoss servers within a Junos Space cluster communicate by means of a UDP multicast to form logical clusters.
UDP multicast traffic must be allowed within the nodes in the cluster, which also means that you should disable IGMP snooping on the switches that interconnect the cluster or configure them explicitly to allow UDP multicast between the nodes.