Microservices Fix IoT Software Problems

December 6, 2018 Brandon Lewis

As IoT systems grow ever more complex, developers are turning to microservices to architectures that make rolling out and updating IoT software faster, easier, and more secure.

A microservice architecture is a loosely coupled framework that uses virtualization to separate system software components into “containers.”

Figure 1 illustrates how Docker, one of the most popular containerization technologies, isolates the host OS from other applications, utilities, and third-party services, which are separated into individual containers.

Figure 1. A microservice architecture uses containers to separate software components within a system. (Source: 56K.Cloud GmbH)

Depending on footprint, the various services within a given architecture can reside in the cloud, fog gateways or servers, or on IoT edge devices themselves. This ensures that a particular piece of software functionality resides where it is most effective for the use case (Figure 2). Containerized software components typically communicate with one another through a standardized API.

Figure 2. Microservices can reside where they are most effective at any point across an IoT architecture. (Source: EdgeX Foundry)

The structure of container-based microservice architectures allows IoT developers to deploy software quickly, at scale, and without fear of disrupting software dependencies elsewhere in the system. It also ensures scalable, interoperable connectivity for new and legacy devices, as containerized protocol and networking support can be added based on the target hardware platform.

These features translate to faster, more iterative IoT software upgrades, more granular codebase management, and better utilization of software engineering resources.

Microservice Containers at the IoT Edge

Containerized software architectures originated in the enterprise, and enabled IT developers to securely separate applications and services running on the same hardware. As more computational power shifts to IoT devices to support increased functionality, containers are becoming an attractive option for edge deployments that require:

  • Diverse protocols and data formats
  • Varying levels of analytics capability
  • Fast, iterative system upgrades
  • Product differentiation and quick time to market
  • Efficient use of resources

But microservice architectures operating at the edge must overcome challenges that don’t exist in the data center. For instance, as an architecture incorporates more microservices, more networking and communications are required, which adds latency.

More devices and services included in the architecture also introduce more potential points of failure and interfaces that need to be secured. Finally, orchestrating services across a growing number of distributed, heterogeneous devices and environments becomes increasingly complex.

To overcome these issues of containers at the IoT edge, Dell OEM and others launched the EdgeX Foundry microservice architecture.

Open, Agnostic, and Extensible Microservices for the Edge

The EdgeX Foundry is an open-source, vendor-neutral project hosted by The Linux Foundation that consists of more than a dozen hardware- and OS-agnostic microservices (Figure 3). The platform is designed to promote interoperability and fast time to market for vendors building differentiated IoT solutions. The microservices are deployed via Docker and Docker Compose.

Figure 3. The EdgeX Foundry microservice architecture provides open-source building blocks to improve interoperability and accelerate time to market of IoT systems. (Source: EdgeX Foundry)

The primary EdgeX Foundry microservices are divided into three categories:

  • Device Services run on IoT edge devices or gateways, handling collection and communication of data from OT sensors. These services support a wide range of industry-standard protocols for quick integration of new and legacy systems.
  • Core Services reside on gateway platforms or on-premises fog servers, and provide local data persistence, command functionality, and configuration information. Core Services also provide infrastructure required for more complex features like device monitoring and management.
  • Export Services live on gateways, on-premises fog servers, or in the cloud, and transform, format, and filter data being sent to the enterprise. This is crucial for ensuring that OT sensor data is exported in formats like JSON that are compatible with enterprise data models.

In addition to these basic services, the loosely coupled EdgeX Foundry microservices architecture also supports optional services such as local analytics, security, scheduling, device management, alerts, and data logging, which can be added, removed, or tailored for the application at hand (Figure 4).

Figure 4. Combining EdgeX Foundry’s Core Services with optional microservices like local analytics can help IoT developers quickly tailor software stacks to application requirements. (Source: EdgeX Foundry)

These microservices communicate with one another using REST APIs, which minimizes communications latency for real-time applications. And because EdgeX Foundry can support so many applications and services on a single hardware platform, fewer discrete systems are needed for comprehensive IoT deployments. As functionality is consolidated into fewer and fewer systems, security vulnerabilities and points of failure are also minimized.

Microcomputers for Microservices

EdgeX Foundry contributors continue to optimize performance of the architecture, with the goal of running Device, Core, and Export Service all on a single Raspberry Pi 3 device. The target startup time for this implementation is set at less than one minute, with sub-one-second latencies for data ingestion, processing, and actuation across the various service tiers.

The current containerized Core Services software footprint stands at 113 MB, with startup times below 10 seconds. This makes the EdgeX Foundry software stack more than compatible with systems like the Dell Edge Gateway 5100, which is based on the Intel Atom® E3825 processor with 2 GB of DDR3L-1067 MHz RAM, and supports a 32 GB solid-state hard drive.

Microservices Flexibility Anywhere at the Edge

For IoT developers, EdgeX Foundry’s loosely coupled, containerized framework means that required capabilities can be deployed quickly, at scale, wherever they make the most sense in an architecture. And perhaps more important, additional applications and services can be deployed without fear of disrupting software dependencies elsewhere in the system. This translates to faster, more iterative IoT software upgrades and more efficient, granular codebase management.

The other utilities of the EdgeX Foundry microservices architecture ensure scalable, interoperable connectivity between legacy and new devices, from the factory floor to the cloud. As a result, IoT organizations can get to market quickly with baseline functionality while reserving precious software engineering resources for value-added features, services, and innovation.

To learn more about microservice architectures and EdgeX Foundry, watch the on-demand webinar “A Microservice Approach to IoT Edge Computing.”

About the Author

Brandon Lewis

Brandon is responsible for Embedded Computing Design’s IoT Design, Automotive Embedded Systems, Security by Design, and Industrial Embedded Systems brands, where he drives content strategy, positioning, and community engagement. He is also Embedded Computing Design’s IoT Insider columnist, and enjoys covering topics that range from development kits and tools to cyber security and technology business models. Brandon received a BA in English Literature from Arizona State University, where he graduated cum laude.

Follow on Twitter Follow on Linkedin More Content by Brandon Lewis
Previous Article
Predictive AI Keeps Factories Up When Power Goes Down
Predictive AI Keeps Factories Up When Power Goes Down

NEXCOM's DUPS predictive maintenance system use sensors and analytics to diagnose early-stage problems in d...

Next Article
Bring Deterministic Data Centers to Edge Computing
Bring Deterministic Data Centers to Edge Computing

Industrial systems require significant intelligence close to sensors to meet real-time requirements. OPC UA...

×

First Name
Last Name
Your Company
Phone Number
Country/Region
By submitting a form on this site, you are confirming you are an adult 18 years or older and you agree to Intel and Intel® IoT Solutions Alliance members contacting you with marketing-related emails or by telephone. You may unsubscribe at any time. Intel's web sites and communications are subject to our Privacy Notice and Terms of Use.
I would like to be contacted by: - optional
Your contact request is submitted.
Error - something went wrong!
×

Get the latest updates on IoT for industrial.

Country/Region
Subscribe To Intel Updates
Subscribe To Alliance Partner Updates
By submitting a form on this site, you are confirming you are an adult 18 years or older and you agree to Intel and Intel® IoT Solutions Alliance members contacting you with marketing-related emails or by telephone. You may unsubscribe at any time. Intel's web sites and communications are subject to our Privacy Notice and Terms of Use.
You are following this topic.
Error - something went wrong!