Sorry, you need to enable JavaScript to visit this website.

How to find the open source projects that best fit your edge?

BY Ruoyu Ying, Shane Wang ON Sep 17, 2019

Edge computing is currently one of the most prevailing topics in the computing industry. It is a widespread technology that can benefit almost every industry, which is why so many use cases and projects have emerged. This article introduces edge categorization, describes characteristics of edge use cases, provides an overview of the available open source projects in the market and explains their capabilities. Finally it presents a methodology for selecting which project to adopt for building an edge.

BRIEF INTRODUCTION OF EDGE COMPUTING

Edge computing is a distributed computing paradigm that is frequently used to decentralize or offload workloads to nearer devices, fulfilling the needs of many new scenarios that have developed in the recent decade. In contrast to cloud computing, edge computing places data-centric-grade networking, compute, and storage capabilities closer to endpoint devices, in order to improve service capabilities, optimize total cost of ownership, comply with data locality, and reduce application latency.

Due to these factors, edge computing has characteristics including near-real-time interaction, massive data storage and movement, enhanced security and data privacy, context or location awareness, zero touch provisioning and low touch maintenance, multi-access networking across large-scale and small-size sites.

TYPICAL IMPLEMENTATION OF EDGE COMPUTING

It’s clear that the introduction given in the previous paragraph is just a broad definition, providing some basic ideas of this distributed computing paradigm. However, in order to fulfill these goals, edge computing can be implemented through independent methods for different scenarios. This section introduces several typical implementations.

Three typical implementations frequently quoted in large number of edge research studies are described here, including Fog Computing, Mobile/Multi-access Edge computing, and Cloudlet Computing. Here are some useful definitions from one of the research documents.

  • “Fog Computing (FC): A decentralized computing infrastructure based on Fog Computing nodes placed at any point of the architecture between the end devices and the cloud. Those nodes are heterogeneous in nature and thus can be based on different kinds of elements, including but not limited to, routers, switches, access points, Internet of Things (IoT) gateways and set-top boxes.”
  • “Mobile/Multi-access Edge Computing (MEC): Brings computational and storage capacities to the edge of the network within the Radio Access Network to reduce latency and improve context awareness. The MEC nodes or servers are usually co-located with the Radio Network Controller or a macro base-station. The servers run multiple instances of MEC host, which has the capability to perform computation and storage on a virtualized interface.”
  • “Cloudlet Computing (CC): Treated as ”data center in a box” running a virtual machine capable of provisioning resources to end devices and users in real time over a WLAN network. The services are Cloudlets and are provided over a one-hop access with high bandwidth, thus offering low latency for applications.”

Obviously, each implementation has its own characteristics which may be suitable for specific use cases. The following table shows characteristics of each implementation and enables comparisons between them. We could infer from the table that, due to the different devices it resides on, FC may be better for use cases that requires less resources, lower latency, and connects to a variety of device types. However, MEC and CC could be more suitable for cases that need more resources for computation, as well as who has resource provisioning requirements.

Type of Implementation

FC

MEC

CC

Location

Near end device, dense and distributed

Radio Access Network Controller/Base station

Local/Outdoor Installation in one place

Device

Routers, Switches, Access points, gateways…

Servers running in base station or CO

Compact-size data centers

Access Mediums (mostly)

WiFi, LTE*, ZigBee*, MQTT, Bluetooth* technology…

WiFi, LTE…

WiFi…

Logical Proximity

One/multiple hops

One hop

One hop

Ability for near-real-time Interaction

High

Medium

Medium

Multi-tenancy

Supported

Supported

Supported

Computation power

Medium

High

High

Power Consumption

Low

High

Medium

Context Awareness

Medium

High

Low

Coverage

Low

High

Low

Server Density

Medium

Low

High

Cost/CAPEX

Low

High

Medium

Traffic Continuity

High

Medium

High

Active users

High

Medium

Medium

Table 1. Comparison between edge implementations

EDGE USE CASES

As mentioned before, edge computing can be used in almost every industry and many use cases have emerged. A survey from Mc Kinsey showed that edge computing represents a potential value of $175 billion to $215 billion in hardware by 2025 which covers every aspect of our lives. Potential use cases include smart cities in the transportation category, E-health use cases in the healthcare category, smart grid use cases in the global energy and materials category, and so on. Because there is a variety of requirements for each category, each use case will most likely have its own features, and will also be implemented through a different structure or means.

There are seven features referenced in research that are used to evaluate a use case and thus define the most suitable implementation. They are:

  • Bandwidth
  • Latency
  • Extensibility
  • Context/Location Awareness
  • Power Consumption
  • Scalability
  • Privacy and Security

Figure 2 shows a clear picture of the similarities and differences of some typical use cases, based on these features.

Figure 1. Similarities and variance in use cases

According to the implementation characteristics that we discussed earlier, we determined a similar relationship between use case features and their implementations. We learned that this relationship can guide us on how to develop these use cases through more appropriate implementations. The following figure shows the detailed mappings between use case features and implementation characteristics.

Figure 2. Relationship between use case feature and edge implementation characteristics

Using the information above, we could conclude that to fulfill the needs of Smart Cities, which requires low latency and high extensibility, FC integrated with MEC would be the best choice for that. The following table lists recommendations for other use cases that were determined via this analysis.

Use Case

Recommendation

Smart Cities

FC + MEC

RAN-aware Context Optimization

MEC

Augmented Reality

MEC/CC + FC

E-Health

FC

Autonomous Vehicles

FC + MEC

Smart Grid

FC

Video Caching & Analysis

MEC/CC

Table 2. Recommendations for use cases

OPEN SOURCE PROJECTS

A plethora of projects has emerged based on edge computing technology, and many of them attempt to fulfill different scenarios used in all walks of life. When looking for the best project to support a particular use case, we have found it helpful to categorize the existing projects into different edge implementations, since there are variances in edge use cases and edge implementations. Figure 5 shows the workflow that we used to categorize the projects. The figure also demonstrates some projects that are relevant to edge computing, some can be used for building edge infrastructure, some can be used as edge platform, and others could be projects that are derived from edge computing. In this section, a few projects are addressed and categorized into edge implementations that are suitable for various use cases.

Figure 3. Workflow for categorization

The first project discussed here is Akraino*, which is a well-known open source edge project under the Linux* Foundation edge umbrella, founded by The Linux Foundation* and AT&T* in Feb 2018. The goal of Akraino is to leverage end-to-end edge software stacks built by Akraino community, optimized for various use cases. Akraino calls these end2end stacks ‘blueprints’ that cover every layer that an edge implementation would need, from the under cloud infrastructure layer to the upper edge orchestration layer. In June 2019, Akraino released its first premier release with deployable, self-certified blueprints for a diverse set of edge use cases, including radio edge cloud, integrated edge cloud, far edge distributed cloud, and others. In summary, Akraino is the umbrella of several blueprints. You can choose these deployable blueprints according to your requirements. Akraino should not be categorized like the edge implementations discussed previously, instead it can be used in use cases from every field.

Airship*, started by AT&T, Intel and SK Telecom*, is a pilot project under the OpenStack Foundation umbrella that was launched in 2018 with loosely coupled components. It was first known as a convenient deployment tool that could be used to bootstrap the entire cloud infrastructure from scratch (for example, OpenStack* on Kubernetes*). However, this was actually only a small portion of its functionality; more importantly, Airship can handle any platform that is wrapped with Helm* charts, as well as handling the ongoing updates for the infrastructure through simple changes within the configuration yaml files. Airship either targets one specific use case or aligns with the characteristics of any edge implementation, hence, no categorization can be made here.

In May 2018, a new pilot project was created under the OpenStack Foundation umbrella called StarlingX* to provide an integrated and optimized platform for edge and IoT use cases. It is a deployment-ready, highly reliable edge infrastructure software platform based on a lot more open source components such as OpenStack, Kubernetes, Ceph*, and so forth, which in addition provides enhanced features, such as host management, fault management, software management, among others. Several acceleration technologies are also implemented in the platform, including OVS-DPDK and SR-IOV. These features allow StarlingX to improve the low touch manageability as well as the reliability of the platform, and therefore providing ultra-low latency, small footprint and scalability for edge use cases. When exploring its architecture, StarlingX certainly fits the characteristics of both MEC and CC due to the following: it has resource provisioning capability, it primarily resides on devices such as servers, and its initial use case is in the scope of MEC.

Central Office re-architected as a Datacenter (CORD) and Virtual Central Office (vCO) are two additional projects that are worth mentioning when talking about edge computing. Both projects are trying to manage existing central offices as edge cloud for compute, networking, and storage, and each one has sub-projects on Enterprise, Residential, and Mobile to fulfill all needs within the market. CORD, which was proposed by AT&T, forms a framework for assembling and composing services using the Open Network Operating System (ONOS) as the Software-Defined Network (SDN) controller and XOS as the orchestrator. It is also an end-to-end service that can apply different policies and extend by design.

In contrast to CORD, vCO is a Proof of Concept (PoC) project led by a working group under the OPNFV project, using OpenDaylight* (ODL) as the SDN controller and Open Network Automation Platform (ONAP*) as the orchestrator. vCO has delivered three demos currently, covering Enterprise, Residential, and Mobile use cases. Both of these projects are based on the radio network to improve their functionality in edge computing. Hence, they are definitely MEC implementations for edge.

Project

Foundation

Key Participators

Layer

Segment/Focus

MANO

SDN

Latest version

Infra

Code Repo

Akraino

Linux Foundation

ARM, AT&T, Dell, Ericsson, Intel, Juniper, Nokia, Red Hat, WRS, etc.

Umbrella, Full Stack

All-in-one edge stack

N/A

N/A

1.0

Openstack, K8S

http://gerrit.akraino.org

StarlingX

OpenStack Foundation

China Unicom, Ericsson, Huawei, Intel, Wind River, etc.

