1 . baetyl
https://github.com/baetyl/baetyl
Baetyl v2 provides a new edge cloud integration platform, which adopts cloud management and edge operation solutions, and is divided into Edge Computing Framework (this project) and Cloud Management Suite supports varius deployment methods.
There are currently several system applications:
- baetyl-init: responsible for activating the edge node to the cloud and initializing baetyl-core, and will exit after all tasks are completed.
- baetyl-core: responsible for local node management (node), data synchronization with cloud (sync) and application deployment (engine).
- baetyl-function: the proxy for all function runtime services, function invocations are passed through this module.
2. kubeedge
https://github.com/kubeedge/kubeedge
KubeEdge is built upon Kubernetes and extends native containerized application orchestration and device management to hosts at the Edge. It consists of cloud part and edge part, provides core infrastructure support for networking, application deployment and metadata synchronization between cloud and edge. It also supports MQTT which enables edge devices to access through edge nodes.
In the Cloud
- CloudHub: a web socket server responsible for watching changes at the cloud side, caching and sending messages to EdgeHub.
- EdgeController: an extended kubernetes controller which manages edge nodes and pods metadata so that the data can be targeted to a specific edge node.
- DeviceController: an extended kubernetes controller which manages devices so that the device metadata/status data can be synced between edge and cloud.
On the Edge
- EdgeHub: a web socket client responsible for interacting with Cloud Service for the edge computing (like Edge Controller as in the KubeEdge Architecture). This includes syncing cloud-side resource updates to the edge, and reporting edge-side host and device status changes to the cloud.
- Edged: an agent that runs on edge nodes and manages containerized applications.
- EventBus: a MQTT client to interact with MQTT servers (mosquitto), offering publish and subscribe capabilities to other components.
- ServiceBus: a HTTP client to interact with HTTP servers (REST), offering HTTP client capabilities to components of cloud to reach HTTP servers running at edge.
- DeviceTwin: responsible for storing device status and syncing device status to the cloud. It also provides query interfaces for applications.
- MetaManager: the message processor between edged and edgehub. It is also responsible for storing/retrieving metadata to/from a lightweight database (SQLite).
3. openyurt
https://github.com/openyurtio/openyurt
OpenYurt follows a classic cloud-edge architecture design.
- It uses a centralized Kubernetes control plane residing in the cloud site to manage multiple edge nodes residing in the edge sites.
- Each edge node has moderate compute resources available in order to run edge applications plus the required OpenYurt components.
- The edge nodes in a cluster can span multiple physical regions, which are referred to as Pools in OpenYurt.
Summary
My feeling is, all are quite similar, basically centralized cloud management, and some autonomous edge self-managing.