Updating software

By default, devices connected to an App Store can check for updates every six hours. Should a software update be available within this interval, connected devices update automatically, meaning software is always secure. This update frequency can be modified to schedule updates at a time convenient to the user of the device (for instance, updating during scheduled downtime periods for devices in a factory).

Transactional, OTA, delta updates

The IoT App Store harnesses the power of transactional, over-the-air updates. This means that if for any reason an update pushed to a device fails, the software will roll back to its last stable state. Transactional updates make updating software worry-free, without risk of failure, which is a huge advantage when managing devices in the field. Over-the-air (OTA) updates serve devices distributed across the world.

Our technology implements delta updates. This means that whenever there is a new release, only the code that has changed will be downloaded, not the entire application code. By using delta updates, the amount of data downloaded on each release and the quantity of storage space required on the device is minimised. This in turn reduces the time taken for an update to be implemented.

Release management

Software updates are not necessarily applied to devices when they are fetched automatically. You can determine what specific software revisions get applied to your fleet. Decoupling software updates from installation allows time for testing and validating new revisions before they are applied. The Snap Store Proxy provides a way to override revisions of specific snaps for all connected devices, and allows you to execute updates in an environment with limited or no network access.

The ‘Releases’ dashboard from snapcraft.io
The ‘Releases’ dashboard from snapcraft.io

Channels define which release of a snap is installed and tracked for updates. A channel consists of, and is subdivided into, tracks, risk-levels and branches:

  • Tracks enable snap developers to publish multiple supported releases of their application.
  • Risk-levels reflect the stability of a snap.
  • Branches help with bug-fixing.

After a snap has been created and released to the Snap Store, its published revisions can be moved between channels from both the command line and from the Snap Store web UI.