1
CERN San Francisco, California 6 – 11 October 2013 High-Availability Monitoring and Big Data: Using Java Clustering and Caching Technologies to Meet Complex Monitoring Scenarios M. Bräger, M. Brightwell, E. Koufakis, R. Martini, A. Suwalska, CERN, Geneva, Switzerland Monitoring and control applications face ever more demanding requirements: as both data sets and data rates continue to increase, non-functional requirements such as performance, availability and maintainability become more important. C 2 MON (CERN Control and Monitoring Platform) is a monitoring platform developed at CERN over the past few years. Making use of modern Java caching and clustering technologies, the platform supports multiple deployment architectures, from a simple 3-tier system to highly complex clustered solutions. ActiveMQ Broker ActiveMQ Broker DAQ process DAQ process DAQ process DAQ process C 2 MON client C 2 MON client C 2 MON client ActiveMQ Broker ActiveMQ Broker C 2 MON server Terracotta standby Terracotta server Terracotta Stripe C 2 MON server C 2 MON server core DAQ out DAQ in DAQ supervision Cache persistence Cache loading Lifecycle Configuration Cache DB access Logging Alarm Rules Benchmark Video access C 2 MON server modules Client communication Authentication ActiveMQ Broker DAQ process DAQ process C 2 MON client ActiveMQ Broker C 2 MON server C 2 MON client C 2 MON client C 2 MON server C 2 MON DAQ API my DAQ C 2 MON Client API ... my App @CERN: DIAMON DIAgnostic and MONitoring (DIAMON) uses C 2 MON to provide the CERN operators with tools to monitor more than 3000 devices, high level applications and servers across CERN. @CERN: TIM The Technical Infrastructure Monitoring (TIM) uses C 2 MON to supervise and control 120,000 monitoring points and to handle more than 60,000 different alarms. BIG DATA SCENARIO This scenario is not yet deployed, but it would fit a system that gathers data at a high rate from millions of data points. At the same time it would be possible to instantly deliver the data to a large set of clients, or for complex real time processing across the entire cache. Deployment 1 Deployment 2 Deployment 3 Fast and Simple Good performance, easy setup, and very simple management. Made for scenarios where availability is less critical. Redundant and Available The added redundancy on the server level allows for rolling updates, as well as providing instant failover in case of a single server failure. Maximum Performance, Maximum Availability Multiple server nodes form a cluster, and are also optimised for certain data points in the cache. In this scenario data distribution is highly optimized, achieving maximum performance and availability to meet even the most stringent requirements. Data Analysis TIM Viewer Web Viewer C 2 MON: 3 Deployment Scenarios Terracotta Stripe C 2 MON Server C 2 MON Server C 2 MON Server Terracotta standby Terracotta server ActiveMQ Broker ActiveMQ Broker DAQ process DAQ process DAQ process DAQ process C 2 MON client C 2 MON client C 2 MON client ActiveMQ Broker ActiveMQ Broker Terracotta stripe C 2 MON server Terracotta stripe C 2 MON server A modular server concept, adaptable to individual needs The heart of the system, based on an optionally distributed cache, provides a basic set of functionalities: communication, lifecycle management and configuration of the DAQs, initial load of the in-memory cache, recovery options, and evaluation of alarms and business rules. The possibility of adding as many individual server modules as needed makes the use of the system very flexible. Large data sets can normally be broken up into partitions with minimal dependencies. This allows groups of data to connect to dedicated ActiveMQ brokers and C 2 MON server nodes. Our strategy enables the cache to optimize the data distribution, since C 2 MON nodes “specialize” in certain data points. Cache strategy A clustered server layer is able to process data updates in a load-balanced manner, handles data avalanches and provides higher protection against network or hardware failures. Load balancing The C 2 MON client API uses JSON messages to enable the communication between server and client layer, and the execution of pre-configured commands. Client Layer The DAQ layer offers drivers to acquire data from a variety of sources (OPCs, PLCs, Oracle databases or other CERN specific protocols). Each DAQ process runs on a common DAQ core, which manages the communication with the C 2 MON server tier, and can also apply filters improving the quality of the data. Data acquisition Layer The C 2 MON server runs as a standalone Spring application, and comprises of a core part, and a set of optional modules. Server Layer C 2 MON Architecture overview DIAMON console Terracotta stripe DIAMON viewer http://cern.ch/c2mon C 2 MON implements a three-tier Java architecture using the Java Messaging (JMS) framework ActiveMQ as middleware, which allows an anonymous, fault-resilient and horizontally scalable communication. A major aim of the C 2 MON platform is to provide a clustered server layer that is able to consume data updates in a load- balanced manner. The modular concept allows writing functional extensions for all three layers and to profit from many ready-to-use components. Together with its flexible deployment C 2 MON is adaptable in a short time- scale to many different monitoring scenarios.

ActiveMQ Broker ActiveMQ Broker Using Java Clustering and … · CERN San Francisco, California 6 – 11 October 2013 High-Availability Monitoring and Big Data: Using Java Clustering

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ActiveMQ Broker ActiveMQ Broker Using Java Clustering and … · CERN San Francisco, California 6 – 11 October 2013 High-Availability Monitoring and Big Data: Using Java Clustering

CERN

San Francisco, California 6 – 11 October 2013

High-Availability Monitoring and Big Data: Using Java Clustering and Caching Technologies

to Meet Complex Monitoring Scenarios

M. Bräger, M. Brightwell,

E. Koufakis, R. Martini,

A. Suwalska,

CERN, Geneva, Switzerland

Monitoring and control applications face ever more demanding requirements: as both data sets and data rates continue to increase, non-functional requirements such as performance, availability and maintainability become more important. C2MON (CERN Control and Monitoring Platform) is a monitoring platform developed at CERN over the past few years. Making use of modern Java caching and clustering technologies, the platform supports multiple deployment architectures, from a simple 3-tier system to highly complex clustered solutions.

ActiveMQ Broker ActiveMQ Broker

DAQ process DAQ process DAQ process DAQ process

C2MON client C2MON clientC2MON client

ActiveMQ Broker ActiveMQ Broker

C2MON server

Terracotta standby

Terracotta server

Terracotta Stripe

C2MON server

C2MON server core

DAQ out

DAQ in

DAQ supervision

Cache persistence

Cache loading

Lifecycle

Configuration

Cache DB access

Logging Alarm Rules

Benchmark Video access

C2MON server modules

Client communication

Authentication

ActiveMQ Broker

DAQ process DAQ process

C2MON client

ActiveMQ Broker

C2MON server

C2MON client C2MON client

C2MON server

C2MON DAQ API

my DAQ

C2MON Client API

...

my App

@CERN: DIAMON

DIAgnostic and MONitoring (DIAMON) uses C2MON to provide the CERN operators with tools to monitor more than 3000 devices, high level applications and servers across CERN.

@CERN: TIM

The Technical Infrastructure Monitoring (TIM) uses C2MON to supervise and control 120,000 monitoring points and to handle more than 60,000 different alarms.

BIG DATA SCENARIO

This scenario is not yet deployed, but it would fit a system that gathers data at a high rate from millions of data points. At the same time it would be possible to instantly deliver the data to a large set of clients, or for complex real time processing across the entire cache.

Deployment 1 Deployment 2 Deployment 3

Fast and Simple

Good performance, easy setup, and very simple management. Made for scenarios where availability is less critical.

Redundant and Available

The added redundancy on the server level allows for rolling updates, as well as providing instant failover in case of a single server failure.

Maximum Performance, Maximum Availability

Multiple server nodes form a cluster, and are also optimised for certain data points in the cache. In this scenario data distribution is highly optimized, achieving maximum performance and availability to meet even the most stringent requirements.

Data Analysis TIM Viewer Web Viewer

C2MON: 3 Deployment Scenarios

Terracotta Stripe

C2MON Server

C2MON Server C2MON Server

Terracotta standby

Terracotta server

ActiveMQ Broker ActiveMQ Broker

DAQ process DAQ process DAQ process DAQ process

C2MON client C2MON clientC2MON client

ActiveMQ Broker ActiveMQ Broker

Terracotta stripe

C2MON server

Terracotta stripe

C2MON server

A modular server concept, adaptable to individual needs The heart of the system, based on an optionally distributed cache, provides a basic set of functionalities: communication, lifecycle management and configuration of the DAQs, initial load of the in-memory cache, recovery options, and evaluation of alarms and business rules. The possibility of adding as many individual server modules as needed makes the use of the system very flexible.

Large data sets can normally be broken up into partitions with minimal dependencies. This allows groups of data to connect to dedicated ActiveMQ brokers and C2MON server nodes. Our strategy enables the cache to optimize the data distribution, since C2MON nodes “specialize” in certain data points.

Cache strategy

A clustered server layer is able to process data updates in a load-balanced manner, handles data avalanches and provides higher protection against network or hardware failures.

Load balancing

The C2MON client API uses JSON messages to enable the communication between server and client layer, and the execution of pre-configured commands.

Client Layer

The DAQ layer offers drivers to acquire data from a variety of sources (OPCs, PLCs, Oracle databases or other CERN specific protocols). Each DAQ process runs on a common DAQ core, which manages the communication with the C2MON server tier, and can also apply filters improving the quality of the data.

Data acquisition Layer

The C2MON server runs as a standalone Spring application, and comprises of a core part, and a set of optional modules.

Server Layer

C2MON Architecture overview

DIAMON console

Terracotta stripe

DIAMON viewer

http://cern.ch/c2mon

C2MON implements a three-tier Java architecture using the Java Messaging (JMS) framework ActiveMQ as middleware, which allows an anonymous, fault-resilient and horizontally scalable communication. A major aim

of the C2MON platform is to provide a clustered server layer that is able to consume data updates in a load-balanced manner. The modular concept allows writing functional extensions for all three layers and to profit

from many ready-to-use components. Together with its flexible deployment C2MON is adaptable in a short time-scale to many different monitoring scenarios.