New to balenaCloud but have been playing with a few rpis for a few days. First of all I am very impressed by the work the balena team has put together. I have tested other OTA platforms but none come close to the easiness getting started.
I am looking for some architectural advice specific to the project I am working on.
Basically the project requires 2 or more types of nodes. Let’s think of them as SuperNodes (aka Fog Control Node) and regular Nodes (aka Fog Cell).
Regular Nodes are tasked with acquiring data and performing actions, while SuperNodes provide core infrastructure on the same VLAN.
SuperNodes are primarily high RAM, high Storage (like an RPI 4 8GB with SSD)
Nodes are any kind of lower spec devices down to an RPI Zero
If I understand balena correctly that means 1 project with 2 or more fleets one per node type.
I’d like the first SuperNode on a VLAN to establish the basic infrastructure like MQTT and eg a local InfluxDB instance amongst other things. In the future I can see HA requirements to have at least 2 or more SuperNodes per install that may require some level of coordination.
Any regular Node that joins the VLAN should be looking for a SuperNode and join the local group/mesh. In most cases the nodes will be sending sensor data into the MQTT broker.
I’d like to detect the capabilities of a Node and auto configure as much as possible. Think various HATs that enable sensors and or other IO. Does that require multiple fleets per HAT type?
Already looking at balenaDash & Sense as building block patterns.
Are there any best practices to consider or things to avoid? How do Nodes best look for a SuperNode on the local network? Have to assume DHCP and changing IP addresses on reboot. For example Is there any MQTT based registry that works well in this environment? Other fog computing patterns to consider with balena?
Sorry for the multiple questions - trying to frame out the basics.