All Posts By

LF Edge

The Over the Edge Podcast

By Blog, State of the Edge

If you ask 100 people to define edge, you might get 112 different answers, but we do know this much: Edge computing represents a long-term transformation of the Internet that could take decades to fully materialize.

Over The Edge is a podcast about edge computing and those in the industry who are creating the future of the internet. On the show we talk to corporate leaders, open-source experts, technologists, journalists, analysts, and the community at large, to discuss technological innovations, trends, practical applications, business models, and the occasional far-flung theory. Over the Edge is brought to you by the sponsorship of Catchpoint, NetFoundry, Ori Industries, Packet, Seagate, Vapor IO, and Zenlayer.

Listen to the podcast here: OverTheEdgePodcast.com

Check out some of the LF Edge member interviews:

July 29 – Matt Trifiro, VaporIO

July 29 – Galeal Zino, Netfoundry

July 29 – Jacob Smith, Packet

August 5 – Joe Zhu, Zenlayer

August 19 – Malini Bhandaru, VMware

August 26 – Jason Shepherd, ZEDEDA

 

EdgeX Foundry Welcomes New Contributors for Q2

By Blog, EdgeX Foundry

Written by Aaron Williams, LF Edge Developer Advocate

The second quarter has been really busy for the EdgeX community.  We released Geneva and are working hard on Hanoi, our fall release.  This release was made possible through the hard work of 52 community members contributing code in GitHub over the past three months.  Over the past three years, EdgeX has enjoyed 117 unique contributors and the community is continuously growing. We want to welcome and recognize our four first time contributors from Q2.

We encourage our new contributors to keep up the great work and we look forward to their next contribution.  You are helping to improve and grow EdgeX and our community.

Q2 New Contributors’ Usernames:

nbfhscl

bill-mahoney

charles-knox-intel

wogsland

You can find these contributors on github and see what other projects they are working on.

We would be remiss if we didn’t thank our other contributors who posted code, help with documentation, or answered questions on our slack workspace in Q2.   We had over 80k lines of code committed from 50 unique (66 YTD) developers making 665 commits (1.3k YTD).  And here are our top ten committers for the second quarter:

lenny-intel tonyespy
ernestojeda rsdmike
cherrycl difince
lranjbar iain-anderson
hahattan jamesrgregg

You can find most of them on our slack workspace (edgexfoundry.slack.com) where we have had over 2000 messages from 101 members!  On our slack channels, you can ask questions and get help, or you can follow our working groups’ channels.

Do you want to get involved with EdgeX Foundry-The World’s First Plug and Play Ecosystem-Enabled Open Platform for the IoT Edge or just learn more about the project and how to get started?  Either way, visit our Getting Started page and you will find everything that you need to get going.  We don’t just need developers, we could use tech writers, translators, and many other disciplines.

EdgeX Foundry is an open source project hosted by LF Edge that is building a common open platform for IoT Edge computing. The interoperable platform enables an ecosystem of plug-and-play components that unifies the marketplace and accelerates the deployment of IoT solutions across a wide variety of industrial and enterprise use cases.

EdgeX is unique in its scope, broad industry support, credibility, investment, vendor-neutrality, and Apache 2.0 open source licensing model. As such, EdgeX is a key enabler of digital transformation for IoT Use Cases and businesses across many different vertical markets.

EdgeX offers all interested developers or companies the opportunity to collaborate on IoT solutions built using existing connectivity standards combined with their own proprietary innovations.

Visit the EdgeX Foundry website for more information or join our Slack to ask questions and engage with community members. If you are not already a member of our community, it is really easy to join.  Simply visit our wiki page and/or check out our Git Hub and help us get to the next 6 million and more downloads!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OpenAirInterface End User Case Study – Running 5G on Akraino’s KNI Provider Access Edge Blueprint

By Akraino Edge Stack, Blog, Use Cases

Written by Ricardo Noriega, Project Team Lead, Akraino Kubernetes Native Infrastructure Blueprint Family, and Raymond Knopp,  Executive Committee member of the OpenAirInterface Alliance

Overview

Blueprints in the Akraino Kubernetes-Native Infrastructure (KNI) Blueprint Family leverage the best-practices and tools from the Kubernetes community to declaratively manage edge computing stacks at scale and with a consistent, uniform user experience from the infrastructure up to the services and from developer environments to production environments on bare metal or on public cloud.

One of the many use cases that the KNI blueprint family covers is the Provider Access Edge (PAE). The need for deploying mobile application on the edge is growing in latest times. Providing a platform that is capable of supporting deployment of mobile applications, using Kubernetes, and based on kubernetes tooling and declarative configuration from end to end is needed.

The OpenAirInterface project fosters a community of industrial as well as research contributors for software and hardware development for the core network (EPC) and access network and user equipment (EUTRAN) of 3GPP cellular networks. The OpenAirInterface alliance, has chosen the Akraino KNI PAE blueprint as the reference platform to develop, test and deploy its 4G and 5G open source mobile networks.

Key features on the Provider Access Edge blueprint

Telco / 5G network functions are among the more exigent Kubernetes workloads, but they are not unique: customers from high performance computing, high frequency trading, industrial control, et al. are asking for pretty much similar sets of capabilities.

This blueprint targets small footprint deployments able to host NFV (in particular vRAN) and MEC (e.g. AR/VR, machine learning, etc.) workloads. Its key features are:

  • Lightweight, self-managing clusters based on CoreOS and Kubernetes (OKD distro).
  • Support for VMs (via KubeVirt) and containers on a common infrastructure.
  • Application lifecycle management using the Operator Framework.
  • Support for multiple networks using Multus.
  • Support for high throughput interfaces using the SRIOV operator.
  • Support for real-time workloads.
  • Support for Stream Control Transmission Protocol (SCTP).

OpenAirInterface network deployment

The OpenAirInterface alliance has made a great effort on moving all the components that form a 4G/5G mobile network to the Kubernetes world. Building all the container images and writing the corresponding manifests to match a specific deployment model has been a tremendous work.

To support the 5G network in a production-like deployment, we configured the OpenShift based KNI PAE blueprint to segregate real-time and non-real-time compute workloads as well as management, control, and data plane traffic according to the following logical deployment architecture:

Conclusion

5G is designed to bring to the enterprise world as well as to the regular consumer, high throughput and low latency bandwidth that will enable the use cases of the future like IoT, autonomous cars, and many other applications deployed at the edge of the networks. The Akraino Kubernetes Native Infrastructure blueprint family allows to run these very demanding workloads on top, and OpenAirInterface has chosen us as the reference platform.

References

https://www.openairinterface.org/docs/workshop/8_Fall2019Workshop-Beijing/Talks/2019-12-05-DEFOSSEUX.pdf

Learn more about OpenAirInterface here. Learn more about Akraino here.

Exploration and Practices of Edge Computing: Cloud Managing Virtualized Devices

By Blog, EdgeX Foundry

Written by Gavin Lu, LF Edge member, EdgeX Foundry China Project Lead and R&D Director in the VMware Office of the CTO

As an industry leader with vast experience and knowledge, Gavin has been writing a series of articles focused on edge computing. These articles are posted on his personal blog and are posted here with his permission. To read more content from Gavin, visit his website

Introduction to the Architecture of Pallas

The previous article introduced how to build and install virtualized devices, but did not touch how to manage large-scale virtualized devices from the cloud. This article introduces the architecture of Pallas to achieve the above goal.

Pallas is the second milestone of the project Asteroid after Ceres. In this release, the basic problems of cloud managing virtualized devices are solved:

  • The device-cloud connection is narrow and unstable
  • Large scale of devices
  • Serious security concerns, often forbidding any open ports

The main functions of the Pallas architecture are implemented by the device manager and the agent virtual machine. Its design key points are:

  • Adopt MQTT protocol suitable for narrow-band, unstable network connections
  • The device manager in the cloud adopts the design concept of typical Internet architecture, with multiple layers, micro-services, multiple buffers, and read-write separation
  • The device is automatically registered to the device manager, and the device initiates all connections and response happens in the cloud
  • Close all ports on the device, run without VPN / SD-WAN, cross public networks
  • Each device has a randomly created, globally unique and permanent ID

Installation requirements

  • vSphere Hypervisor is installed on the device.
    • Device agent
      • CPU: 1 x86-64 vCore
      • Memory: 512MB
      • Storage: 5GB
  • Device manager
    • CPU: 2 vCores
    • Memory: 8GB
    • Storage: 100GB
    • Network: Open ports 443 and 1883, the device is visible

Note: In order for the agent to work properly, the device requires at least vSphere Essentials Kit license, or apply for the Enterprise Edition 60-day trial using the method described in the previous article. 

Download and Installation

Download Pallas

The Pallas installation package can be downloaded from the Flings website of the VMware CTO office. You need to register a VMware community account in advance. The download package contains the device manager OVA, agent VM OVA and user guide.

Note: The download package provided on the Flings website is a technical preview, which does not include commercial support. It is recommended that you carefully read its installation and user guide before initialize the installation.

Install device manager

The way to install device manager is the same as the typical way to install an OVA of virtual machines, which can be completed in sequence by referring to the steps in the Pallas installation guide.

Note: Although device manager is packaged in OVA mode, it does not depend on any specific virtualization infrastructure or cloud platform. In an alternative, it can be converted from OVA to other formats, or install on any cloud platform that supports OVA format.

Install device agent

In order to simplify the process of installing device agent, it is recommended to use the virtual machine OVA instead of the binary package.

 
You can use OVF Tools to install OVA remotely, or leverage ESXi UI to install directly as below.

ovftool –acceptAllEulas –name=pallas_agent –datastore=DATASTORENAME -dm=thin –X:injectOvfEnv –powerOn pallas_agent_ubuntu.ova ‘vi://USERNAME:PASSWORD@ESXIHOST’

Configuration and Use

Configuration

Before you start using it, it is critical to configure the device agent. In order to ensure communication security, remember to modify /etc/vmware/pallas_agent/pallas_agent.conf file before encrypt the file in the following manner.
python3 /root/agent/install/encrypte_password.py YOUR-PASSWORD

If the device is connected to the cloud via WiFi or a telco carreir mobile network, the corresponding PCIe or USB NIC needs to be passed through to the device agent virtual machine. In this way, the device agent virtual machine can be registered to the device manager.

Use

After the device is registered to the device manager, you can perform CRUD-like operations on users, devices, and virtual machines like other ordinary management tools.

 
 
 
It should be noted that because the communication protocol of metadata between the device manager and the device is based on MQTT, the status updates of the device and the virtual machine on top of it are completed asynchronously. If you don’t find a task completed in “real time”, you may need to wait for a while or refresh the status.
 
For tasks such as deploying a virtual machine or patching a device, large files are downloaded via HTTPS and auto resuming.
 
To complete all functions
 above, there is no need for mutual IP visibility between the manager and the device, nor the installation of any VPN or SD-WAN. The device can also be safely behind a firewall, NAT, or gateway.
 
 
With the support of these basic functions, it is easy to expand, manage large-scale virtualized devices from the cloud, and deploy edge applications like EdgeX Foundry framework on them. In the workshop on EdgeX Foundry China Day in December 2019, we have demonstrated the deployment of edge applications based on EdgeX Foundry framework with cloud management of virtualized devices.
 
 

Next

The previous two articles described how to build and install virtualized devices, and how to manage virtualized devices from the cloud. 

In the preface, in addition to virtualization devices, another solution is containerized devices.

