Next step after using S-Soil MTEC-02B sensor in Milestone 2: Outdoor single sensor and saving telemetry data via Fledge software framework we are going to setup a framework where developers can add new sensors from scratch and build a new software stack to provide secure, private, zero-touch deployments to a subset of Edge Nodes (IoT devices).
RPi4 board will be used as Edge Node.
Deployments are distributed via completely customised Edge Server and can be deployed locally on developer workstation, in cloud infrastructure or on premises.
All components are open sourced and can be reconfigured and customised, interested parties may use any cloud infrastructure which support containerised servers deployments i.e. GCP, AWS, Azure, IBM Cloud, Alibaba Cloud, Digital Ocean, Oracle Cloud, VMware Cloud, Cisco Cloud.
In this case the containerised services software is deployed with Open Horizon to RPi4 board.
MacOS/Linux based developer host with installed Docker Desktop (TBD: add OCI compatible alternatives)
Containerised Architecture has been selected to build an isolated software components for Edge Node, Edge Server as well as for development and deployment tools.
It can be used without restriction, including without limitation to build isolated proprietary ecosystem for IIoT device management and zero-touch secure device onboard.
In this milestone container images are based on open source components to display, debug and analyse data from Edge Node with connected S-Soil MTEC-02B sensor.
From the software components structure of IoT device there are static BSP image and dynamic services which are deployed remotely to Edge Server and downloaded by Edge Nodes.
Stack services are managed by Edge Server and deployed automatically to device fleet according to business policies rules (deployment by edge node id is presented in this example) after device has been onboarded.
Edge Node should be pre-configured with BSP image, so the device could update itself after the boot and later when new services are uploaded and published.
The stack consist of one or more preconfigured and tested software components which are running in isolated containers on the board and managed by Deployment Agent.
To provide more secure board management none IP ports are exposed from the board outside in production (this is configured when initial BSP image for the board is created).
Development tools is a docker image it's intended to:
A single Edge Server (based on Open Horizon) may manage/update more than 10k of clusters or stand alone IoT devices acting as Edge Nodes.
Each Edge Node may control a dozens of wired or wireless Edge Devices (Arduino, STM32, ESP32, etc.) or sensors directly.
Here is a top view of ecosystem:
Also with added AI services, Edge Node may act as distributed AI node with federated learning capabilities.
Here is how the system components are deployed and updated:
1. Create OS image with BSP installed and create disk image to be used in Edge Node
2. Deploy and run Edge Server
3. Update software stack on the Edge Node by building container images, uploading them to private registry server
(or public registry available via DockerHub, Amazon ECR, Google GCR, Microsoft ACR, etc.)
An Edge Node software stack can be any set of:
Some open source data exporters to consider are - telegraf, node-exporter, statsd, tcollector, collectd, cadvisor, promtail.
Stack can be single or multiple containerised services working together and incorporating designed business logic.
sudo ./write_bsp_image example-edge-node
./start_local_edgeserver
./create_stack ssoil-mtec-02b-single
./build_and_deploy ssoil-mtec-02b-single example-edge-node