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.
The previous article introduced the cloud management virtualization device solution. This article will describe the Nebula project, a unified management of containerized devices and edge applications and data analysis cloud services.
Project Nebula is designed based on the following key ideas:
- Agnostic to device CPU architecture, supporting both x86 and ARM;
- Agnostic to edge application frameworks, supporting EdgeX Foundry and other frameworks that can be packaged and run;
- Agnostic to data analytics services, supporting on-premise and cloud deployment;
- Support small to large scale deployment;
- Support end-to-end multi-tenant operation model from device to cloud.
Nebula supports EdgeX Foundry framework, and we already published a live test bed at https://188.8.131.52/. Those who are interested in Nebula could contact firstname.lastname@example.org to register for a trial, installation and user guides with detailed information.
Nebula is designed in containerized micro-service architecture, and is installed by default in OVA format. Similar to Pallas architecture introduced in the previous article, although Nebula package is encapsulated in OVA, it does not depend on any specific virtualization infrastructure or cloud platform to be installed. Technically, it could completely be converted to other formats, or install on any cloud platform that supports OVA format.
The basic resource requirement of Nebula is:
- CPU: 2 virtual CPU cores
- Memory: 8GB
- Storage: 150GB
Its installation process is similar to other normal OVA, and users can log in as the administrator after completion.
After the installation is complete, users can log in to the vendor portal as an administrator according to the prompt address in VM console as above and perform user management.
In Nebula, edge application services are defined as following: A Service can contain multiple Versions, and a Version contains multiple Service Components.
For each service created, it is necessary to determine parameters and resource requirement such as version, CPU platform, memory, storage, network, etc., to facilitate verification in full life cycle management.
Vendors can upload a set of EdgeX Foundry applications packaged in container images, and define categories, dependencies between containers, resource parameters, startup order, and parameters of connected data analysis cloud services.
After the release, users can see and deploy these edge services.
Before users actually deploy EdgeX Foundry applications, they must first register the device they would use into their Nebula accounts.
Users need to download Nebula agent program
nebulacli.tar by themselves and run it on the device to complete the registration. This registration step could be manual, or it can be automated in batch operations for OEM.
./install.sh init -u user-acccount -p user-account-password -n user-device-name
After completing the device registration, users can install and manage EdgeX Foundry or other edge applications released in advance on Nebula service by vendors. Users can find proper applications in the catalog.
After selection, users can further specify parameter settings of the deployment in the drag-and-drop wizard, which maps to parameter values defined by the vendor before.
After all parameters are set, the actual deployment can be carried out, either in batch or multiple times to multiple devices. After deploying EdgeX Foundry applications, users can monitor device resources and application run time status in real time.
Nebula provides complete Restful API documentation, with which users can automate operations to deploy EdgeX Foundry applications in a large scale.
From the second article to this article, I introduced the basic method of building and managing virtualized devices and containerized devices from the cloud. But I did not answer the question of how to deal with single-point device failure. Compared with the traditionally inflexible and inefficient full redundancy or external NAS solution, the next article will introduce device clusters on hyper-convergence architecture.