In fact, the use of containerized equipment is very common, and it often implies local orchestration, cloud operation and maintenance.

  • Local orchestration means that single-point failures of devices cannot be handled well. Even the most common deployment approach of EdgeX Foundry is to deploy core container instances of microservices on one single device.
  • Cloud operation and maintenance means managing containerized devices from the cloud. Most manufacturers have their own specialized solutions, which brings another problem of technology fragmentation.

The solutions to these two problems will be discussed in subsequent chapters. The next article will introduce a cloud managing containerized device solution to solve the problem of fragmentation.

EdgeX Foundry Device Actuation from the Cloud

By Blog, EdgeX Foundry

Written by Jason Bonafide, EdgeX Foundry Contributor and Principal Software Engineer at Dell Technologies

EdgeX Foundry is a platform that serves as middleware in edge computing – serving between physical sensing and actuating devices and our information technology (IT) systems. Edgex’s interoperability enables communication between real world devices with simplicity in mind.

EdgeX Foundry is composed of several interoperable service layers. The layer that we will focus on in this tutorial is called Device Services Layer. The role of a Device Service is to connect “things” (sensors and devices) into EdgeX. For those looking to establish communication between devices and perform actions on conditional system-state, this tutorial is for you!

At Dell Technologies, we wanted to establish bi-directional communication between simulated devices on the edge (in an isolated network) with EdgeX Foundry. This enabled us to deploy a single up-to-date EdgeX Foundry cluster in VMWare’s One Cloud. This would speed up the process in bootstrapping systems on the edge which can showcase the variety of protocols supported by EdgeX. Demonstrating this flow, is the goal of this tutorial.

Tools and Technologies

While this tutorial aims to suit the needs of a variety of setups, below are used in this tutorial:

System Overview

Figure A contains the following components:

  • MQTT Device Service: Application which connects our Temperature Sensor to EdgeX.
  • Temperature Sensor: Simulated MQTT device on the edge.
  • EdgeX Foundry: EdgeX Core Services which handle the device readings, data, and actuation.

Device Overview

EdgeX Foundry’s MQTT Device Service leverages 3 topics when integrating a device with the platform:

  • Device-list Protocol Topic: This topic is used by MQTT Device Service for invoking a command on the device. In our example, we refer to this topic as the CommandTopic. This configuration can be modified at toml.
  • Driver IncomingTopic: This topic is by MQTT Device Service for receiving data, and publishing the data to core-data for persistence. This configuration can be modified at toml.
  • Driver ResponseTopic: This topic is used by core-command in receiving responses from the device actuation. This configuration is can be modified at toml.

Simulated Temperature Sensor Controller Device

  • Publishes temperature every 5 seconds to DataTopic.
  • Subscribes to CommandTopic which contains commands from edgex-core-command.
  • Publishes response for inbound command to RepsonseTopic.

This application used to simulate a temperature sensor can be found here.

Defining Device Profiles

As a pre-requisite to configuring the MQTT Device Service, we will need to define the Device Profiles for the devices.

A Device Profile defines the device’s values and operation methods (Read or Write). The device values and operation methods are essential in defining the “what” and “how” we can begin to tell EdgeX Foundry how it can interact with our devices.

Each Device Profile contains the following sections:

  • Identification: fields which pertain to the identification of a Device Profile.
  • DeviceResources: specification of sensor values within a device which may be read from or written to either individually or as part of a deviceCommand.
  • DeviceCommands: defines access to read and writes for simultaneous device resources.
  • CoreCommands: specifies the commands which are available via the core-command microservice.

Temperature Sensor Device Profile

# Identification properties
name: “TemperatureSensor”
manufacturer: “Generic”
model: “MQTT-123”

# Labels that we can use for filtering especially when invoking endpoints throughout the microservices.
labels:
– “temperature”
– “sensor”
– “controller”
– “mqtt”
description: “Simulated temperature sensor controller device”

# The Sensor is a simple one which only provides read-only access to its constantly updating temperature value.
deviceResources:
– name: temperature
description: “Sensor temperature value”
properties:
value:
{ type: “string”, “readWrite”: “R” }
units:
{ type: “string”, readWrite: “R” }

# Commands that we are concerned with in regards to interacting with the device.
deviceCommands:
– name: temperature
get:
– { index: “1”, “operation”: “get”, deviceResource: “temperature” }

# Defining of endpoints within core-command that we can use to interact with the sensor.
coreCommands:
– name: temperature
get:
path: “/api/v1/device/{deviceId}/temperature”

# 200 response with the temperature value in the response.
responses:
– code: “200”
description: “Get the temperature”
expectedValues: [ “temperature” ] – code: “500”
description: “internal server error”
expectedValues: []

Configuring MQTT Device Service

EdgeX Foundry offers an MQTT Device Service in which we will configure for our devices.

Host Configuration

While we intend to communicate with our device on a local network, we will still want to configure the Host for device-mqtt-go to be localhost. Later on in this tutorial, we will talk about port-forwarding to this process.

Each system may look different as to where you can find EdgeX and how you may connect to it. Be sure to update the Host and Port configuration properties for the clients. The device service will need to talk to some Core EdgeX Services.

Device Configuration

We leverage [[DeviceList]] to create our pre-defined Temperature Sensor.

In this section, we flesh out the device’s metadata.

  • Name: TemperatureSensor
  • Profile: TemperatureSensor
  • Description = ‘Simulated MQTT Temperature Sensor device’
  • Labels = [ ‘MQTT’, ‘Temperature’, ‘Sensor’ ]

Next we define MQTT protocol configuration:

  • Schema: tcp
  • Host: [MQTT Borker Host] – In my case, this points to our eclipse mosquitto instance in the Kubernetes cluster.
  • Port: [MQTT Broker Port] – In my case, this ports to the expose NodePort for eclipse moquitto.

Driver Configuration

Other than general MQTT configuration, which will need to point to the eclipse-mosquitto instance, you may or may not need to update the IncomingTopic and ResponseTopic. The example we use in the tutorial, uses the default configuration values provided within the example of the Device Service.

  • IncomingTopic: DataTopic – topic in which our device will push temperature value to.
  • ResponseTopic: ResponseTopic – topic in which we will publish the response from the command invocation.

