Planning releases based on data costs

How to handle/estimate the data costs of software updates?

I’m interested in hearing any strategies users/the Balena team recommend for handling software updates to deployed devices when data costs/transmission caps are a limiting factor.

Example

For example, assume you have 5 devices deployed with a 200 Mb monthly transmission limit.

If each month we have to dedicate 100 Mb to generalized transmission costs (communication, etc) then we have a remaining 100 Mb to fit our software updates.

The problem

The problem is that we don’t know, until the update has completed, how much data will be needed to update the devices. Depending on how the container delta goes, we may need a lot of data or comparatively little.

One potential solution

One way this could be solved is if there were a staging area (or branch) on the balenaCloud endpoint that could be pushed to, but would require some sort of interaction (through the dashboard or elsewhere) before pushing the software update to the application. This way the container could build, the delta size could be displayed, and the user could choose whether and when they want to push the update.

Other approaches?

Are there any other approaches that users have found/scripts that can help with this?

Hello, customers and users have had great success in controlling updates by using the scripts from this project: https://github.com/balena-io-projects/staged-releases

Personally, I would recommend a plan larger than 200MB unless you tightly control the update sizes and the network is extremely reliable.

1 Like

Excellent, thank you