As Serverless is becoming the new trend, organizations are building serverless applications by patching up different serverless technologies altogether. This results in an application being dispersed in different cloud Sources (Like Azure, Custom Web Applications and even on different microservices). As things are scattered all-round now, managing and monitoring them becomes complex. User must move into different components to achieve visibility on them. But it would be handy for any user to have an End to End Tracking feature to know what has happened in any stages of the Business application from a single place.
Business Activity Monitoring (BAM)
Business activity monitoring is software that aids in monitoring of business activities, as those activities are implemented in the computer system. BAM can also proactively define and analyze critical opportunities and risks in an enterprise to maximize profitability and optimize efficiency.
Business Activity Monitoring in Serverless360 (Serverless360’s BAM)
BAM in Serverless360 will help users, overcome this specific issue by giving them visibility over messages flowing through their Business process transaction. With BAM users can have an End to End visibility of transactions happing in their Business process with some little instrumentation at the user’s end.
BAM in Serverless360 is a functional end to end business activity tracking and monitoring product for Cloud Scenarios
You can read also : Best Computer Monitoring Software
Architecture Of BAM
The main design idea of BAM’s architecture is to ensure high security over the data being tracked. With this architecture, the user will have complete ownership over their data. With this in mind, you can configure your own Azure SQL Database and Storage account which is where your BAM transactions and messages will be pushed to.
At runtime, the Serverless360 portal will access the user’s BAM data when they use BAM searches and dashboards. The below picture represents this architecture.
Why should a user have BAM Solution?
- Achieve end to end business tracking
- Locate, where did the message go?
- Reprocess failed business transactions
- Detect any exception in the business process
Terminologies used in Serverless360’s BAM
To understand the functionality of BAM effectively, User has to understand some terminologies from Serverless360’s BAM. Let’s start by considering the business view of BAM. The below diagram shows what the business terms used in BAM are.
- Business Process is a collection of 1 or more related business transactions happening in a business
- The transaction is an operation of the business which represents a set of business activities (In the above image, New Order, Fulfil Order, Ship Order all individually is called a transaction)
- The stage is an activity within a transaction. A transaction is made up of 1 or more stages
How BAM works in Serverless360
To get started with BAM, User should execute the following:
- Associate Storage units
- Define Business process in Serverless360
- Instrument Business Process
- Track Key Data flowing through the transaction
- Perform Analytics
Model your business processes, transactions, stages and map them to physical processing elements in integration solutions. Configure tracking of business data of your interest
Associate Storage Units
Every business is highly dependent on data involving sensitive information. Serverless360 does not store any of those sensitive data. But then where is the Data Stored for processing in BAM?
All the BAM configuration data is stored in the SQL Database and all the user data like messages, Orders, etc are stored in the storage account the User associated with Serverless360 for BAM storage. Following this approach will give the user have high data security.
NOTE: To allow Serverless360 BAM API to access the Customer configured Azure SQL Database, Allow Azure services and resources to access this server in the firewall setting of the Database should be turned on.
Defining Business process in Serverless360
As BAM tracks data from different stages in a Business process and for every business, the business process differs and it’s the user’s responsibility to define the correct Business process structure in BAM to track the message.
Instrument Business Process
Now a Business process had been defined and how does the data or messages get tracked on to BAM? Well, now the user has to do some instrumentation to track the messages flowing in the Business Process. Serverless360 can track the Business process data in both Codeless and Code-based approach. If the user has designed their business process using Azure Logic app then the user can utilize our custom connector and track the message flowing in the Business Process.
Logic App Without Custom Connector (Before Instrumentation)
Logic App with Custom Connector (After Instrumentation)
Different Connectors (Logic App Connector provided by Microsoft) in your Logic App represents different stages in your Business process. And the user doesn’t need to add the custom connector after every stage in the business process. The custom connector can be added only after the stages in which the user needs to track the flow of the message.
If the user has created their Business process with the combination of Function apps, Microservice, Custom Web Application; User can leverage our .Net Libraries available in Github. The code-based approach can be used to track hybrid Application.
Serverless360’s BAM has .NET Library for Azure Functions and OnPrem APIs to track Hybrid Business Applications.
Track Key Data flowing through the transaction
Every Business is highly depended on data and there will be some key data (like order Id, Customer Id, etc) flowing through the Business process which needs to be tracked. Tracking these data would help users to perform better Analytics.
Defining the tracking property will be done while defining the business process. User can track multiple key data, and this can also be used to filter the transaction.
Filtering using tracked data
In the image above, you can see some tracked data like UserId, DriverId, Location and so on. Now with those tracked properties user can narrow the records by filtering.
Filtering is based on BAM Query
Reprocessing a Business Process
In a Business process, reprocess plays a very important role as failed transactions cannot be left unattended. User can reprocess a failed or any required transaction using the reprocessing capability in BAM. Serverless360 provides 4 types of reprocessing endpoints. They are as follows:
- HTTP Endpoints
- Service Bus Queue
- Service Bus Topic
- Event Grid Topic
Analytics using BAM
Serverless360 BAM supports Dashboard capability which helps users to visualize the trend of your business process. User can create multiple widgets which can represent different accepts in your Business process.
BAM dashboard is an actionable dashboard and when a user clicks on any widget they will be directed to the tracking page with the filter being applied.
Monitoring Business Application
Now the tracking is done, and Analytics is obtained with the tracked properties, the next go-to need for a user would be to monitor the Business process for any failure or violation. Serverless360 provides two different types of the monitor – Exception Monitor and Query Monitor.
Monitor any exception in Business process
Users can also get instant alerts in the configured notification channels whenever any exception is logged in any stages of a business transaction.
This can be achieved by sending the required exception code and exception message in the connector actions or can be sent as a parameter in .NET Library.
Query monitors can be used to monitor the transactions by periodically querying the transactions with the configured query and validating the results against the configured threshold error and warning values. Once the configured error or warning thresholds are not met, an alert will be sent. It will also store the monitoring results up to 1 month for future references.
Business problems solved with Serverless360 BAM
- BAM address a few challenges every business user would face and help them achieve better visibility on messages. Few challenges addressed by BAM are as below
- Tracked data can be viewed in a business point of view rather than the technical point of view
- It is possible to track the properties at different stages in a Microsoft flow to know where the message is
- It is possible to filter or search the transaction instances based on the configured properties in addition to the status of the runs or transaction instances
- It is possible to get alerted whenever there is an exception logged in the stages of the Microsoft flow
- It is possible to set up a custom user access policy so that users having only required privileges can access the message content tracked in the Microsoft flow
- We can set up a customized dashboard to monitor the transactions happening in a Microsoft flow
- It is easier to find the exact stage where the transaction instance has failed and fix it with minimal cost
- It is also possible to track the stages that constitute the same business flow but is present in a completely different infrastructure using the Checkpoint with Correlation action of BAM
With Serverless360’s BAM users would be able to track a hybrid application consisting of Angular, .NET Core application, and an Azure Logic App.
Using BAM in Serverless360 reduce the Total Cost of Application Ownership by minimizing the effort spent on building a solution to do end-to-end tracking by 20%
With BAM not only troubleshoot any failure in a Business process reprocess it.