Developers and engineers have improved the technology behind IoT edge computing architecture, but architects still must overcome challenges that have plagued organizations since IoT technology first emerged.
Long before "internet of things" became part of IT vernacular, organizations connected embedded systems, hardware and software, such as office printers or scanners, to move data. Technology has progressed to bring high-performance computing into small, inexpensive embedded devices in accordance with Moore's law. Advancements over the years have led to very small IoT devices that compute at the edge of networks, and edge computing that extends the cloud closer to data sources.
Despite the progress, IoT and edge computing deployments create many obstacles that have challenged development teams since they first connected embedded systems to the network, including connectivity, security and power supply. In the book IoT and Edge Computing for Architects, Microsoft Director of Architecture Perry Lea explored what architects must know to design IoT edge computing architecture and how industry experts continue to develop the surrounding technologies.
In an interview shown below, Lea discussed common IoT edge computing hang-ups, as well as advice on designing IoT and edge architecture.
Editor's note: The following interview was edited for length and clarity
What is the most challenging part of designing architecture for IoT?
Perry Lea: There's a technical point of view and a business point of view with two separate problems. From a technical point of view, no two IoT systems are alike. They have computing elements. They have software. They have connectivity. In a lot of cases, connectivity is a hard problem because an IoT system doesn't have good basic connectivity. A lot of technologies rely on LTE or cellular connectivity, but that doesn't touch every square meter on the face of the earth. You lose connectivity. What do you do in those cases?
The other issue is security. IoT devices are ripe honey pots for certain security problems. If you look at the Mirai virus -- the nation-state Stuxnet attack on Iran's centrifuges -- those are issues because IoT devices have not matured or haven't gone through the growing pains of security issues. If you look at all the security issues with consumer and enterprise IT in the early 2000s with different viruses and worms, they went through the paces of hardware and software design to try to work through these types of attacks. IoT devices have been pretty lax. What you see today is a lot of malicious software exploiting 20-year-old techniques on IoT and embedded systems. It's the weak link in the chain.
Another technical hurdle, besides communication, is power. A lot of these devices you simply can't plug in. And that's related to your communications, related to a good architecture, because if you're based on a battery, you only get so many packets through your communication channel before you drain your battery. That's an ongoing issue.
On the business side, the big challenge for IoT or edge computing is a lot of industries haven't crossed the chasm going from a proof of concept to deployment or commercialization of IoT. There's a level of maturity to see how they can capitalize on this from bringing in a better margin or customer value. That's just the growing pains of the business.
What challenge of designing IoT and edge computing architecture interests you most?
Lea: What's interesting about IoT is it touches hardware; you can even have inference engines running in silicon on the edge -- you deal with near-range communication, long-range communication, embedded systems -- and they all have to play together. What I like about challenges is constraints. If I have an unconstrained system -- like, if I have the most beefy server in the cloud -- and I wanted to write some software, I have complete freedom and autonomy to do that. You don't get that with IoT. You don't get that with a lot of edge systems. You're dealing with a series of technical constraints.
What common issues do you see trip up organizations when they're designing an IoT edge computing architecture?
Lea: One thing that I've seen pervasive is trivializing the complexity of IoT to build a really successful commercial or enterprise product. There's a lot of thought around, 'How hard can this be?' An organization that's less mature in this phase will say, 'Well, on weekends, I played with a Raspberry Pi, and I got some sensor data running.' If you build a system around that, or around that philosophy, it just is not commercially scalable. There's a lot of issues when you treat the system trivially.
You have to extend yourself from the hobbyist mentality to the true engineering discipline. That's when you have a very successful product. In the consumer and enterprise space, those are well designed from the hardware to the software, to the communications and to the system.
What advice would you give an IoT architect or development team about designing IoT and edge architecture?
Lea: You have to start with what problem you're trying to solve from a business, technical or customer point of view.
If you have a problem at hand, the next thing is to look at the problem holistically. Look at it from a hardware, software and communication point of view.
The third thing becomes how do you anticipate scaling? Let's say you have a proof of concept and you're a hobbyist and you get something to work with a Raspberry Pi. That's fine. How do you scale that? How do you scale that across regions? You have to start worrying about communication between cellular systems in Asia versus cellular systems in North America versus cellular certification in Europe. They don't all play nice, and they're different designs.
The fourth thing is, how are you going to monetize this? If you're extracting value out of this device, you have to look at the whole value chain, because when you go to scale, you have to worry about paying for communication service-level agreements per node. Am I amortizing the capital expense for the IoT device itself? Is there middleware that I have to license that runs on the device? How am I paying for that? And then how am I paying for cloud and cloud provisioning? Is that per node, per the amount of data that's adjusted in aggregate or even data retention? Am I paying for different services in the cloud? And so that all comes back to scalability. There's some dynamics there that you have to have to work through as a business when you when you start building this. In an IoT system, your value is not just one sensor, one node. It's working at scale to thousands, hundreds of thousands of different nodes.
What else should teams know about designing IoT and edge computing?
Lea: There's room to grow on the edge of IoT. Scaling from a hardware level, you can rely on Moore's law to start allowing more features and more technologies to be pushed to the edge. Putting more intelligence on the edge matters, especially when you're dealing with latency-sensitive systems or systems that deal with huge amounts of unstructured data. That's where the industry is growing.
The third thing that I anticipate is that there's probably going to be room for growth in different types of sensors: flexible sensors, portable electronics, different types of elements that give a machine inherent knowledge of the environment. The fourth thing is covered by a lot of other people and that's the buzzwords around 5G. That has to be taken with some reservation. There's a lot of hype there. It is a communication system, but it allows for some new technologies like multi-access edge computing to become relevant. But it really is a communication system at the end of the day, and there's all kinds of challenges with any communication system. That has to be taken with a grain of salt.