Finalized configuration.toml

IP Addresses have been redacted and should be modified to better fit your scenario.

# Turning the log-level to DEBUG so that we can capture publish/subscribe actions
[Writable] LogLevel = ‘DEBUG’

# Configuration for the device MQTT service:
# Set the Host my machine’s IP address
# Leaving the defaults for the remaining configurations.
[Service] BootTimeout = 30000
CheckInterval = ’10s’
ClientMonitor = 15000
Host = ‘localhost’
Port = 49982
Protocol = ‘http’
StartupMsg = ‘device mqtt started’
Timeout = 5000
ConnectRetries = 10
Labels = [] EnableAsyncReadings = true
AsyncBufferSize = 16

# We are not using the Registry within this example
[Registry] Host = ‘localhost’
Port = 8500
Type = ‘consul’

# Using defaults
[Logging] EnableRemote = false
File = ”

# Configure clients for the other microservices:
# Pointing at the EdgeX Deployments in the VMWare One Cloud.
[Clients] [Clients.Data] Protocol = ‘http’
Host = ‘k8s.cluster’
Port = 48080

[Clients.Metadata] Protocol = ‘http’
Host = ‘k8s.cluster’
Port = 48081

[Clients.Logging] Protocol = ‘http’
Host = ‘k8s.cluster’
Port = 48061

# Configuration for the device:
# Ensure that ProfilesDir is pointing to the directory which the device profile configrations reside.
[Device] DataTransform = true
InitCmd = ”
InitCmdArgs = ”
MaxCmdOps = 128
MaxCmdValueLen = 256
RemoveCmd = ”
RemoveCmdArgs = ”
ProfilesDir = ‘./res/lf-edge’
UpdateLastConnected = false

# Pre-define Devices:
# Temperature Sensor and AC Fan devices.
# Configured to point at MQTT broker in the Cloud.
# Using CommandTopic as the topic which will handle actuating the devices.
# Configure automated events on the temperature Device Resource
[[DeviceList]] Name = ‘Temperature Sensor’
Profile = ‘TemperatureSensorProfile’
Description = ‘Simulated MQTT Temperature Sensor device’
Labels = [ ‘MQTT’, ‘Temperature’, ‘Sensor’ ] [DeviceList.Protocols] [DeviceList.Protocols.mqtt] Schema = ‘tcp’
Host = ‘k8s.cluster’
Port = ‘1883’
ClientId = ‘CommandPublisher’
User = ‘admin’
Password = ‘public’
Topic = ‘CommandTopic’
[[DeviceList.AutoEvents]] Frequency = ’20s’
OnChange = false
Resource = ‘temperature’

# Driver configs:
# DataTopic is the topic the Device Service will use to provide to Core Data.
# Reference MQTT Broker in the Cloud.
# ResponseTopic is the topic which the Device scripts will use to communicated responses on command invocations.
[Driver] IncomingSchema = ‘tcp’
IncomingHost = ‘k8s.cluster’
IncomingPort = ‘1883’
IncomingUser = ‘admin’
IncomingPassword = ‘public’
IncomingQos = ‘0’
IncomingKeepAlive = ‘3600’
IncomingClientId = ‘IncomingDataSubscriber’
IncomingTopic = ‘DataTopic’
ResponseSchema = ‘tcp’
ResponseHost = ‘k8s.cluster’
ResponsePort = ‘1883’
ResponseUser = ‘admin’
ResponsePassword = ‘public’
ResponseQos = ‘0’
ResponseKeepAlive = ‘3600’
ResponseClientId = ‘CommandResponseSubscriber’
ResponseTopic = ‘ResponseTopic’
ConnEstablishingRetry = ’10’
ConnRetryWaitTime = ‘5’

Router Port-Forwarding

Given a scenario where EdgeX Foundry is deployed in the cloud, and our devices are on a local network, one option is to leverage port-forwarding our your router.

In my scenario, EdgeX Foundry exists in VMWare’s One Cloud while my MQTT Device Service and device simulations reside on my local home network. While it is not recommended for this setup on a home network (for security purposes), I am going to use my home network and configure port-forwarding on my router to demonstrate this flow for similar environments. This will allow me to register my MQTT Device Service within EdgeX Foundry using my public IP address.

With the help of port-forwarding, I can configure my router to forward all requests to http://[PUBLIC IP]:49982 to the machine which is running the MQTT Device Service on port 49982.

The flow demonstrated in Figure B assumes ingress/egress routing supports communication between both entities.

Actuating MQTT Devices from the cloud

Before diving in, here are the host and port configurations I will use to access EdgeX:

  • edgex-core-data: k8s.cluster:30800
  • edgex-core-metadata: k8s.cluster:30801
  • edgex-core-command: k8s.cluster:30802

Earlier, we’ve configured MQTT Device Service to run on localhost on a machine within a local network. If your setup is similar to mine, this will not be accessible from a cloud environment. Fortunately, we can use core-metadata’s API to modify the URLs at which the Device Service can be accessed from the cloud. Since device-mqtt-go is still running on localhost with port-forwarding configured, the Device Service can be accessed by EdgeX in the cloud.

Let’s get the Device Service’s Addressable details in effort to capture this device information we will use to update some routing information.

# Invoking core-metadata

curl –location –request GET ‘k8s.cluster:30801/api/v1/addressable’

This will yield a response similar to:

[
{
“created”: 1594771598214,
“modified”: 1594771598214,
“origin”: 1594771598226,
“id”: “0da6eda1-fad9-41b6-a1c3-c50aab4679f8”,
“name”: “edgex-device-mqtt”,
“protocol”: “HTTP”,
“method”: “POST”,
“address”: “localhost”,
“port”: 49982,
“path”: “/api/v1/callback”,
“baseURL”: “http://localhost:49982”,
“url”: “http://localhost:49982/api/v1/callback”
}
]

