Along with the rise of cloud computing, Agile, and DevOps, the increasing use of microservices has profoundly affected how enterprises develop software. Now, at least one Silicon Valley startup hopes the combination of microservices and edge computing is going to drive a similar re-think of the Internet of Things (IoT) and create a whole new software ecosystem.
Frankly, that seems like a stretch to me, but you can’t argue with the importance of microservices to modern software development. To learn more, I traded emails with Said Ouissal, founder and CEO of ZEDEDA, which is all about “deploying and running real-time edge apps at hyperscale” using IoT devices.
For context, according to the company, there’s an “exodus of data, compute power and software applications from the cloud to a diverse network of smart edge devices, many of which are too small to run large applications. Thus the need for microservices on these edge devices to accomplish tasks ranging from optimizing artificial intelligence in a self-driving car to enhancing data gathering on a smart pump on an oil rig. ZEDEDA is trying to build a platform for integrating these services across diverse devices and projects.”
Microservices in the IoT
The concept of microservices in the IoT is not so different from microservice software architectures, Ouissal wrote me. It’s still about the “disaggregation of a general application across the required services that are operating together to perform the application function,” so developers can “apply appropriate compute, storage, and network capability to particular services without impacting every other microservice.”
Similarly, an IoT or edge microservices application, he continued, “would be able to be orchestrated to use the appropriate edge hardware to run the appropriate function.”
That’s the concept, but the reality is still being built. Some companies are developing IoT and edge applications that use microservices architecture as an ingredient to a total solution, Ouissal noted. But while microservice architectures are being used in production IoT and edge computing environments, he added, “it’s not commonly discussed because IoT solutions are focused on business outcomes,” not the technical details, so exact market size remains unknown.
Geography is destiny
Unlike on-premise data centers or the cloud, IoT devices on the edge are limited by geography, so microservices architectures bring specific advantages, including a smaller code footprint and faster boot-up speeds. Microservices can also make it easier to share and reuse scarce edge resources in a virtualized, cloud-native fashion, Ouissal wrote.
Individual edge IoT devices typically need to be extremely power efficient and resource efficient, with the smallest possible memory footprint and consuming minimal CPU cycles. Microservices promise to help make that possible.
“Microservices in an edge IoT environment can also be reused by multiple applications that are running in a virtualized edge,” Ouissal explained. “Video surveillance systems and a facial recognition system running at the edge could both use the microservices on a video camera, for example.”
Microservices also bring distinct security advantages to IoT and edge computing, Ouissal claimed. Microservices can be designed to minimize their attack surface by running only specific functions and running them only when needed, so fewer unused functions remain “live” and therefore attackable. Microservices can also provide a higher level of isolation for edge and IoT applications: In the camera function described above, hacking the video streaming microservice on one app would not affect other streaming services, the app, or any other system.
A vision of an IoT microservices ecosystem
Ouissal sees the the emerging IoT microservices ecosystem looking remarkably similar to today’s DevOps and cloud-native environments. He predicts an agile, “edge DevOps” approach, with continual development, deployment, integration, testing, and monitoring being done on single function. In fact, he envisions that a proper edge services platform could open up edge resources to other companies and “rent” compute power to microservices as needed. His goal is an “edge economy” where apps (and their essential microservices) can run anywhere, including on edge assets owned by other entities.
That’s a bold vision, with a lot of moving parts having to come together to make it a reality. But when you look at the success of microservices in advancing the world of modern software, a microservices of IoT doesn’t sound like a bad idea at all.