Fleet deployment

Once you have a single machine working, fleet deployment is how you scale to tens, hundreds, or thousands of machines. Viam provides tools for every stage of fleet lifecycle management: templatizing configuration, provisioning new devices, deploying software and ML models, managing updates, and automating operations.

How fleet deployment works

Fleet deployment in Viam is built on three core mechanisms:

Fragments are reusable configuration templates. You create a fragment once with all the components, services, modules, and settings a machine needs, then apply that fragment to every machine in your fleet. When you update the fragment, every machine that uses it gets the update. Fragments support variables for per-machine customization, version pinning for controlled rollouts, and overrides for device-specific adjustments.

Provisioning automates the first-boot experience. You install viam-agent on a device during manufacturing with a defaults file that specifies which fragment to use. When the end user powers on the device, viam-agent creates a WiFi hotspot or Bluetooth connection, the user provides network credentials (through a mobile app or captive portal), and the machine automatically configures itself from the fragment.

The module registry stores versioned software packages (modules and ML models) that machines download on demand. When you upload a new version of a module or model, machines configured to track that version update automatically. Maintenance windows let you control when updates are applied so machines are not interrupted during operation.

What you can do

TaskGuide
Create reusable config templates for your fleetReuse configuration
Set up zero-touch device provisioningProvision devices
Help end users connect new devicesEnd-user device setup
Deploy modules to machines through fragmentsDeploy software
Deploy ML models across your fleetDeploy ML models
Control software versions and update timingUpdate software
Schedule automated tasks on machinesSchedule automated jobs
Tag machines with custom metadataAdd custom metadata
Configure system-level network and agent settingsSystem settings
Change a deployed machine’s WiFi networkChange network