Now lets use the previous response body and update the following fields to reference our network’s public IP: – address – baseUrl – url

Note that [PUBLIC IP] is used in place of your the IP address that you will use when routing to your network

# Invoking core-metadata

curl –location –request PUT ‘k8s.cluster:30801/api/v1/addressable’ \
–header ‘Content-Type: application/json’ \
–data-raw ‘{
“id”: “0da6eda1-fad9-41b6-a1c3-c50aab4679f8”,
“name”: “edgex-device-mqtt”,
“protocol”: “HTTP”,
“method”: “POST”,
“address”: “[PUBLIC IP]”,
“port”: 49982,
“path”: “/api/v1/callback”,
“baseURL”: “http://[PUBLIC IP]:49982”,
“url”: “http://[PUBLIC IP]:49982/api/v1/callback”
}’

At this point, the Device Service is routable from the cloud. Next, let’s get the TemperatureSensor device ID:

# Invoking core-command

curl –location –request GET ‘k8s.cluster:30802/api/v1/device/name/TemperatureSensor’

This will result in a response like this:

{
“id”: “7af6bad7-7c4f-408b-9a62-eb909e0aad4f”,
“name”: “TemperatureSensor”,
“adminState”: “UNLOCKED”,
“operatingState”: “ENABLED”,
“labels”: [
“MQTT”,
“Temperature”,
“Sensor”
],
“commands”: [
{
“created”: 1594771641016,
“modified”: 1594771641016,
“id”: “118cb3c7-3c1b-4088-bd88-7c27d304aba9”,
“name”: “temperature”,
“get”: {
“path”: “/api/v1/device/{deviceId}/temperature”,
“responses”: [
{
“code”: “200”,
“description”: “Get the temperature”,
“expectedValues”: [
“temperature”
] },
{
“code”: “500”,
“description”: “internal server error”
}
],
“url”: “http://localhost:48082/api/v1/device/7af6bad7-7c4f-408b-9a62-eb909e0aad4f/command/118cb3c7-3c1b-4088-bd88-7c27d304aba9”
},
“put”: {
“url”: “http://localhost:48082/api/v1/device/7af6bad7-7c4f-408b-9a62-eb909e0aad4f/command/118cb3c7-3c1b-4088-bd88-7c27d304aba9”
}
}
] }

We can extract the get command from the response for TemperatureSensor. This URL can be used to get the temperature value from the device itself.

Something worth noting is that the URL generated within the response above, uses the configured Host and Port values from core-command. Depending on your setup, you may need to invoke a different URL to access core-command. In my particular instance, I am exposing core-command via NodePort Service type. This means that core-command is accessible only through a port range allowed by Kubernetes. The port assigned to core-command is not the same as the port used within the cluster. With a load-balancer, ingress, or some proper network configuration, it could certainly be set up in such that the internal DNS names can be resolved.

# Invoking core-command

curl –location –request GET ‘http://k8s.cluster:30802/api/v1/device/7af6bad7-7c4f-408b-9a62-eb909e0aad4f/command/118cb3c7-3c1b-4088-bd88-7c27d304aba9’

response

{
“device”: “TemperatureSensor”,
“origin”: 1594773351741563527,
“readings”: [
{
“origin”: 1594773351741189868,
“device”: “TemperatureSensor”,
“name”: “temperature”,
“value”: “119.017532”,
“valueType”: “String”
}
],
“EncodedEvent”: null
}

We have now demonstrated bi-directional communication between devices on a local network and EdgeX Foundry in the cloud. While this is a simple demonstration, this flow can enable provisioning edge-device clusters which interact with EdgeX Foundry quickly. With an EdgeX instance deployed in the cloud, this flow (depending on networking), is portable enough to experiment with the different protocols EdgeX Foundry supports.

This tutorial is a start of what can be accomplished with EdgeX Foundry. We’ve walked through a simple flow where we can establish bi-directional communication between edge devices and EdgeX Foundry in the cloud. With all the supported protocols, it is rather simple to get EdgeX up and running with the the Device Service of your choice.

Visit the EdgeX Foundry website for more information or join Slack to ask questions and engage with community members. If you are not already a member of the community, it is really easy to join. Simply visit the wiki page and/or check out the EdgeX Foundry Git Hub.

State of the Edge and Edge Computing World Seeks to Recognize Women Shaping the Future of Edge

By Awards, Blog, State of the Edge

Written by Candice Digby, Partner and Events Manager at Vapor IO, a LF Edge member and active leader in the State of the Edge Project

As 2020 continues to surprise the world with new changes and challenges, the need for diversified leadership and tech innovation has never been more clear. In an effort to help promote and encourage progress in the edge industry, The LF Edge’s State of the Edge and Edge Computing World present the second annual Edge Woman of the Year Award.

 

The award recognizes leaders who have been impacting their organization’s strategy, technology or communications around edge computing, edge software, edge infrastructure or edge systems. The organizers encourage industry participants to nominate their colleagues, or for qualified women to nominate themselves. The “Top Ten Women in Edge” finalists will be selected by the organizers and the final winner will be chosen by a panel of industry judges. Finalists will be announced at Edge Computing World, being held virtually October 12-15, 2020. The Edge Woman of the Year will be announced on October 12th during the keynote session.

In addition to honoring the 10 semi-finalists and the ultimate Edge Woman of the Year, the organizations will also showcase the exceptional women who make up the advisory board, who are leaders in the industry themselves. Along with last year’s Edge Woman of the Year, Farah Papaioannou, Founder and President of Edgeworx, the 2020 advisory board includes:

  • Nadine Alameh, CEO, Open Geospatial Consortium
  • Samantha Clarke, Director of Business Development, Seagate Technology
  • Eliane Fiolet, Co-founder, Ubergizmo
  • Janet George, GVP Autonomous Enterprise, Oracle Cloud
  • Maribel Lopez, Founder and Principal Analyst, Lopez Research
  • Maemalynn Meanor, Senior PR, Marketing and Social Media Manager, The Linux Foundation
  • Carolina Milanesi, Founder, The Heart of Tech
  • Molly Wojcik, Director of Education & Awareness, Section
  • Michelle Davis, Manager, DoD/IC Specialist SA team, Red Hat

