Walkthrough of Over-the-update strategies

OTA update serves to

  • End sensor nodes
  • Edge gateways

Over the air update generally includes update of following types (loosely put in order of update size).

  1. Configurations
  2. Source code of applications
  3. Packages source code depends on – apt, deb or pip
  4. Operating System release

What, Why and How of an OTA update

WHAT Configurations Source code Dependencies of source code Operating System
WHY
  1. Change in business logic.
  2. Software update needs new configurations.
  1. Feature releases
  2. Bug Fixes
  3. Security patches
  1. Security
  2. Application dependencies
  3. OS related bug fixes
  1. Security patches
  2. Kernel upgrade
HOW Device Shadow Service Git, application zipped packages(.zip, tar.gz) Package managers

  1. Aptitude(Debian)
  2. PIP (Python)
  3. NPM(NodeJS)

 

Update Strategy

Resin.io has blogged about a update strategy for devices (which use their OS – balena-os).

In summary, they talk about a Supervisor application/daemon orchestrates an update on device based on update strategy.

Any update of application may involve following two steps:

  1. Downloading or fetching the latest update.
  2. Deploying the latest update on device.

Update strategy could be based on combination of Download and Deploy.

  1. Download and then Deploy on trigger.
  2. Download and then Deploy immediately without waiting for a trigger.

Update orchestrator can in the background periodically check for updates and based on the strategy set may download the update or wait for even download.

Examples of update strategies

Update strategies can be seen in action for other applications in our devices – mobile and desktop.

Some examples of update strategies in the industry apart from IoT are detailed below.

Android

In Android OS, Play store orchestrates update of applications.

  • It informs user that there exists an update for an app.
  • Based on user discretion, it updates the app.
    • Some cases, it may just download the latest version (based on permissions an app possess)

Docker in macOS

Docker version update in MacOS. Docker daemon orchestrates that there exists a new version

docker_1

It details on the release notes and informs the user that there is a new version with some form of semantic versioning.

Once the user approves “Install Update”, it downloads the latest update.

docker_2

Only based on user’s discretion does it restart the docker daemon to deploy the new version of Docker app on MacOS.

docker_3

On clicking on “Check for Updates”, we see that Docker orchestrator reports the user that latest version is already present.

docker_4

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.