345 helped to design, build and test an IoT platform for a global business, ensuring devices all over the world could connect to a cloud-based backbone to exchange data and receive updates.
The Problem - Connecting Devices at Scale
One of the major opportunities that technology brings to organisations is to use smart devices to connect us with our people, plant and customers. This case study describes a solution we built for a client, yet almost every industry has similar needs. Insurance companies are using black boxes in cars, apps on mobile phones allow us to receive data from customers at any time, and we’re used to tracking the logistics we depend on to get our deliveries on time.
Our client, a global mining company, uses devices that monitor and control plant all over the world. These devices may be measuring pressure and flow in a gas pipeline, they may be adjusting a valve to control gas delivery, they may be measuring the amount of wear on mining equipment to ensure reliable operation and predict when maintenance is needed.
What’s more, these devices may be in remote and inhospitable parts of the world, where connectivity may be limited to the frequency of a satellite passing overhead. Therefore, the solution we built needed to be able to communicate both in real time and to handle batched data that has been collected throughout the day.
Our task was to build a solution capable of connecting these devices securely and reliably, handling 2-way data exchange with them, storing all the data that they produce in a data lake so that it can be used for analysis, prediction and troubleshooting.
Finding the Right Technology
The client was responsible for the choice of devices, so we needed to find technology that supported their needs. We built the solution using the Microsoft Cloud (Azure). This gave us access to a rich toolset that could support everything we needed to do:
- Azure IoT Hub: this is a cloud service that’s built for connecting IoT devices and managing them. This provides the base connectivity and provides an infrastructure platform that has limitless scale, so we were confident that no matter how many devices our client added to the solution we would never run out of capacity.
- Azure Data Lake: this solution allows almost unlimited storage of any kind of data – structured and unstructured – so that it can be mined and processed later.
- Azure Data Factory: this is a cloud-based ETL tool, allowing us to design and build data processes connecting to our online databases.
- Azure SQL Database: an online relational database utilising elastic pools to provide the scale we needed to handle Big Data.
- Azure Service Bus: a scalable cloud-based messaging system to deliver messages to back-end systems.
- Azure Service Fabric: this application framework provided us with a platform for running a modern distributed microservices architecture, allowing us to design an application in small maintainable chunks.
- Azure Machine Learning: building and running AI models to process data.
Having chosen the right technology stack we were in a position to deliver a solution!
Building the Solution
The overall solution, hosted centrally in Azure and connecting devices from all over the world, uses the right technology to combine into a single, low-maintenance, highly scalable solution: