We are looking into using mender for OTA updates for our portable backup devices. We want the update process to be generally user-driven and are considering the option of creating a new deployment for every device (for every update). Will creating this many deployments (as opposed to batching devices into fewer deployments) pose a significant overhead that would lead to scalability issues?
I think the main concern would be that the MongoDB database fills up.
But since MongoDB is a good solid and well maintained database. You could easily write a simple batch job to clear out old deployment records every once in a while.
Or you could upgrade to a sharded MongoDB setup I guess.
I would also image that you lose out a bit in the the GUI, since the deployments are not in batches and they will pile up fast and hard to trace/manage.
The actual download should not be a problem and is the same as it would have been in a “batched” deployment.
In general this should not be a problem, I am aware of users with thousands of devices that create individual deployments for each device (automated, of course).
Also, we have an upcoming feature in the mid-term “dynamic deployments” which should resolve issues like these. In that case you’d just create one deployment and devices will join/leave that deployment based on dynamic conditions (like users confirming, etc.).