(Matt Trifiro, Farah Papaioannou, Gavin Whitechurch)

The Edge Woman of the Year 2019 award recognized Papaioannou for her outstanding impact on the edge computing industry and her multidimensional technology leadership, including venture capital, edge cloud computing, and open source projects. Now, she’ll join the impressive list of women choosing this year’s winner.

“It was an honor to acknowledge an exceptionally strong group of nominees last year, and we look forward to again recognizing those iterating on the edge computing technology in exceptionally creative ways this year,” said Gavin Whitechurch of Topio Networks and Edge Computing World. “It is imperative we take note of and acknowledge our colleagues leading the edge computing revolution, and we look forward to doing that with this year’s Edge Woman of the Year award.”

For more information on the Woman in Edge Award or to nominate someone, please visit http://www.edgecomputingworld.com/edgewomanoftheyear.

About State of the Edge

State of the Edge is an open source project under the LF Edge umbrella that publishes free research on edge computing. It is a Stage 2 project (growth) under LF Edge and is divided into three working groups: Open Glossary of Edge Computing, the Edge Computing Landscape and the State of the Edge reports. All State of the Edge research is offered free-of-charge under a Creative Commons license, including the landmark 2018 State of the Edge report, the 2019 Data at the Edge report and, most recently, the 2020 State of the Edge report.

About Edge Computing World

Edge Computing World is the only event that brings together users and developers with the entire edge ecosystem to accelerate the edge market & build the next generation of the internet. For 2020 the virtual event focuses on expanding the market, with new features including the Free-to-Attend Edge Developers Conference & the Free-to-End Users Edge Executive Conference.

LF Edge Update: Taxonomy, SIGs and Project EVE

By Blog, LF Edge, Project EVE

Written by Jason Shepherd, LF Edge Governing Board Member and VP Ecosystem ZEDEDA

I hope you and yours are doing well in these crazy times. Things are going great within the LF Edge community as we increase alignment across projects, fine-tune our processes and recently welcomed two new projects: Open Horizon and Secure Device Onboard. Net-net, more and more people by the day are joining in to grow an inclusive, structured community focused on developing an open framework for edge computing.

As a board member who is also involved in a number of the LF Edge working groups, I wanted to take this opportunity to provide an update on several fronts: the recently released LF Edge taxonomy white paper, the emerging Special Interest Groups (SIGs), and Project EVE.

LF Edge Taxonomy White Paper

Released last week, the community-created white paper outlining the LF Edge taxonomy and framework is an important piece that we believe will really help clear up a lot of market confusion by providing a balanced view of the edge landscape that is based on inherent technical and logistical trade offs spanning the edge to cloud continuum. This is compared to many existing edge taxonomies that break down the continuum using ambiguous terms that can be interpreted in different ways.  

The goal was to provide a universal framework for various industries to apply their preferred terminology on top of. We’ve received universally positive feedback in previews with key analysts and encourage you to check out both the paper and this related webinar that presents key insights.

LF Edge Vertical Solutions Focus Groups

With nine projects and the new taxonomy serving as a solid foundation, we’re now increasing focus on spinning up Vertical Solutions Focus Groups within the LF Edge community. These focus groups are a precedent set by CNCF and other Linux Foundation projects. The purpose is to document unique requirements for specific markets and feed desired features back into the LF Edge project working groups for consideration as part of their roadmaps. Doing this across as many use cases spanning Industrial, Enterprise and Consumer markets will ensure that each project is maximizing impact while also recognizing inherent tradeoffs.  

Both member and non-member companies will be welcome to volunteer to lead a vertical, or join one already in flight. It’s a low time commitment and a great way to demonstrate thought leadership as an end user while making sure LF Edge projects are developing the right features and specific extensions for the verticals and use cases that matter the most to your company. Stay tuned for more details, including a virtual launch event in the late summer!

Project EVE Update

LF Edge projects are growing across the board and Project EVE is no exception. The EVE community is now approaching 50 unique contributors from organizations including ZEDEDA, Xilinx, Intel, Global Logic, Atomic, GE Research and Timesys and contributions are also growing at a steady pace.  

In terms of market focus, EVE is optimized for supporting IoT edge computing workloads at the “Smart Device Edge,” as defined in LF Edge taxonomy.  Edge compute nodes in this subcategory are characterized by two attributes: 1) being deployed outside of a physically-secure data center but 2) still having enough memory (approximately 256MB) to support application abstraction in the form of virtualization and/or containerization.

 

Devices at the IoT Edge are constrained, heterogeneous, and physically accessible, dictating that special attention needs to be made to optimize footprint, simplify support for diverse hardware, enable zero touch provisioning, and establish a zero trust security model that eliminates the guesswork in securing distributed edge computing nodes at scale. EVE builds on the principles of traditional virtualization tools optimized for the data center, but is optimized for the unique needs of the IoT Edge.

The chart below explains how EVE takes a balance of architectural approaches to serve as a holistic, open engine for supporting any IoT edge computing workload. The net is that the bare metal foundation enables deep security and networking capabilities, supports both containers and virtual machines to provide options for both modern and legacy workloads, and mitigates lock-in with its open API. 

Since launching as a founding LF Edge project in early 2019, the EVE community has been working hard to modularize the EVE foundation so developers can choose preferred components, ultimately wrapped up into a de-facto standard interface in the form of the open EVE API. 

As part of the community’s effort to increase modularity, support for ACRN and KVM hypervisors as alternatives to the original Xen baseline has been added. The project has adopted continerd given that it is the most common container runtime and a general tenet is to integrate leading OSS projects and standards wherever possible rather than reinventing. 

The community’s goals for the balance of 2020 include further increasing modularity and reducing footprint, and adding support for Kubernetes via K3S. Regarding the latter, this will be done by integrating the right features from the Kubernetes paradigm rather than simply trying to cut and paste the same functionality from centralized data centers to the necessarily different IoT edge. Join in if you’d like to help the community shape this important bridge from the IoT Edge to the data center paradigm! 

In terms of adoption, EVE is being leveraged as the edge computing foundation for deployments in several market verticals including oil and gas, renewable energy, manufacturing and healthcare. Check out the EVE in Market page for a growing list of community-supported images for hardware models from Advantech, Dell, HPE, IEI, Intel, Kontron, Lanner, Nexcomm, Raspberry Pi, Siemens, Supermicro and more! This page also has links to the OSS Adam and commercial controller offers that leverage the open EVE API.

Finally, thanks to the great work of Stefano Stabelini at Xylinx, among others, an image is now available for the Raspberry Pi 4 to make it even easier and cost-effective to get started with EVE! This image includes GPU support and can be used with the OSS Adam controller today. Stay tuned to “EVE in the Market” page for other controller options, or contribute your own!

The mission of the EVE community is to do for the IoT Edge what Android did for the smartphone. Learn more about EVE through the project page on the LF Edge site and in this EVE webinar in which I also highlight the importance of an open edge for realizing the true business potential of digital transformation. We welcome you to join the community to make EVE the one foundational stack needed to scale IoT edge computing deployments with choice of hardware, applications and cloud!

In closing, we have a lot of great things going on within the LF Edge community and we’re just scratching the surface of the opportunity ahead. Our future is bright and we encourage you to get involved, whether it be providing key market input through a SIG or diving straight in and contributing code. After all, LF Edge is a technical meritocracy and the best way to vote on the direction of a project is with fingers on your keyboard!

ZEDEDA is a LF Edge member and leader in Project EVE. For more details about LF Edge members, visit here. For more details about Project EVE, visit the project page

Other resources:

 

Calling all innovators!! You’re invited to compete in the EdgeX Foundry Challenge Shanghai 2020

By Blog, EdgeX Foundry

Written by Intel’s Ying J Lu, EdgeX Foundry Community Member

On July 3, the EdgeX Foundry Challenge Shanghai 2020 was successfully kicked off as a joint effort among EdgeX community members Intel, VMware, Dell Technologies, HP, Thundersoft, IOTech, Tencent, and Shanghai startup incubator Innospace.

Leaders from the Linux Foundation and LF Edge welcomed community members for a virtual kick-off of the EdgeX Challenge, aimed at building a learning platform for EdgeX Foundry ecosystem partners in China. This initiative enables development of open, scaled industry solutions. It brings together participants with in-depth industry knowledge and developers to identify use cases to solve top industry problems and build demonstrations that move toward an integrated commercial solution. So far, more than 16K people have tuned in to view the challenge kick-off.

Why is edge important?

In today’s data-driven landscape, the Internet of Things provides a number of sensors and terminal devices with a variety of protocols, creating complexity to integrate them into a unified platform. To address the increasing demand to introduce new workloads such as artificial intelligence at the edge, fuse data on customers’ premises and the interwork with different cloud service providers,  this and future EdgeX challenges will help to accelerate a community of practice for architecting modern solutions.

As the world’s learning open edge computing framework, EdgeX Foundry is well positioned to address the edge opportunities as well as its complexity. “Intel is committed to support development of EdgeX Foundry”, says Wei Chen, Vice President of the Intel IOT Group, “including active code contribution, strong evangelism, and active development within the open source EdgeX ecosystem. Intel is also supporting the EdgeX China Project, which specifically supports the EdgeX Foundry community in China.”

Intel has also been actively collaborating in the greater open edge ecosystem by introducing OpenVINOTM toolkits to accelerate AI at the edge, growing the Open Retail Initiative to create and drive adoption of data rich solutions in retail leveraging open source ingredients, and launching Edge reference implementations for Retail and Industrial use cases available at the Intel’s Edge Software Hub. All of these efforts focus on nurturing a healthy and strong edge compute ecosystem.

The Challenge Highlights

The EdgeX Challenge Shanghai is co-hosted by the Linux Foundation and Science & Technology Commission of Shanghai Municipality (STCSM). The goal is to create a space for collaboration, using state-of-the-art technology frameworks, such as EdgeX Foundry which is part of the Linux Foundation, to address business challenges related to commerce and industrial verticals.

There are two major tracks covering the following industries:

  • Commerce: Retail, banking, hospitality, education, smart home, healthcare, cities and campus
  • Industrial: Manufacturing, power, oil and gas, utilities

The Challenge contest consists of two rounds, before winners are selected. In the preliminary round, all participants are required to submit an ideation document to describe how EdgeX-based technical frameworks are used in conjunction with a relevant industry use case. Judges will then select ten use cases to compete in the final round. Each team must demonstrate and showcase their solution which will consist of an interview by the judge’s review committee. Three levels of prizes will be awarded to winning teams.

Challenge Timeline:

Join the Competition

Registration for the EdgeX Challenge Shanghai is open until July 20, 2020. All are welcome—system integrators (SIs), independent solution vendors (ISVs), original equipment manufacturers (OEM, developers, universities and research institutes—to join the challenge.

Register here by July 20, to join the EdgeX Challenge Shanghai.

To see the kickoff from July 3, visit the EdgeX Challenge Shanghai 2020 video challenge here.

Collaborate with the EdgeX Foundry community

Akraino’s Debut at China Mobile’s “Innovation 2020 Cloud Technology Week”

By Akraino Edge Stack, Blog

Written by Tina Tsou, Co-Chair of the Akraino TSC, and Su Gu, Senior Researcher with China Mobile

On June 17, China Mobile Science and Technology Association held the “Innovation 2020 Cloud Technology Week” forum, which officially opened a series of cloud related activities  that included product launches, lectures, networking opportunities and more. For example, there was an announcement of “NEST+” plan geared for external industrial ecological cooperation. The event theme was innovation and celebrated the collaboration, openness, and win-win of technology companies both big and small. 

The event was attended and viewed by more than 734,000 people ranging from academicians, scholars, thought leaders and industry experts. There was a lot of buzz around the 5G development and collaboration in the  innovation, 6G frontier, artificial intelligence, Internet of Vehicles, Internet of Things, and other fields. 

As an important part of this ecosystem, LF Edge was represented at this event through project leaders and members. LF Edge’s Tina Tsou, Co-Chair of the Akraino TSC and Enterprise Architect at Arm, was on-hand to host a workshop with China Mobile Technology (USA) about the trend of edge computing and LF Edge’s Akraino Edge Stack project.

Other member speakers include Dr Oleg Berzin, Senior Director at Equinix, Jason Shepherd, LF Edge Governing Board member, Project EVE leader and Vice President at Zededa and Tapio Tallgren, a member of the LF Edge Technical Advisory Council and Lead SW Architect at Nokia, to introduce their contributes to Akraino and share their views on MEC.

Joe Ward, CEO at EdgeVideo, Arif Khan,CEO at ParserLabs and China Mobile’s Su Gu, Senior Researcher, and Dr Jian Li also shared their views on Telco MEC and how to interwork with public clouds on MEC.

The “Innovation 2020 Cloud Technology Week” was a great success.  To learn more about Akraino Edge Stack, click here

 

Baetyl 2.0

By Baetyl, Blog

Written by Leding Li, Chair of the Baetyl Technical Steering Committee and Chief Architect at Baidu Cloud IoT

Baetyl, a Stage 1 (at-large) project under the LF Edge umbrella, seamlessly extends cloud computing, data and services to edge devices, enabling developers to build light, secure and scalable edge applications.  Today, Baetyl is thrilled to announce Baetyl 2.0, which features the long-awaited remote management system and support for the Kubernetes ecosystem.

A number of active contributors from the Baetyl community helped develop these new features to Baetyl, which brings Baetyl closer to its fundamental goal of creating a free and open edge computing platform.

Other Baetyl 2.0 features include:

  • A new remote management system called Baetyl-Cloud to support the management of multiple edge nodes.
  • The Edge and Remote Management system all evolve to Cloud Native model and are supported to run on both vanilla Kubernetes and K3S.
  •  A “declarative resource definition” design for edge-cloud synchronization through IoT device shadows.
  • An internal architecture upgrade to support future edge clusters.

We have always believed that a complete edge computing system should not only have the hosting capabilities to support applications and services running on a variety of devices, but also make developers be freed from insecure physical consoles, and that devices should be able to be operated and managed remotely in bulk, which is especially meaningful for devices that are about to be placed in remote, dangerous, or harsh environments. Remote management also combines edge computing together with existing cloud computing, allowing data to cross physical boundaries in the desired way, making application development and deployment more agile.

In order to ensure the cohesion of the code, we created a new repository for Baetyl-Cloud at https://github.com/baetyl/baetyl-cloud/. The first Baetyl-Cloud official release will provide a wide range of management capabilities by its OpenAPI:

  • Edge node management: support for multi-device group management, tag-based application synchronization, node information and application information collection and display.
  • Application deployment management: Supports deploying container applications, function calculations, and AI inference services by tag.
  • Configuration management: Supports management of nodes, functions, secrets, certificates, and container repository.
  • Batch management: Use a pre-prepared configuration to pre-install a large number of devices for out-of-the-box use.

Another important feature in Baetyl 2.0 is the Cloud Native support. We changed the underlying runtime of Baetyl from Docker to Kubernetes, and at the same time changed the way Baetyl main program is run, making it a container instance with administrative privileges running in Kubernetes. This change will bring many benefits to developers, including:

  • Updatable main program. In the original model, the Baetyl system itself needs to be updated manually or using the operating system package manager, which inevitably requires the operator to obtain a console. The new model considers “system updates” as part of Baetyl OTA, which will make edge devices can always keep in touch with the latest security update and bug fixes.
  • Multi-container applications that can be updated separately. In the original model, although each container is a completely independent service, the upgrade needs to be carried out together, and the operator cannot define the runtime dependencies between services. The new model leverages Kubernetes’ rich application definitions and enables each service to be independently deployed and upgraded, which will allow edge devices to have more diverse functions.
  • Future support for edge clusters. In the original model, limited to the capabilities of Docker, a Baetyl instance could only be deployed on a single device. The new model enables Baetyl instance to be distributed on multiple different work nodes by the orchestration capabilities of Kubernetes which can not only improve the total computing power, but also obtain higher availability.

Behind these new functions, we have also redesigned the communication protocol between Baetyl and Baetyl-Cloud, which combines the declarative resource definition style of Kubernetes and the device shadow mechanism of the IoT.

Declarative resource definition implements an idempotent distributed communication method, which ingeniously guarantees the consistency of resources in the entire distributed system. However, this method relies on high-quality network conditions. In edge computing scenarios with high latency, packet loss, and unscheduled network interruptions, a lighter communication mechanism suitable for unstable networks is needed.

For this reason, Baetyl-Cloud will convert the declaration of resources into the status expectation of the device shadow and continue to send notifications to Baetyl devices with MQTT message. Baetyl device decodes and uses the resource declaration and then reports the new device shadow status with MQTT message too. Through this method, we can always synchronize the cloud and the edge correctly under weak network conditions.

The above new features will be available immediately with the official release of Baetyl 2.0. Click here for more information.

Other resources for Baetyl include: