Status

Presented slides



Project Proposal - Project Introduction:

Required Information

Responses (Please list N/A if not applicable)

Name of Project

OpenEdge

Project Description (what it does, why it is valuable, origin and history)

What does OpenEdge do?

OpenEdge's goal is to provide a general-purpose operating system for edge computing, abstracting different types of hardware facilities and device capabilities into a standardized container runtime environment and API, enabling efficient management of application, service, and data flow through a remote console both on cloud and on prem.

OpenEdge will also equip the edge operating system with the appropriate toolchain support, reduce the difficulty of developing edge calculations with a set of built-in services and APIs, and provide a graphical IDE in the future.


Why it is valuable?

With modern container and serverless design concepts and engineering tools optimized for stand-alone and small multi-machines, OpenEdge enables a variety of edge hardwares and cloud native applications to work better together.

The OpenEdge framework itself provides an edge computing platform on most common chips and operating systems, while also going to provide a lighter and more secure edge operating system directly, which will significantly reduce the cost of ownership.

OpenEdge also includes several built-in services like MQTT server and client, Function-as-a-Service, as well as planned streaming and edge storage and databases. Durning this year, OpenEdge will provide SDK in both C/C++ and Golang interface with a series of features such as image acquisition, ML inference, speech recognition/synthesis and geographic location. These will help developers to innovate better.

The OpenEdge team will also work with the Global Platform organization to provide standardized security mechanisms to secure device information through dynamic activation, device certificates, TEE and end-to-end security, while providing secure commercial authorization mechanisms and rusted intellectual property protection technology for a variety of potential enterprise/commercial applications.


Origin and History

OpenEdge is splited as an open source project from Baidu's edge computing solution called Baidu IntelliEdge/BIE in Dec. 2018.

The former BIE is launched in Sept. 2017 as an On-prem IoT solution with Cloud remote management. With the deepening of the application scenario, we believe that the market needs a more foundamental and versatile computing platform to carry more different types of applications, so we decided to open source and donate the core functions of BIE to the community.

Statement on alignment with Foundation Mission Statement

OpenEdge is just aiming to "Building an Open Source Framework for the Edge":

  • Abstract different forms of hardware to a unified container environment, from IOT devices to distributed clusters, even embedded devices;
  • Support open application models, including plain OCI container and serverless modes such as FaaS and Streaming;
  • Provides a standardized remote management model with compatbility to K8S primitives.
High level assessment of project synergy with existing projects under LF Edge, including how the project compliments/overlaps with existing projects, and potential ways to harmonize over time. Responses may be included both here and/or in accompanying documentation. 

EdgeX and OpenEdge seems to have overlaps on some runtime features but we are likely to target different market opportunities. OpenEdge will focus more on data processing capabilities and would like to be the computing infrastructure in as many scenarios as possible. EdgeX has a wealth of industrial device control capabilities that may play a more important role in data acquisition and device control scenarios.


We believe that OpenEdge and Akraino will have good cooperation opportunities in the 5G and MEC fields.

Link to current Code of Conduct

https://github.com/baidu/openedge/blob/master/code-of-conduct.md

Sponsor from TAC, if identified (a sponsor helps mentor projects)

Leding LI, Baidu

Project license

Apache-2.0

Source control (GitHub by default)

https://github.com/baidu/openedge, going to switch to openedgetech/openedge

Issue tracker (GitHub by default)

https://github.com/baidu/openedge, going to switch to openedgetech/openedge

External dependencies (including licenses)


NameLicense
github.com/256dpi/gomqttApache-2.0
github.com/creasty/defaultsMIT
github.com/deckarep/golang-setMIT
github.com/docker/distributionApache-2.0
github.com/docker/dockerApache-2.0
github.com/docker/go-connectionsApache-2.0
github.com/docker/go-unitsApache-2.0
github.com/etcd-io/bboltMIT
github.com/golang/protobufBSD-3-Clause
github.com/gorilla/muxBSD-3-Clause
github.com/jolestar/go-commons-poolApache-2.0
github.com/jpillora/backoffMIT
github.com/mholt/archiverMIT
github.com/orcaman/concurrent-mapMIT
github.com/sevlyar/go-daemonMIT
github.com/shirou/gopsutilBSD
github.com/sirupsen/logrusMIT
github.com/spf13/cobraApache-2.0
github.com/stretchr/testifyMIT
golang.org/x/nethttps://go.googlesource.com/net/+/master/LICENSE
google.golang.org/grpcApache-2.0
gopkg.in/natefinch/lumberjack.v2MIT
gopkg.in/tomb.v2https://github.com/go-tomb/tomb/blob/v2/LICENSE
gopkg.in/validator.v2Apache-2.0
gopkg.in/yaml.v2Apache-2.0


Release methodology and mechanics

Agile, monthly release

Names of initial committers, if different from those submitting proposal

Leding LI, Baidu

Danfeng LU, Baidu

Youjun YUAN, Baidu

Mengtao WANG, Baidu

Xiaochen WANG, Baidu

Jian ZHU, Baidu

Current number of code contributors to proposed project12
Current number of organizations contributing to proposed projectBaidu, Inc.
Briefly describe the project's leadership team and decision-making process

Leding LI, Chief architect of Baidu Cloud IoT


OpenEdge's original code and feature design is derived from Baidu's BIE project.

OpenEdge's current roadmap will continue to move toward the goal of "providing a cloud-native experience on edge hardware." Specific features and priorities are tailored to the needs of users, developers, partners, and application customers. Some of the features come from the cooperation with Baidu's edge computing business, which have relatively clear application scenarios and higher priority.

Preferred maturity level (see stages here)OpenEdge is applying for Growth stage.
For Projects applying at the Growth (Phase 2) or Impact Stage (Phase 3), please outline how your project successfully meets/exceeds the requirements as defined under each category. Responses may be included both here and/or in accompanying documentation.

Growth stage requirements:

  • Development of a growth plan, to be done in conjunction with their project mentor(s) at the TAC.
  • Document that it is being used in POCs.
  • Demonstrate a substantial ongoing flow of commits and merged contributions.
  • Demonstrate that the current level of community participation is sufficient to meet the goals outlined in the growth plan.
    • We have 11 fulltime contributors hired by Baidu focusing on OpenEdge project.
  • Demonstrate evidence of, or a plan for, interoperability, compatibility or extension to other LF Edge Projects.
    • We have a clear plan to run OpenEdge on 5G/MEC cluster constructed by Akraino.
  • Since these metrics can vary significantly depending on the type, scope and size of a project, the TAC has final judgement over the level of activity that is adequate to meet these criteria.
    • Ok
  • Receive a two-thirds supermajority vote of the TAC and a majority vote of the Governing Board to move to Growth Stage.
    • Ok
List of project's official communication channels (slack, irc, mailing lists)

mailto:contact@openedge.tech, going to switch to mailing list soon

Link to project's websitehttps://openedge.tech/

Links to social media accounts

Wechat: OpenEdge开发交流群1, OpenEdge开发交流群2, OpenEdge开发交流群3

Planning to create Facebook, Twitter & Slack account

Existing financial sponsorshipBaidu, Inc.
Infrastructure needs or requestsContainer
Currently Supported Architecturex86, x86-64, armv7, armv8, mips, mips64
Planned Architecture Supportpowerpc, risc-v
Project logo in svg format (see https://github.com/lf-edge/lfedge-landscape#logos for guidelines)https://github.com/baidu/openedge/blob/master/doc/artwork/logo.svg
Trademark statusN/A
Does the project have a Core Infrastructure Initiative security best practices badge? (See: https://bestpractices.coreinfrastructure.org)No
Any additional information the TAC and Board should take into consideration when reviewing your proposal?

OpenEdge has already got over 900 stars on github within 6 month, which is 2nd in the same class.

A series of PoC have been published on 2019 CES show.



Stage 1: At Large Projects (formerly 'Sandbox')


CriteriaData

2 TAC sponsors to champion the project & provide mentorship as needed


A presentation at an upcoming meeting of the TAC, in accordance with the project proposal requirements


Adherence to the Foundation IP Policy


Upon acceptance, At Large projects must list their status prominently on website/readme





Project Proposal - Taxonomy Data:

Functions (Provide, Consume, Facilitate, or N/A; Add context as needed)

Functions

(Provide, Consume, Facilitate, or N/A; Add context as needed)

APIsProvide
Cloud ConnectivityProvide, not only Baidu Cloud
Container Runtime & OrchestrationConsume
Data GovernanceProvide
Data ModelsN/A
Device Connectivity

Provide, MQTT protocol

Filters/Pre-processingProvide
LoggingProvide
Management UIProvide, not determined yet
Messaging & EventsProvide
Notifications & AlertsProvide, under developing
SecurityProvide
StorageProvide


Deployment & Industry Verticals (Support, Possible, N/A; Add context as needed)

Deployment Type

(Support, Possible, N/A; Add context as needed)

Customer Devices (Edge Nodes)Support
Customer Premises (DC and Edge Gateways)Support
Telco Network Edge (MEC and Far-MEC)Support
Telco CO & RegionalSupport
Cloud Edge & CDNsSupport
Public CloudSupport
Private CloudSupport


Deployment & Industry Verticals (✔ or X; Add context as needed)

Directly applicable Industry/Verticals use cases

(✔ or X; Add context as needed)

Automotive / Connected Car
ChemicalsX
Facilities / Building automation
ConsumerX
Manufacturing
Metal & Mining
Oil & Gas
PharmaX
Health CareX
Power & Utilities
Pulp & PaperX
Telco Operators
Telco/Communications Service Provider (Network Equipment Provider)
Transportation (asset tracking)
Supply Chain
Preventative Maintenance
Water UtilitiesX
Security / Surveillance
Retail / Commerce (physical point of sale with customers)X
Other - Please add if not listed above (please notify TAC-subgroup@lists.lfedge.org when you add one)


Deployments (static v dynamic, connectivity, physical placement) - (✔ or X; Add context as needed)

Use Cases

(✔ or X; Add context as needed)

Gateways (to Cloud, to other placements)
NFV InfrastructureX
Stationary during their entire usable life / Fixed placement edge constellations / Assume you always have connectivity and you don't need to store & forward.
Stationary during active periods, but nomadic between activations (e.g., fixed access) / Not always assumed to have connectivity. Don't expect to store & forward.
Mobile within a constrained and well-defined space (e.g., in a factory) / Expect to have intermittent connectivity and store & forward.
Fully mobile (To include: Wearables and Connected Vehicles) / Bursts of connectivity and always store & forward.X


Compute Stack Layers and Cloud Stack Layers (architecture classification) - (Provide, Require, or N/A; Add context as needed)

Compute Stack Layers

(Provide, Require, or N/A; Add context as needed)

APIsProvide
ApplicationsProvide
FirmwareProvide, OS as a Firmware
HardwareRequire
OrchestrationRequire
OSProvide
VM/ContainersRequire, vm is optional


Cloud Stack Layers

Does Proposed Project Currently Include (Yes, No or Planned/Roadmap)

ApplicationsYes
Configuration (drive)Yes
Content (management system)Yes
IaaSNo
PaaSYes
Physical InfrastructureNo
SaaSNo