40
Monitoring Your Business with WSO2 BAM Anjana Fernando Senior Technical Lead WSO2 Inc. Chathura Ekanayake Senior Technical Lead WSO2 Inc.

Monitoring Your Business with WSO2 BAM

Embed Size (px)

Citation preview

Page 1: Monitoring Your Business with WSO2 BAM

Monitoring Your Business with WSO2 BAM

Anjana FernandoSenior Technical Lead

WSO2 Inc.

Chathura EkanayakeSenior Technical Lead

WSO2 Inc.

Page 2: Monitoring Your Business with WSO2 BAM

Outline• Introduction to Business Activity Monitoring

• WSO2 Business Activity Monitor

• WSO2 BAM Components

• WSO2 BAM Toolboxes

• WSO2 BAM High Availability Distributed Deployment

• Demonstrations

Page 3: Monitoring Your Business with WSO2 BAM

Business Activity Monitoring

“The aggregation, analysis, and presentation of real-time information about activities inside organizations and involving customers and partners” - Gartner

Page 4: Monitoring Your Business with WSO2 BAM

Aggregation

● Capturing data

● Data storage

● What data to capture?

Page 5: Monitoring Your Business with WSO2 BAM

Analysis● Data operations

● Building KPIs

● Operate on large amounts of historic data or new data

● Building BI

Page 6: Monitoring Your Business with WSO2 BAM

Presentation

● Visualizing KPIs/BI

● Custom Dashboards

● Visualization tools

● Not just dashboards!

Page 7: Monitoring Your Business with WSO2 BAM

WSO2 Business Activity Monitor

• Fully-open source solution for aggregating and analyzing data and presenting information about business activities.

• Cloud-enabled, lightweight, developer-friendly and easy-to-deploy

• High performance data capture framework

• Elastically-scalable data analysis powered by Apache Hadoop

• Pre-built Data Agents for WSO2 products

Page 8: Monitoring Your Business with WSO2 BAM

Architecture

Page 9: Monitoring Your Business with WSO2 BAM

Data Agents

Page 10: Monitoring Your Business with WSO2 BAM

Data Agents● Compatible with CEP/BAM

● Get data across to BAM

− Service monitoring feature – WSO2 AS, DSS, ESB, API Manager

− Mediation monitoring feature – BAM Mediator for WSO2 ESB

− Custom data-agents

● Asynchronous & non-blocking

● Thrift for high performance message throughput

Page 11: Monitoring Your Business with WSO2 BAM

Custom Agents

• Data agents are meant to be installed/plugged into the server to be monitored

• A Java SDK is provided

• Through Thrift, different languages can be supported

Page 12: Monitoring Your Business with WSO2 BAM

Data Receiver

Page 13: Monitoring Your Business with WSO2 BAM

Data Receiver● Receives data and stores it in Cassandra

○ Scalable, big data repository

● Asynchronous & non-blocking

○ Combination of Cassandra, Thrift and the non-blocking nature results in extremely fast writes

● Shared with WSO2 CEP for real time analysis

● Supports Thrift & REST API

● Supports plugging in of different receiver types

Page 14: Monitoring Your Business with WSO2 BAM

Data Model• Data is sent over using strongly typed Data Streams

{ 'name':'phone.retail.shop', 'version':'1.0.0', 'nickName': 'Phone_Retail_Shop', 'description': 'Phone Sales', 'metaData':[ {'name':'clientType','type':'STRING'} ], 'payloadData':[ {'name':'brand','type':'STRING'}, {'name':'quantity','type':'INT'}, {'name':'total','type':'INT'}, {'name':'user','type':'STRING'} ]}

● Data Streams are versioned○ Allows for easier analysis

Page 15: Monitoring Your Business with WSO2 BAM

The Analyzer Engine

Page 16: Monitoring Your Business with WSO2 BAM

The Analyzer Engine● Powered by Apache Hadoop with querying/managing

through Apache Hive

● Data transfer to and from data sources is handled through custom storage handlers

● Parallel, distributed processing through the MapReduce programming model

Page 17: Monitoring Your Business with WSO2 BAM

• Runs on local Hadoop node or delegates to Hadoop cluster

• Scalable analytics

• Cluster can range from a couple of nodes to 1000s

● Analysis is carried out based on analytics scripts

● Scripts are based on an easy-to-learn, SQL-like query language

INSERT OVERWRITE TABLE UserTable SELECT userName, COUNT(DISTINCT orderID),SUM(quantity) FROM PhoneSalesTable WHERE version= "1.0.0" GROUP BY userName;

The Analyzer Engine

Page 18: Monitoring Your Business with WSO2 BAM

The Analyzer Engine

● Scripts can be scheduled○ Ex: once a minute, every Wednesday at 4:15 p.m., every

30th at 12 midnight

● Polyglot data architectures are supported○ Write summarised information to any kind of datastore

○ Custom written Hive JDBC handler used by default for output to relational DBs

Page 19: Monitoring Your Business with WSO2 BAM

The Presentation Layer

Page 20: Monitoring Your Business with WSO2 BAM

The Presentation Layer

• Gadget Portal for the dashboard

• Gadget Generation Wizard – Tool for generating custom

gadgets for the dashboard

• Activity Dashboard for correlating activities

• Message Console

• Plug in your own report server/ dashboard server

Page 21: Monitoring Your Business with WSO2 BAM

The Presentation LayerBAM Dashboards

Page 22: Monitoring Your Business with WSO2 BAM

The Presentation LayerGadget Portal

Page 23: Monitoring Your Business with WSO2 BAM

The Presentation Layer

Activity Dashboard

Page 24: Monitoring Your Business with WSO2 BAM

Activity Dashboard (cont'd)

Page 25: Monitoring Your Business with WSO2 BAM

The Presentation LayerMessage Console (HL7)

Page 26: Monitoring Your Business with WSO2 BAM

Message Console (cont'd)

Page 27: Monitoring Your Business with WSO2 BAM

BAM Toolboxes● BAM Toolboxes are installable and hot deployable artifacts used for

deploying functionalities to a BAM server

○ Stream definitions○ Analytics scripts○ Dashboards

● Supports plugging in of one or more of the above features

● Toolboxes for monitoring and auditing most WSO2 products are available OOTB

● Toolboxes for custom scenarios can be created easily

Page 28: Monitoring Your Business with WSO2 BAM

HA Distributed BAM deployment● WSO2 BAM can be clustered and deployed in a distributed manner to enable

high-availability, fail-over scenarios

○ Partially distributed deployment

■ Cassandra (storage) nodes are clustered

○ Fully distributed deployment

■ All components of BAM are clustered (data receiver, storage, analyzer and presentation)

● Hazelcast in-memory data grids are used for clustering implementation

Page 29: Monitoring Your Business with WSO2 BAM

Partially Distributed BAM deployment

Page 30: Monitoring Your Business with WSO2 BAM

Fully Distributed BAM deployment

Page 31: Monitoring Your Business with WSO2 BAM

Deployment – Shared events with CEP

Page 32: Monitoring Your Business with WSO2 BAM

Performance of WSO2 BAM

3-Node Cassandra Cluster used

Page 33: Monitoring Your Business with WSO2 BAM

Demo: From Publishing to Visualization

Page 34: Monitoring Your Business with WSO2 BAM

Monitoring a business process - Sales order handling

Verify order

Select supplier

Produce items

Ship products

In_production = true

Page 35: Monitoring Your Business with WSO2 BAM

Monitoring a business process - Business events

Verify order

Select supplier

Produce items

Ship products

In_production = true

Case ID = case_1Activity = Verify orderAssignee = SmithDuration = 20 mins

Case ID = case_1Activity = Verify orderAssignee = SmithDuration = 20 mins

Page 36: Monitoring Your Business with WSO2 BAM

Business events...

Case ID Activity Assignee Duration

Case_1 Verify order Smith 10

Case_2 Verify order John 15

Case_1 Produce items Nick 30

Case_1 Ship products Peter 150

Case_2 Produce items John 200

Case_3 Verify order Smith 20

...

Page 37: Monitoring Your Business with WSO2 BAM

WSO2 BAM - Deployment

Workflowsystem

BAM data publisher

Events store(e.g. Cassendra)

WSO2 BAM

Analyticsscripts

Results store(e.g. MySQL)

Gadget server

Gadgets

Visualizations /Reports

Page 38: Monitoring Your Business with WSO2 BAM

Demo: Activity Monitoring

Page 39: Monitoring Your Business with WSO2 BAM

Questions?

Page 40: Monitoring Your Business with WSO2 BAM

Thank You