I would like to share another project with the community called open-balena-delta, which is a delta update server for
open-balena. The goal of this project is to optimize the device update process, resulting in significantly less traffic to devices when downloading images.
Traditional updates result in devices re-downloading all layers after the point where a change is made in the dockerfile, even if those subsequent layers have not changed.
open-balena-delta utilizes balena-engine (v3 delta updates) or rsync (v2 delta updates) to do a binary compare of the image, and only result in downloading of the changed data relative to the image already installed on a device.
To utilize the
open-balena-delta project, you will need to integrate it into your
open-balena instance, ideally at the time of installation (or re-installation) but it is also possible to add in after the fact, though you’ll need to follow the necessary configuration steps outlined on the github page. I have integrated the configuration and deployment steps into open-balena helm scripts for thoes running
open-balena on k8s.
While I will continue to build out this project and post updates, I would welcome any contributions from the community to accelerate the effort. And lastly, a huge thank you to the balena team for providing this amazing product that we are building upon and supporting the open source community who uses it.