Author | Chief engineer of VMWare: Liu Wuming; Graduate student of SEL Laboratory of Zhejiang University: Chen Tao
Review & proofread: Xiyang, Haizhu
Editing & Typesetting: Wen Yan
background
Edge computing is different from the traditional central cloud computing mode, and is widely used in automobile, agriculture, energy, transportation and other industries. Gartner divides Edge computing into three parts: “Cloud”, “Far Edge” and “Near Edge”, which correspond to common public Cloud/private Cloud, IDC/CDN node under Cloud and device terminal respectively. That is to say, “cloud, edge, end” three-layer structure. As computing power and services gradually sink, the network environment becomes more and more complex, device resources become more and more limited, and device architectures become more and more abundant. These changes pose great challenges to o&M management of edge nodes and devices, and improvement of edge application reliability and resource utilization.
Recently, OpenYurt has worked with the EdgeX Foundry community to complete integration docking: Starting with v0.5.0, OpenYurt will support deployment and management of the EdgeX Foundry, as well as the management of end devices in a cloud-native manner. Together, the two companies will help developers easily and efficiently solve the challenges of end device management and operation in the Edge computing scenario of the Internet of Things.
1. OpenYurt: non-invasive edge cloud native intelligent platform
OpenYurt is built based on native Kubernetes, which was open source by Ali Cloud in May 2020 and selected into CNCF SandBox project in September of the same year. It is the industry’s first non-invasive edge computing cloud native open source platform. OpenYurt flagship “cloud edge integration”, the concept of edge to calculate the complicated network environment of the scene, large-scale application delivery, operational difficulties such as pain points, provides the edge autonomy, cloud edge operational channel, unitized deployment, one-click cluster conversion ability, through the cloud edge node unified management, make the edge nodes have the same capacity with the clouds, Help developers easily complete large-scale application delivery, operation and maintenance, and control on massive edge resources.
2. EdgeX Foundry: Edge Iot management platform
EdgeX Foundry is an ecosystem powered edge Iot plug and play, open software platform. It is highly flexible and scalable, which can greatly reduce the complexity of application interoperability with edge devices, sensors and other hardware. EdgeX Foundy uses a layered and service-oriented design, from the bottom up, device services, core services, support services, application services, and security and management secondary services. EdgeX Foundry’s layering and services provide a two-way transformation engine between edge devices/nodes and cloud/enterprise applications. Sensor and node data can be transmitted to the application in a specific format, and application instructions can be delivered to edge devices.
- Device Services layer: Device services connect “things” — sensors and devices — to the rest of the EdgeX. Equipment services are edge connectors that interact with things, including but not limited to alarm systems, heating and air conditioning systems in homes and office buildings, irrigation systems, drones, automated transportation (for example, some rail systems), and so on.
- Core services layer: Core services include core database, core metadata, configuration and registry, and core command/control services. They are a layer of abstraction for various devices, storing and collecting sensor data and metadata, as well as command/control and configuration from applications.
- Support service layer: mainly includes alert service, notification service, scheduling service, and rules engine.
- Application services layer: Application services are responsible for extracting, processing, transforming, and sending sensing data from EdgeX to user-selected breakpoints or processes. EdgeX now provides many examples of application services to send data to some of the major cloud providers.
- Security services layer: Protects data and controls for devices, sensors, and other iot objects managed by EdgeX. EdgeX’s security features are based on open interface, pluggable, replaceable modules.
- Management service: Provides a unified excuse for external management systems to start, stop, restart the Edgex service and obtain the service status or related indicators so that the Edgex service can be monitored.
Expand the capabilities of the end
According to the above introduction, OpenYurt is good at realizing unified management, operation and maintenance of cloud edge resources in a non-invasive way, so that edge nodes have the same capabilities as cloud. However, when the related management capability is extended to the “end” layer, the following problems may occur due to the complex support of heterogeneous resources of the near end device, diverse communication modes and scattered distribution:
- In order to support various edge devices, the existing OpenYurt framework must develop special adapters for each category of devices;
- Existing solutions either change the Kubernetes architecture or significantly modify core components in the process of directly importing the management device, losing some of the upstream Kubernetes features while running counter to the non-invasive concept of OpenYurt.
Starting with v0.5.0, Openyurt and EdgeX Foundry community are deeply integrated in a scalable way, and further cooperate in the areas of edge computing, device management, object model definition, and cloud native IoT, achieving strong synergy of “cloud, edge, and end”. OpenYurt supports terminal device management capabilities through integration with EdgeX Foundry device management platform. The edgex Foundry instance can be deployed with yurt-Edgex-Manager, and the operation and maintenance management channel between the edge device management platform and the cloud can be opened by deploying Yurt-Device-Controller, allowing users to declaratively manage edge devices. To provide users with Kubernetes native management device experience.
OpenYurt V0.5.0 device management solution
1. Deploy EdgeX Foundry using OpenYurt choreography
A Yurt-Edgex-Controller controller is introduced in the latest OpenYurt to manage the Edgex CR. EdgeX CR is an abstraction of EdgeX Foundy deployment in OpenYurt. Users can operate CR to manage EdgeX deployment, update, and delete. No more writing complex Yaml files and Helm Chart.
The user only needs to create a CR of EdgeX, and yurt-Edgex-Controller deploys EdgeX according to the version in the CR and the corresponding Nodepool name. Users can deploy multiple EdgeX in a cluster based on the number of Nodepool. The version of each EdgeX and the included EdgeX service can be configured.
- EdgeX: Is a set of abstractions for EdgeX Foundy deployments, including the version of EdgeX Foundry and the name of the Nodepool that needs to be deployed. The basic EdgeX CR includes eight basic EdgeX services and deployments, plus AdditionalDeployment and Additional Service fields that allow users to deploy any required EdgeX components and third-party applications.
In OpenYurt, EdgeX services are accessed as Kubernetes services, although different EdgeX instances use the same Kubernates service name. ServiceToploy ensures that EdgeX components can only access other components belonging to the same EdgeX instance without cross-access sentiment. Yurt-edgex-controller deploys edgex components in Nodepool using the capabilities of UniteDeployment.
2. Cloud native IoT model
Device information abstraction
To manage devices in the real world, services related to device management need to be abstracted. As a component connecting cloud and edge management platform, Yurt-Device-Controller abstracts three CRDS to map resources on the corresponding device management platform. They are DeviceProfile, DeviceService, and Device:
- DeviceProfile: describes a device type that uses the same protocol and includes general information, such as manufacturer name, device description, and device model. DeviceProfile also defines the types of resources provided by such devices (for example, temperature, humidity) and how to read/write these resources. Each device needs to be associated with a DeviceProfile;
- DeviceService: a cloud mapping of edge connectors that interact with devices. It defines how to connect devices to edge device management platforms, including communication protocols and addresses of devices. Each device needs to be associated with a DeviceService;
- Device: is a mapping of real world devices. For example: Appliances, alarm systems, lighting, sensors, etc. It gives a detailed definition of a specific device, including the associated DeviceProfile (which type of device it belongs to), associated DeviceService (which communication mode it uses), and device-specific properties (such as the switch status of the lighting device, etc.).
Device Management Architecture
By abstracting the above three CRDS, the basic status information of the device can be reflected, and then the corresponding controller can be used to interact with the edge device management platform, and the end devices discovered on the side can be mapped to the cloud in time. At the same time, the Yurt-Device-Controller component synchronizes the device property modification (for example, setting the switch status of the lighting device) in the cloud to the remote device, thus affecting the physical device in the real world. Users only need to declaratively modify the corresponding fields of CRs to achieve the purpose of operation, maintenance and management of complex terminal devices in a cloud-native manner. The following are the three components of YURt-Device-Controller:
- DeviceProfile Controller: It abstracts DeviceProfile objects from edge platforms into DeviceProfile CR and synchronizes them to the cloud. With the support of deviceProfile Controller, users can view, create or delete deviceProfile for edge platform in the cloud.
- DeviceService Controller: It abstracts DeviceService objects from edge platforms into DeviceService CR and synchronizes them to the cloud. With the support of deviceService Controller, users can view, create, or delete deviceService information of edge platforms in the cloud.
- Device Controller: This abstracts Device objects from edge platforms into Device CR and synchronizes them to the cloud. With the support of Device Controller, users can manage device information on edge platform by declaratively modifying cloud Device CR, such as creating devices, deleting devices, and updating device attributes (such as setting on and off lights).
The following is the overall architecture model of the cloud side and end:
The communication range of edge devices is usually limited to a certain network area. Therefore, edge nodes in the same network area can be divided into a node pool, and an Edgex Foundry instance and a Yurt-Device-Controller component can be deployed in each node pool:
- In communication with cloud Apiserver, Yurt-Device-Controller only listens to device objects belonging to the node pool and synchronizes updated information to corresponding devices through the Edgex Foundry instance.
- When communicating with the Edgex Foundry instance, the YurtHub, node pool, and unitized deployment capabilities are multiplexed. The YURt-Device-Controller component only accesses the Edgex Foundry instance in the node pool. The device information in the node pool is abstracted into device, deviceService, and deviceProfile objects and synchronized to the cloud platform.
Community Partnership Programme
In the future, both parties will continue to explore solutions for cloud native edge device management for the IoT industry, and attract more lightweight edge device management platforms to join the OpenYurt ecosystem, making the management of end devices more convenient, efficient and cloud native.
Related links:
1) Yurt-Edgex-Manager: github.com/openyurtio/… 2) Yurt-device-controller: github.com/openyurtio/… IO/EN-US / 4) EdgeX Foundry www.edgexfoundry.org/
Click here to learn about the OpenYurt project now!
For more information, please scan the QR code below or search wechat (AlibabaCloud888) to add cloud native assistant! For more information!