<p>It sounds like you are talking about <a href="https://martinfowler.com/bliki/CanaryRelease.html" rel="nofollow noreferrer">Canary Analysis</a> ? If so, Spinnaker has <a href="https://spinnaker.io/guides/user/canary/" rel="nofollow noreferrer">deployment based on  canary</a> analysis built on, using metrics provided by the application telemetry. To quote the Spinnaker docs:</p>
<blockquote>
<p>Your application might send performance metrics which are published and available by default. You can also install a monitoring agent to collect more comprehensive metrics, and you can instrument your code to generate further metrics for that agent. In any case, you need to have access to a set of metrics, using some telemetry provider, which Kayenta can then use to make the canary judgment.
Support is built in for Stackdriver, Datadog, Prometheus, Signalfx, and New Relic.</p>
</blockquote>
<p>So, you use Spinnaker as a continuous deployment service and instrument the application with one of the supported mechanisms. Canary analysis can then be done to manage the roll-out of new version.</p>

CC BY-SA 4.0
2020-09-23T19:13:47.177Z
Seems forcloud applications. I have client applications on mac/linux/windows. Dont understand how this manages those upgrades
Avba
CC BY-SA 4.0
2020-09-24T04:41:39.633Z
It all turns on how you determine the health of the clients - you mention that they are calling back - this is a form of telemetry. Analysis of the metrics of this telemetry can be used for canary deployments - but you need a controller to decide how many new deployments to pull into production, or in your case, clients to upgrade.
Bruce Becker
CC BY-SA 4.0
2020-09-23T15:38:50.913Z
2020-09-23T15:38:50.913Z
Bruce Becker
<p>I want to rollout software to clients (1m+) devices in a gradual fashion due to high risk. Ideally i would be able to target users based on analytical data i posses and decide if they should receive the upgrade.
Currently we are using our homegrown server calls but they don’t hook to any analytics.
Ive done quite a bit of research and haven’t found venders providing this type of functionality.
Are there platforms (sort of like the “app store”) which have ways to gradually rollout updates to client machines?</p>

<deployment><continuous-deployment><versioning>
Gradual rollout management for client applications
Avba
# Gradual rollout management for client applications

(Asked by: username_0 on 2020-09-23)

I want to rollout software to clients (1m+) devices in a gradual fashion due to high risk. Ideally i would be able to target users based on analytical data i posses and decide if they should receive the upgrade.
Currently we are using our homegrown server calls but they don’t hook to any analytics.
Ive done quite a bit of research and haven’t found venders providing this type of functionality.
Are there platforms (sort of like the “app store”) which have ways to gradually rollout updates to client machines?

**Tags:** deployment, continuous-deployment, versioning


---

## 1 answers

### Answer by username_1 on 2020-09-23. Score: 0

It sounds like you are talking about [Canary Analysis](https://martinfowler.com/bliki/CanaryRelease.html) ? If so, Spinnaker has [deployment based on canary](https://spinnaker.io/guides/user/canary/) analysis built on, using metrics provided by the application telemetry. To quote the Spinnaker docs:

> Your application might send performance metrics which are published and available by default. You can also install a monitoring agent to collect more comprehensive metrics, and you can instrument your code to generate further metrics for that agent. In any case, you need to have access to a set of metrics, using some telemetry provider, which Kayenta can then use to make the canary judgment.
> Support is built in for Stackdriver, Datadog, Prometheus, Signalfx, and New Relic.

So, you use Spinnaker as a continuous deployment service and instrument the application with one of the supported mechanisms. Canary analysis can then be done to manage the roll-out of new version.

> **Comments:**
> **username_0**: Seems forcloud applications. I have client applications on mac/linux/windows. Dont understand how this manages those upgrades  
> **username_1**: It all turns on how you determine the health of the clients - you mention that they are calling back - this is a form of telemetry. Analysis of the metrics of this telemetry can be used for canary deployments - but you need a controller to decide how many new deployments to pull into production, or in your case, clients to upgrade.  

---

