ARNEIS - Software Architecture
This document details the planned Software Architecture that will be developed for the ARNEIS project.
The software architecture of the ARNEIS project will be based on microservices running on the ARNEIS Kubernetes cluster.
Architecture of the ARNEIS cluster
The ARNEIS cluster is based on Kubernetes.
For simplicity we chose to deploy the ARNEIS cluster using K3s.
K3s (or “Lightweight Kubernetes”) is a simplified installation of the Kubernetes distribution built for IoT and Edge computing.
K3s is an Open Source project started and maintained by Rancher.com (now part of SUSE).
Planned topology of the ARNEIS K3s cluster
Server Node[s]
VM arneis-vm01
(optional) 2x additional VM to provide High Availability?
Agent Nodes
The same host acting as main K3s server (primary agent)
VM arneis-vm02 on the cloud
RPi4 on each instance of ARNEIS edge system
Services to be deployed on the ARNEIS cluster
The following services are expected to be deployed on the ARNEIS cluster:
Terminate HTTPS (Traefik Proxy instance built into K3s)
Web server for ARNEIS documentation (replica of https://arneis.readthedocs.io)
Database for ARNEIS backend service (alternative: MongoDB instance at https://www.mongodb.com/cloud/atlas/)
ARNEIS backend service (Node.js + Koa - possibly based on some publicly available boilerplate)
ARNEIS customer frontend (static site developed in Next.js)
Service running on the RPi4 for controlling the OAK-D-Lite (Python3?)
Service running on the RPi4 for controlling the LEGO® Technic® Bluetooth Hub (Python3?)