IoT: In the Cloud and on the Edge





IoT&Cloud Blog-1

 The Internet of Things (IoT) is inherently edge biased. The “things” are all devices out in the world, not encased in a high-tech data center. Naturally, we expect initial data collection to take place on these devices, but what happens after that? Where does the data go? How is it processed? Is the data processed? Is any value derived from that data? These are all questions I think about every time I talk with customers looking to find a solution for their IoT data.IoT is on its way to becoming an incredibly generic term, the same thing happened to Cloud years ago. IoT can encompass consumer electronics, like wearables and smart home devices, as well as enterprise applications, like manufacturing, agriculture, healthcare, and much more. It’s difficult to lump all of IoT into one bucket, sometimes these edge devices require a processed response to perform their function and other times they are simply collectors. One commonality is that, at the end of the day, all of these devices are generating data and that data should then be utilized to make business decisions.  

Let’s take a look at some of the different approaches to IoT data…

Focusing on the Cloud with Dumb IoT Devices

In most cases each individual device does not generate that much data, simply streaming sensor data or something similar. It’s the aggregation of thousands, if not millions, of sensors that makes IoT become a Big Data problem. What is the natural inclination when solving Big Data problems? Push it to the cloud! This is the pattern I run into the most, utilizing the cloud to perform any and all calculations. The edge devices simply collect and push data up to the cloud. They do not perform any computations themselves; they’re dumb. 

This is the easiest pattern to implement because it doesn’t deviate much from the existing cloud architectures that have been the center of the tech world for years. The only major difference is the data source, devices instead of other cloud services. The cloud is great for high volume computation, like artificial intelligence and machine learning, but it’s complete overkill for simple algorithms. In many IoT cases the primary interest is real-time data, which can be processed linearly without the need for large, expensive servers. Additionally, the transfer time for communicating from edge to cloud can add significant latency. 

What happens when devices lose connection? This is the Achilles heel of cloud-centric IoT architectures. In many cases devices are on the move. Take for example transportation and logistics as a lot of the data comes from trucks and ships, all in constant motion with no guaranteed connection. If processing is done remotely in the cloud, then our device effectively becomes useless unless it has a reliable connection. What do we do about that? Kick processing to the edge… 

Intelligent IoT Devices on the Edge

Most IoT devices I’ve encountered have a decent onboard processing unit. They’re not super computers, but they can certainly support real-time algorithms. In fact, today’s edge devices are so powerful that in some cases the cloud is completely irrelevant. If the primary focus of the IoT application is for real-time monitoring then all of that can be achieved on the edge. Filtering and algorithmic computations that only depend on the newest data (or a recent window) are not compute intensive. An edge device is more than sufficient for these tasks.  

What about connecting the devices? The true power of IoT is realized through the meshing of multiple devices. In the cloud IoT case this is typically facilitated through the cloud and the devices aren’t actually connected with each other, they must run through the cloud middleman. Without the cloud, a mesh network of devices is required. This can be incredibly powerful because it enables distributed computing on a large scale. 

Connection loss is still an issue on the edge, but each device can stay operational without the need to depend on the larger network. If we go back to the logistics case, this means that the trucks can still be effective, even without connection. Drivers can be informed of any immediate alerts necessary to them. Real-time is incredibly important in many IoT use cases, but what if we want the best of both worlds? 

Strengthening IoT with a Unified Solution

Combining the edge with the cloud to create a multi-tiered network solution is ideal to realize the best of both worlds. The edge will always be part of any scenario with IoT devices. Therefore, we inherently have the ability to perform real-time dashboarding and analytics on the edge. By building a mesh network between devices we can add distributed computing capabilities for real-time analytics and smaller datasets. It is when we look to run machine learning, predictive analytics, and/or artificial intelligence on our data, typically over a historical period, that we need the computing power of the cloud. By synchronizing data between the edge and the cloud we can achieve the best of both worlds. 

 With a tiered approach we utilize the edge and the cloud where they both thrive and remove some of the weaknesses. For example, a major problem of running all processing on the cloud is data transmission. In other words, all data has to be sent to the cloud. In the tiered approach, initial filtering and basic algorithmic processing can be performed on the edge device. This limits the amount of data that needs to be transmitted and significantly lowers the cost of cloud processing. More simplistic processing is performed on devices that are already owned, leaving only the computationally intensive processing for paid cloud services. 

Here at HarperDB we are huge proponents of shifting computation to the edge. Optimization is achieved by using technologies in the most efficient way possible. To us, for the common IoT use case, the most efficient configuration is a hybrid, tiered approach that combines the edge and the cloud. Check out our Example Architectures for more in-depth examples!