IaaS

Industrial IoT and MEC

ONAP

ODL

1.0

OpenStack

https://git.starlingx.io/cgit

Airship

OpenStack Foundation

AT&T, Intel, Mirantis, SK Telecom, etc.

Deployment

Openstack on Kubernetes

ONAP/Tacker

Calico

0.1

OpenStack/K8S

https://git.airshipit.org/cgit

CORD

Linux Foundation

AT&T, China Unicom, NTT, SK Telecom, Verizon, etc.

IaaS

MEC for residential, enterprise & mobile

XOS

ONOS

6.0

OpenStack/K8S

https://github.com/opencord

vCO

Linux Foundation

China Mobile, Red Hat, etc.

IaaS

MEC for residential, enterprise & mobile

ONAP/Tacker

ODL

2.0/3.0

OpenStack

No code repo yet. Just POC

Table 3. Extra information on projects to date

EdgeX Foundry* is another powerful project under the Linux Foundation edge umbrella, and it is definitely a pioneer project for the Industrial IoT (IIoT) field. It was also founded in 2017 inside the Linux Foundation, with a loosely-coupled architecture consisting of microservices. EdgeX Foundry enables both device management and various communication protocols, making it a perfect project to communicate with all kinds of devices. In fact, EdgeX Foundry is often located inside end devices such as gateways and routers, due to its small footprint. Since the structure is loosely coupled, it is also convenient for users to develop and place their own compute, networking, and storage logic inside the device. EdgeX Foundry can be categorized as a typical FC implementation due to the various access mediums it supports and the devices on which it resides.

During the time that edge computing has gained awareness in the industry, more projects were incubated. Two open source projects proposed by the Chinese giant tech companies Huawei* and Baidu* are also eager to provide edge computing based on Kubernetes. OpenEdge*, which was founded in late 2018 by Baidu, attempts to extend cloud computing, data, and service seamlessly to edge devices. With services running as containers, the MQTT protocol used for communication, and function-as-a-service integrated within the project, OpenEdge provides compelling performance data for computation and networking in edge. Recently, OpenEdge also announced its vision to add support for Kubernetes and build its own edge operating system inside. Considering all its features, OpenEdge can be categorized as a kind of FC implementation for edge.

KubeEdge*, the project proposed by Huawei, joined the CNCF* foundation in March 2019 as the first Kubernetes native edge computing platform. It is used to extend native containerized application orchestration capabilities to hosts at the edge. With KubeEdge, users can easily manage a mini-cloud based on Kubernetes in the edge site, with device management, cloud synchronization, and service maintenance kits already applied inside. KubeEdge also features a small footprint, which makes it usable in resource-constrained environments like gateways. So definitely, KubeEdge can be categorized as a typical FC implementation.

There are even more projects within this field, attempting to cover more use cases and scenarios. The figure below provides extra information on the project details for reference.

 

Project

Foundation

Key Participators

Scope

Layer

Segment/Focus

Latest version

Code Repo

EdgeX Foundry

Linux Foundation

Dell, Vmware, etc.

Common framework for Edge solutions (SDK).

PaaS

Industrial IoT

3.0 (4.0 expected in April 2019)

Go:  https://github.com/edgexfoundry/edgex-go

Java: https://github.com/edgexfoundry

OpenEdge

N/A

Baidu, etc.

Open edge computing framework

PaaS

 

0.1.2

https://github.com/baidu/openedge

KubeEdge

CNCF, Linux Foundation

Huawei, etc

Extend native containerized application orchestration capabilities at Edge

PaaS

 

0.2

https://github.com/kubeedge/kubeedge

Azure IoT Edge

N/A

Microsoft

Internet of Things (IoT) service that offload task to edge

PaaS

IoT

1.0.8-dev

https://github.com/Azure/iotedge

ioFog

Eclipse Foundation

Edgeworx, etc.

Edge computing platform through  microservice at edge

PaaS

IoT

2.0/3.0

https://github.com/ioFog/iofog.org

Eclipse Kura

Eclipse Foundation

Comtrade, Eurotech, Rad Hat, etc.

Platform for building IoT gateways, enabling remote management & app deployment

PaaS

IoT

4.0

https://github.com/eclipse/kura/

Table 4.  Extra information for projects related to date

CONCLUSION

Edge computing is still in its developing stage and its popularity and growth will likely lead to more implementations, use cases, and edge computing projects in the future. This article recommends that you take a good look into the use case you’d like to perform, learn more about its features, and then choose a proper implementation to construct a distributed edge computing solution. We hope that the categorization of the projects in this article will aid your decision-making process and thereby benefit your solution with a better implementation. And if you’re interested in making these projects more functional, please jump in and help advance the projects with feature suggestions, bug report, and other community contributions.

References

Authors

Ruoyu Ying, Cloud Software Engineer at NST/DSS/SSP, Intel Corporation

Shane Wang, Software Engineering Manager at NST/DSS/SSP, Intel Corporation; Individual Director of OpenStack Foundation Board