IoT Edge Computing
Chapter 9 of IoT Infrastructure
IoT Edge Computing
IoT refers to physical, networked devices that are not traditionally associated with computing, like smart cars, industrial air quality sensors, and cameras. In traditional computing, centralized servers do the core work with clients merely requesting or uploading information. Edge computing is a distributed approach to IoT infrastructure that brings computation and data storage closer to the sources of data.
Pushing computing closer to the devices comes with several benefits in performance, security, and reliability. For example, local processing allows devices to continue working without a consistently reliable internet connection.
And that’s just the tip of the iceberg when it comes to IoT edge computing benefits. In this article, we’ll explain what IoT edge computing is, its benefits, and best practices to help you implement it effectively
Let's begin with a brief overview of what edge computing’s IoT infrastructure benefits.
|Edge computing feature||IoT infrastructure benefit|
|Scalability||Empowering devices to handle computation lessens the complexity of a centralized API.|
|Reliability||Critical infrastructure needs to keep working even if the internet doesn’t. By performing computation locally, your network depends less on perfect connectivity.|
|Speed||Edge computing implies less latency because the devices are physically closer to where the computation occurs.|
|Price||Moving computation to physical devices can lessen the expense of cloud-based services eating up your IT budget.|
IoT edge computing architecture
With the traditional client-server architecture that powers most of the “normal” internet, most computation occurs on a single, centralized server. For example, if we upload fingerprints to a server and it detects whether the prints belong to an employee of an organization, the server does the computation. Clients submit requests for the server to run processes and provide data, but do very little computation themselves.
Diagram of the classic client-server network architecture. (Source)
Instead of centralizing computing on a single server, edge computing distributes processing to devices near the outside fringes, hence the term edge.
This diagram models an IoT edge computing infrastructure. (Source)
With edge computing, a central server node still exists and performs functions like logging and monitoring. Devices may even rely on it for some critical functionality. But most computing is pushed onto the edge of the network, reducing dependence on the server. That way, edge devices can continue to function autonomously without relying on the server.
What is fog computing?
Sometimes edge devices send data to intermediate local devices that decide what data needs to be sent to the cloud, and what it can process locally. This is an extension of edge computing known as fog computing.
Fog computing is a form of edge computing leveraging an intermediate layer. (Source)
There’s a lot of overlap and ambiguity between what counts as edge vs fog. For the purpose of this article, we will refer to both with the umbrella term edge computing.
|Platform||Real-Time Event Processing||Internet Scale Throughput||Stateful Edge Device Processing||Cross-Region Replication||Geo-Fencing and Data-Pinning|
|Azure IoT Edge||✔️||✔️|
|AWS IoT Greengrass||✔️||✔️||✔️|
Edge computing use cases
We know how edge computing offers a different network structure compared to the traditional client-server model. Now, let’s review some practical use cases where edge computing can benefit IoT infrastructure.
Industrial IoT (IIoT)
Industrial IoT (IIoT) is one of the most promising use cases for edge computing. In large industrial operations, downtime of hours or even minutes can have disastrous financial consequences. Millions of dollars might be at stake. Not just from the loss of potential sales of units produced, but also in paying workers who now have nothing to do, breach of contract suits (if downtime means you can no longer meet an obligation), regulatory consequences, and much more.
The cost of outages continues to increase every year. (Source)
Edge computing reduces the risk of lost connectivity by bringing it inside of your facility. If your local network is severed from the global internet, core functionality continues as much as possible, mitigating the impact of outages.
In regions with spotty internet, outages might even be the norm, making edge computing all the more vital for industries in remote locations with unstable network access.
CCTV is one of the oldest and most prominent examples of IoT. Long gone are the old days when cameras had to be connected by a cable to a nearby viewing room where a security guard ate snacks in front of 30 screens. Today’s security professionals operate CCTV systems via mobile apps with sophisticated control panels and extensive storage (but fewer snacks, unfortunately)
CCTV should be able to run (at least for a time) without server connectivity. Otherwise, an attacker can take down your cameras by launching a Denial of Service (DoS) attack against the CCTV server.
CCTV is just one example of IoT in physical security. Edge computing means alarm systems react quicker to anomalies, smoke detectors coordinate more quickly by connecting to a local device instead of a faraway cloud service, and fingerprint authentication systems let employees into the building quicker. Seconds add up to minutes, then hours, and so on, increasing worker efficiency and safety.
IoT edge computing best practices
Edge computing can make your infrastructure faster, safer, and more reliable. But it can also have the opposite effect if done wrong. Let’s look at some best practices that can help you get the most from edge computing.
Securing edge devices
Edge devices offer many security benefits. For example, if an attacker breaches a central API, they’ve completely compromised a network. But if computing is distributed across edge endpoints, then a single device breach isn’t as devastating. Other edge computing nodes may remain unaffected.
Nevertheless, edge devices often process sensitive data, so developers must take edge security just as seriously.
Here's a quick list of tips for IoT edge device security.
Always encrypt network traffic
Even within a LAN, unencrypted traffic is never acceptable in a modern network. Whether it’s certificate pinning for devices that call foreign APIs, or AES128 for local encryption, no traffic should pass through the network in plaintext.
Man-in-the-middle attacks are one of the most common attacks on IoT networks. Fortunately, encryption protocols like TLS are easy to implement and even simple devices are powerful enough to run them.
All API endpoints should authenticate devices
Edge computing often involves critical systems and sensitive data in industries like healthcare, finance, manufacturing, and defense. Authentication helps prevent unauthorized access to API endpoints, eavesdropping, and device compromise. Therefore, all edge endpoints should properly authenticate API requests.
Check out the Macrometa Authentication docs for specific instructions on implementing authentication in an edge infrastructure.
Leverage security monitoring
IoT devices are a great source of threat intelligence data that can enable incident detection and response. But you need the right tools for effective security monitoring.
For example, sending real-time logging data to a Security Orchestration, Automation and Response (SOAR) solution can enable you to quickly respond to threats.
A good security monitoring solution will automatically respond to potential threats and provide real-time alerts to security professionals of suspicious activity in the network.
This doesn’t just apply to edge computing, or even IoT - all systems should link up with your monitoring solution.
Know when not to use IoT edge computing
New technology is exciting, but it’s important to avoid jumping on a bandwagon without reason. Edge computing isn’t always the answer, and there are times when it simply isn’t the best solution.
Even for IoT, where edge computing is most beneficial, there are situations where a client-server model is preferable.
Specifically, these use cases are often better suited for a client-server network architecture.
- Apps whose functionality must occur entirely on the cloud. For example, a user panel that just accesses a web interface from a central cloud server.
- Simple, low-budget apps, with no critical functionality. The client-server model is simpler. There’s no need to fix what isn’t broken or add complexity with edge computing.
- Low-powered IoT devices. For edge computing to work, the devices must have sufficient resources or connect to an intermediate fog that’s powerful enough. If you want a network of only cheap, low-power devices, edge computing might not be feasible.
Edge computing is a powerful tool, but it’s just that. One tool among many, with its own pros and cons.
Use prebuilt solutions
Leveraging a prebuilt solution should be the default approach for creating an IoT edge application. Developer time is expensive, and the quality of current offerings is hard to recreate without a large, experienced team of IoT developers.
Therefore, unless you absolutely need functionality that simply cannot be accomplished using current off-the-shelf offerings, avoid reinventing the wheel.
AWS Greengrass is a popular choice for creating distributed IoT apps by gluing together pre-made components. And Macrometa's serverless options go a step further by offering a full-stack IoT platform with functionality for managing geographically dispersed edge devices.
Edge computing needs a next generation database technology
- Ultra fast distributed writes with Conflict-free Replicated Data Types (CRDTs)
- Solve scaling constraints due to geo-distributed time-stamping with Version Vectors
- A unified query language for KV, Docs, Graphs and Search with C8QL