ImageBasedUpgrades

Revision 2 as of 2013-05-02 17:15:13

Clear message

Introduction

With Ubuntu getting ported to more and more mobile devices, the standard update mechanism through apt and dpkg is starting to show some limitations.

As a result, Ubuntu is now looking at supporting an additional way of updating devices that are based on read-only images. For those devices, we're looking at doing image based updates, basically generating new images on the server side with the usual tools (debootstrap, apt, dpkg), then generate deltas between those images and have the client pull the delta and apply it without ever actually dealing with packages.

We don't intend this to become the only way to update Ubuntu machines, and the use of apt/dpkg will remain supported with most devices having some kind of switch to opt out of image based updates and re-enable apt.

Goals

  • Get a common "Ubuntu base system" across as many devices as possible
  • Update that base system through the image based system guaranteeing all devices are identical
  • Do all the actual package installs server-side, reducing CPU/MEM load and update time on the devices
  • Get a very clear split between system, apps and userdata, allowing for very simple data wipe

Features

The basic set of feature that we want to support on all devices using image based upgrades are:

  • Read-only base Ubuntu system with separate read-write data storage
  • Secure delivery of updates made of any number of files (allowing for split device-specific/device-independent bits)
  • Ability to wipe all user data in one shot (factory reset)
  • Flexible update policy working for daily builds just as well as monthly or even yearly updates
  • Flexible update format, allowing for either delta based updates or full image (reformat + unpack)
  • Same update mechanism for any kind of devices with the only bit actually changing being the upgrader code
  • Per-device type procedure for factory initial flash (usually full device image)

Target

The current target for image based updates are Ubuntu Touch devices (phone and tablets) however the design should consider potential extension to other devices.

Details

As this is a rather complex topic, the various pieces have been split into individual pages: