If you’re developing an IoT device, odds are that you want it to do some valuable computations to solve an important problem. Maybe you want to deploy sensors in remote locations, develop a device that can perform data analytics to monitor a renewable energy source, or build a medical device that can use computer vision to detect early signs of an illness.
Whatever you’re building, at some point you may start to wonder: should your device perform these important computations in the cloud or at the edge? Choosing between computing on the cloud or on the edge is a decision that can impact things like your device’s cost or efficiency – and no one wants to make the wrong decision initially and spend time and money later down the line to pivot to the correct one.
We asked some of our experienced engineers what they think someone needs to consider when choosing between computing in the cloud or on the edge.
What is cloud computing?
The “cloud” refers to the collection of servers that can be accessed over the internet – popular cloud providers include Amazon Web Services, Microsoft Azure, and Google Cloud.
These servers can provide on-demand computing resources to store and process data. You can think of the cloud as a centralized location for your files and programs, and you can connect any device to the cloud to access them. Services like Dropbox or Google Drive are some of the many cloud-based services out there.
Cloud computing describes the idea of performing computations in the cloud. These computations can include data analysis and visualization, computer vision and machine learning. An example of cloud computing in action is when your average smart home speaker sends your audio input to the cloud where it is interpreted by algorithms and sends back a response.
What is edge computing?
The edge describes the “edge” of the network. It includes devices that are an entry/exit point to the cloud, but are not part of the cloud itself. For example, a server in a data centre is part of the cloud; your smartphone and router that connects to that server is part of the edge.
Edge computing describes the idea of performing computations on the edge. This way, the processing is done closer to or at the location where the data is collected or acted upon.
An example of an edge computing process is object detection on an autonomous vehicle. The vehicle processes data from its sensors and uses the results to avoid obstacles. Unlike your smart home speaker, the data it collects is processed locally, rather than sending it to the cloud.
There are a couple of key questions to consider when choosing between the edge and cloud computing.
What is the quality of your device’s network?
Performing computations on the cloud can work well when you have high-bandwidth, low-latency, and stable connection to the internet, as you will be needing to send your data back and forth between cloud servers and your device. If your device is intended to be used, for instance, in a home or office with a good internet connection, this back and forth can be done relatively seamlessly.
In most cases, if the computation is done on the edge, it won’t be affected by poor or lost internet connection in a remote location; the processing can continue since it is not computed in the cloud. You wouldn’t want your vehicle’s object detection to stop working while on a long road trip; that’s one of the reasons why autonomous vehicles frequently perform computations like object detection on the edge.
How quick and how often does your data need to be processed?
Edge computing can be ideal in cases where your customer needs response times from your device to be faster than what can be achieved with a decent network connection, such as monitoring vital components of a system. The latency from travel-time between the device and the cloud can be reduced or eliminated completely. As a result, the data can be processed right away. If the data processing itself is quick, you could achieve real-time responses from your device.
Cloud computing is beneficial when device use is intermittent. Smart homes devices are a good example of this again, where running computations in the cloud lets you share the same computing resources between multiple customers. This reduces costs by avoiding the need to provision your device with upgraded hardware to run the data processing.
What part of your data is important to you?
Computing on the edge is useful if you only care about the result of your data after it has been processed. You can send only what is important to store in the long-term in the cloud, and doing so will allow you to reduce the cost of storing and processing data in the cloud. For example, if you are creating a traffic surveillance device that needs to report levels of congestion on a road, you could preprocess the videos on the edge–Instead of running hours of raw video in the cloud–and only send images or clips of the traffic when traffic is present.
It’s possible you need to keep the data to build out your machine learning dataset, or you plan on analyzing the raw data in other ways in the future. If you are already sending your raw data to the cloud, it may be ideal to perform calculations in the cloud as well.
What are your device’s power and size limitations?
If you expect your device will be restricted in power and size, given that it has a good network connection, sending the computing work to be done on the cloud will allow your device to remain small and low-power. Google Home and Amazon Alexa, for example, will capture the audio and send it to the cloud for processing, allowing complex computations to be run on the audio that would not be possible to run on the small computers inside the devices themselves.
Is your data processing model your Intellectual Property?
If you are making a consumer device and the method you are using to process data is part of your Intellectual Property (IP), you may need to consider how you plan to protect it. Putting your IP on your device without a robust security plan can leave it vulnerable to hacks. If you don’t have the knowledge or resources to secure your IP on the edge, it may be best to leave it on the cloud, which already has security measures in place.
Some final considerations for choosing between edge and cloud computing
There are quite a few things to consider when choosing between computing on the edge or in the cloud. In complex problems, you may benefit from using a combination of both, by leaving some parts of your processing on the edge and the rest on the cloud.
We created the above flow chart to help guide you through which path you should take, but there may always be more to consider for your device, depending on how complex your use case is. If you need help figuring out which solution is best for you or what should be the next steps in developing your IoT Device, send an email to firstname.lastname@example.org. We would be happy to help.