As mentioned in the overview of this series ABT Power Management (ABT)’s Remote Automatic Asset Management System (RAAMS), using Azure Event Hubs in place of FTP and linked servers means the only requirement to monitor a remote site is an Internet connection. Little to nothing is required of the customer or ABT personnel. This is accomplished through the Neuron, an application using Azure’s Event Hubs in conjunction with the Azure Web App Service and Azure Storage Blobs.
Setting up the Azure Web App Service
To set up a site, the Azure Web App service presents a simple web front end to a SQL Azure Database that allows them to enter information about a site. Authentication is through ABT’s Active Directory, so there’s no need to create a separate directory for Azure. The website is available via the internet so is accessible on premise, at a remote site, or at home. Here’s the template used.
Application Deployment and Setup from Azure Blob Storage
After site setup, this also holds true for the installation of the application as well. Using Microsoft’s Click Once technology the application and any updates are placed in an Azure Storage Blob for installation and upgrades via URL. The application automatically checks for any updates, so every site always has the same version of the Neuron Application.
Below is an example of the web page.
The Neuron Application Azure Event Hub Architecture
The Neuron Application is controlled from Azure services allowing for centralized management of, not just updates, but the process of collecting data. Once installed, commands are sent to the Neuron Application through Azure Event Hubs.
Consumption from Azure Event Hubs
There is one event hub per collection point through which primarily Transact SQL commands are sent to the Neuron Application. A select command may be sent to get the latest events from the chargers on that collection point or to update charge curves for those same chargers in the form of an update statement. An example would be Select * from Chargers. Configuration updates are also sent as commands. If there was a need to change the name of the Microsoft SQL Server instance on the collection point, it would be sent via the event hub and the Neuron Application would update the configuration file. There’s no need to go to the individual machine.
Publishing to Azure Event Hubs
The results of these commands are published to a single event hub specific to that command. Continuing with selecting the latest events from a charger example, all of the events are published to a central event hub that collects charger events for downstream processing. There may be no data to publish back, as in the case of updating a charge curve. All commands publish results to a single commandresponse event hub indicating the success or failure of the command. If there is a failure it will also include the error message.
This centralization of management means there is very little that can go wrong with the application and troubleshooting is largely confined to Azure services.
Next Step: Azure Stream Analytics
Part 3 of this series will discuss Azure Stream Analytics and how it decreases the complexity of version control and gives access to data for analysis in near real time.