Independent software engineering consultancy based in Norway. We maintain Nightwatch.js, among other stuff.
There is growing demand in various industries, such as energy, agriculture, transportation, and also in scientific research fields, particularly environmental studies, for not only more intelligent and efficient data collection, but also for distributed and localised manipulation of the data being collected, in real-time.
The so-called Internet of Things has been around for some time. Data collection from independent, isolated devices is nothing new and there are several success stories on the market.
But these IoT devices have been mostly successful on the consumer electronics market, like the Nest thermostat for instance, or the ever growing list of "connected" kettles, fridges, dishwashers, and I don't know what else Samsung is cooking (supposedly inside a "connected" oven).
While these devices could in theory accommodate sophisticated real-time capabilities, their purpose is quite limited. No one else benefits from a Google Nest other than the person or household using it.
These devices, even though they might incorporate various useful technologies, don't have any other practical usage beyond their commercial intent. Whenever we think about IoT devices, we start picturing either fancy connected household appliances which nobody needs, or small Raspberry PI "hack kits" with various other small sensors, all bundled together with a lot of wires in a hobby-style, soon-be-discarded project.
On the other hand, the heavy industries such as the energy sector are struggling to adopt cloud and IoT technologies which might improve their workflows and as a result they lack the benefits which these technologies would bring.
The consequence of the slow “digitalisation” (the term commonly used in these industries) is however propagated to the entire society, and in many cases to the environment and the biosphere. Thus, the swift transition to digital technologies in the heavy industries should be primarily an environmental and ecological consideration, and then a commercial and economic one.
Let's start with looking at what is out there already and I will only focus on the heavy industries and scientific research sectors. I will mostly draw conclusions from my own experience as an independent consultant working in a few different large scale projects in the energy sector in Norway over the past five years. I have also been involved in a few scientific research projects with an environmental focus while working at the leading Norwegian Institute for Water Research during the course of 2018.
From what I've been able to observe, not only by directly being involved in various projects, but also by speaking with several other large companies in the energy sector in Norway, there are various data platforms being developed mostly in-house, independently.
The purpose varies of course from one company to another, but what these platforms have in common is:
The most sophisticated ones also have 3D simulators and digital twins.
These solutions are often highly complex and costly to implement and deploy. They are usually built from the ground up, using in many cases cloud architectures based on the Kubernetes framework, and with limited collaboration efforts with other parties.
Besides the usual shortcomings resulting from working under an isolated and closed-source platform, most existing solutions are only using traditional IoT technologies and not leveraging the “Intelligent Edge” technologies, ending up at best with an architecture that looks similar to this:
The above architecture is based on the traditional Azure IoT solutions developed by Microsoft to enable bulk data transfer to the cloud, but the cloud provider could also be Google, AWS, etc.
There are competing IoT platforms from Google Cloud and AWS, but my experience is mostly around the Azure IoT Edge suite, and as far as I can tell it seems to be slightly ahead of its competitors when it comes to integrated and reliable cloud IoT platforms. Its demonstrated capabilities enables developers to build, deploy, and monitor end-to-end solutions that use edge devices, which be used for a variety of purposes in several industries.
The main benefit of using Azure IoT Edge enables you to move parts of your workload to the edge, so your devices can spend less time sending messages to the cloud and react more quickly to events. The architecture is based on containers and uses Docker-compatible individual containers to perform workloads on edge devices and to communicate with the cloud.
Here are some of the features that are already built-in into the Azure IoT Edge solutions:
The entire thing is open-source on Github, and there are several additional tools to assist you in building your apps, such as the IoT Edge Dev Tool, an AI toolkit for IoT Edge, an IoT Edge extension for VS Code, and plenty of code samples. There is of course also ample documentation, a CLI tool, and a number of tutorials available.
For me personally, another big selling point, besides being open-source, is the ease of use and availability of integrated solutions. I have worked on a project not to long ago where we were building a complex industrial data analytics platform, also using edge devices, but with all the services being deployed using Kubernetes (in Azure) and our own streaming services built around RabbitMQ.
While building a distributed, bi-directional cloud platform using Kubernetes provides many opportunities in terms of flexibility, control, and scaling, I found it to be a very complex and costly endeavour. Azure IoT Edge provides most of the basic functionality in a highly integrated and reliable manner, with built-in security.
In the scientific community, researchers working particularly with ecological studies, in crucial fields such as conservation or environmental monitoring, would dramatically benefit from being able to deploy their data intensive workloads directly on independent devices in the field, run them as the data is being collected, and sync the results to the cloud, in real-time.
For example, during a conservation project which monitored the beluga whale populations in Alaska, part of Microsoft's AI for Earth initiative, researchers at the NOAA had to analyse thousands of hours of audio recordings to study populations and behaviour. The data was collected with hydrophones placed in permanent moorings within the whales habitat.
A team at Microsoft was then able to assist the scientists at NOAA with applying machine learning over their existing detectors and identify beluga sounds from the audio recordings in an automatic fashion, thus helping them to reduce the time used and dramatically increase the efficiency of the process.
The effort is being hailed as a success story by Microsoft and indeed rightfully so. Still, projects like this, with critical applications in ecology, can go even further. Ideally, data recorded is processed, analysed on the go, and results are sent back to the cloud in real-time, while data scientists train and define the models using the cloud interfaces, which are deployed directly on the device.
Microsoft's AI for Earth initiative is quite inspiring and motivating and they seem to have invested strongly in putting it all together. They offer various open-source tools, examples, APIs, potentially serving as a hub to connect scientists with programmers and other technologists across disciplines.
What gives me even more confidence is the fact that the AI for Earth team at Microsoft not only acknowledges the role that technology has played in accelerating the climate and ecological crisis, but they seem to be well-versed in some of the most complex ecological thinking, among which concepts like hyperobjects – something which the philosopher and ecological thinker Timothy Morton has theorised.
The earth currently faces urgent and accelerating environmental challenges. Climate change, biodiversity and habitat loss, pollution, overpopulation, and food and fresh water shortages need quick and comprehensive mitigation, but can seem so overwhelming that philosopher Timothy Morton calls them hyperobjects, entities so vast and distributed that they're difficult to fully define or comprehend.
Naturally there is a long road ahead when it comes to building an integrated data platform which leverages the real-time capabilities of IoT Edge devices and makes use of AI algorithms "at the edge".
If you are already using Microsoft Azure as a cloud provider, or you're willing to give it a try, you are definitely in good company and with a solid foundation to get you started. You may find at first the entirety of all the Azure IoT services and terminology potentially confusing and maybe even overwhelming, if you're new to IoT.
But don't worry, everything is well documented and based on open-source technology and protocols. I also put together a technical guide on how to install and get started with the Azure IoT Edge on Ubuntu, which could be beneficial as an initial step.
Create your free account to unlock your custom reading experience.