Open-source software frameworks for edge devices

edge

Today’s prevailing IoT architecture is unsustainable in the long run because of the number of device connections, latency across different locations and networks, volume of data, and the asynchronous nature of many connections between data flow and analytical cloud services. In addition, today’s heterogeneous networks can not manage the massive growth anticipated in the number of endpoints and the data volume.

These problems have necessitated a move of information and analytical models closer to the source of data and the provision of computing capability within an environment with controlled connectivity and response times.

This pressing need to process data close to data generation sources in IoT devices has prompted the rise of edge computing. Edge computing delivers computing capabilities to the logical extremes to improve application and service performance, operating costs, and reliability.

Edge computing mitigates today’s Internet’s latency and bandwidth constraints by shortening the distance between devices and the cloud resources that serve them and reducing network hops, ushering in new classes of applications.

The two main aspects of edge devices are supported by edge frameworks. For starters, they offer a platform for provisioning and running workloads close to the data source, complete with lifecycle support. Second, they enable the orchestration of such workloads. According to estimates, by 2023, more than half of all new enterprise IT infrastructure will be deployed at the Edge rather than in corporate data centers, up from less than 10% today; by 2024, the number of apps deployed at the Edge will have increased 800%.

This post will explore some existing open-source initiatives around developing edge computing management solutions. This list is not intended to be exhaustive but instead presents some existing work that we consider of greatest interest.

1. EdgeX Foundry

EdgeX Foundry is a microservices software platform that lets users create IoT gateway functionality from edge devices. EdgeX Foundry software components allow you to use cloud services to get data from IoT objects in the physical world. Data can be saved, aggregated, analyzed, and transformed into useful information.

EdgeX Foundry’s core services include a persistent data repository for data, enablement of actuation requests from cloud to IoT objects, metadata storage of the IoT objects connected to EdgeX Foundry instance, and configurability of the instance.

2. Eclipse Kura

Eclipse Kura has taken a similar approach to EdgeX Foundry to provide a platform for developing IoT gateways. Eclipse Kura is a Java-based platform that provides a variety of device abstractions and builds basic gateway services by encapsulating communication protocols and configurations using several drivers. It uses a policy-driven data publishing system for data services, and it has an API mechanism for communicating with cloud services.

3. KubeEdge

KubeEdge is an open-source system that allows hosts at the Edge to extend native containerized application orchestration capabilities. It provides cloud and edge infrastructure services, including networking, application deployment, and metadata synchronization. It’s worth noting that the KubeEdge architecture as a whole considers centralized edge management, which is handled at the cloud level. Integration of KubeEdge and standard Kubernetes is required when considering a cluster of devices at the Edge. Its architecture is divided into two parts: Edge and cloud, called EdgeCore and CloudCore, respectively.

EdgeCore provides functionality at the Edge to manage the lifecycle of applications (pods) at a single node level. It also enables the device to be configured with monitoring probes, secrets, container runtimes, and volumes and managing interactions between the various edge components and the cloud.

CloudCore consists of components for managing various edge environments and allows for both lifecycle management and operation from/to the edge environment to be handled. It also includes device management features that use Kubernetes Custom Resource Definitions for device description. Users can get static device data (specifications) and dynamic device data from device instances that belong to a model (status).

4. Open Stack Starlingx

Starlingx bills itself as a complete cloud infrastructure software stack for the Edge, used by the most demanding applications in industrial IoT, telecommunications, video delivery, and other ultra-low latency use cases. Starlingx considers a network of geographically dispersed edge sites of various sizes orchestrated and synchronized by a central data center. Its edge virtualization platform supports bare metal, virtual machine, and container workloads. Version 3.0 also includes OpenStack and Kubernetes integration on dedicated physical services.

Starlingx Infrastructure Management includes configuration management, which allows users to define node discovery and configuration capabilities; host management, which defines host interfaces and monitoring; service management, which considers high availability, messaging, and service monitoring; and fault management, which allows users to define alarms and events. In addition, the upcoming software management tool will aid in the management of node software updates and patches. Starlingx also offers a container platform based on Kubernetes Cluster, including Helm-based application management and OpenStack integration with private cloud management tools.