nerves-hub / nerves_hub_web

Manage firmware updates for Nerves devices
https://nerves-hub.org/
Apache License 2.0
177 stars 67 forks source link

Support rolling updates #76

Open fhunleth opened 6 years ago

fhunleth commented 6 years ago

Instead of requesting all devices to update simultaneously, it's useful to roll out the updates. This has two benefits:

  1. Should an update break a device or cause a support call, it gives time to pause the deployment.
  2. It can reduce the pressure on any network bottlenecks since the .fw files are large.
joshk commented 2 months ago

I've spoken to @fhunleth and @lawik about this topic. We discussed something akin to a CI deployment pipeline with different stages and success criteria to progress further.

I'm going to keep this issue open as this would be a major improvement to rolling out new firmware to large device fleets.

oestrich commented 2 months ago

fwiw we do support rolling updates now as described above. That’s what the deployment orchestrator does

joshk commented 2 months ago

Thanks, @oestrich. From my understanding, the current rolling updates don't include a way to monitor health after an update or to automatically stop the update if conditions aren't met. Is that correct?

oestrich commented 2 months ago

It will, the orchestrator hands out the inflight update and then the device channel resolves the update which uses the failure rate to block out updates. So it's not entirely straight forward but its there

joshk commented 2 months ago

Ok, so if 100 devices can't install the lastest update in a deployment the deployment orchestrator will stop updating all other devices?

And I'm assuming this is based on cases where there was a failure to download the fwup file and use fwup to install the update, but not cases where a device goes into an unhealthy state and has to rollback?