Skip to main content

EDGE COMPUTING

Cloud-Native Development for the IoT Edge

Networking, Cloud, Internet of Things, IoT

IoT software is going cloud-native. What does that mean for legacy code?

Let’s start by defining terms. “Cloud native” methods break an application into a series of microservices (Figure 1). Because cloud infrastructure is homogeneous, these microservices can be ultra-portable. As a result, they can be deployed almost anywhere and updated on the fly.

Cloud-native applications breaks monolithic applications into microservices
Figure 1. Cloud-native applications breaks monolithic applications into microservices. (Source: Medium)

Cloud-native engineering offers greater scalability, agility, and opportunities for software reuse. It also makes life easier for the engineer. Small services are simpler to develop, manage, and maintain than a single large application.

At the Intersection of Enterprise and Embedded

But cloud-native methods are at odds with legacy embedded code. Embedded code is typically static, and tailored to a specific platform. It is tested meticulously to ensure safe, secure, reliable, and deterministic operation.

Combining legacy and cloud-native code is no easy task. Consider the problems with certification.

“A safety-critical application needs to be hosted on top of a safety-critical environment,” said Paul Parkinson, Field Engineering Director at Wind River. “All underlying software needs to be developed to at least the same safety integrity level as the most critical application.”

Cloud-native applications run on non-deterministic Linux, and have many hidden dependencies. They often can’t be certified to standards such as IEC 61508, ISO 26262, or DO-178C.

Even if they could, the cost of certification “is proportional to the number of effective source lines of code (eLOC) used in the system.” For reference, the Linux kernel alone consists of more than 25 million lines of code.

Cloud-Native or Safety-Certified?

The differences between cloud-native and embedded engineering may be irreconcilable, but that’s okay. They can still be combined through virtualization and containerization.

As shown in Figure 2, virtualization runs multiple OSs on a hypervisor layer. Containerization relies on a single OS instead. This allows a container to be lighter, as it contains only an application and its dependencies.

Virtualization provides an environment for launching additional operating systems, while containers package all of an application’s dependencies into bundles on top of an OS
Figure 2. Virtualization provides an environment for launching additional operating systems, while containers package all of an application’s dependencies into bundles on top of an OS. (Source: Wind River)

Containers are foundational to cloud-native design, while virtualization has been favored for embedded design. But the two approaches can be combined with the right hypervisor.

Specifically, a Type 1 “bare metal” hypervisor can provide the determinism that embedded systems require. Because Type 1 hypervisors run directly on the hardware, they have full access to system resources, which allows them to be efficient and reliable.

Just as important, they can be used to partition safety-critical and non-safety-critical functions.

“The ability to host safety-critical functions and general-purpose functions with no safety requirement on a real-time operating system platform using partitioning is well-proven,” says Parkinson. “Using hardware virtualization takes this to another level.”

With safety-certified hypervisors, for example, it’s possible to deploy cloud-native analytics on a real-time controller. With this approach, cloud-native features can be readily added to existing embedded designs. Because the original code is unchanged, certification costs can be minimized, and determinism maintained.

But there is a bigger picture to consider. Going cloud-native can be the foundation of digital transformation (Video 1).

 

Video 1. Virtualization helps manufacturers achieve digital transformation. (Source: Wind River)

 

This transformation can already be seen in the merging of IT with operational technology. In fact, 50 percent of OT providers will partner with IT companies on IoT offerings by 2020.

Of course, all of this depends on having a virtualization platform that also supports cloud-native applications. The good news is that the latest hypervisors are designed to do just that. “A lot of experience has been gained through the development, certification, and deployment of safety-critical systems in recent years,” Parkinson said.

Learn more about this topic in: IoT Software Goes Cloud-Native | Download

 

About the Author

Brandon is a long-time contributor to insight.tech going back to its days as Embedded Innovator, with more than a decade of high-tech journalism and media experience in previous roles as Editor-in-Chief of electronics engineering publication Embedded Computing Design, co-host of the Embedded Insiders podcast, and co-chair of live and virtual events such as Industrial IoT University at Sensors Expo and the IoT Device Security Conference. Brandon currently serves as marketing officer for electronic hardware standards organization, PICMG, where he helps evangelize the use of open standards-based technology. Brandon’s coverage focuses on artificial intelligence and machine learning, the Internet of Things, cybersecurity, embedded processors, edge computing, prototyping kits, and safety-critical systems, but extends to any topic of interest to the electronic design community. Drop him a line at techielew@gmail.com, DM him on Twitter @techielew, or connect with him on LinkedIn.

Profile Photo of Brandon Lewis