Fleet deployment | Viam Documentation

Fleet deployment

You have a single machine working. Now you need 10, or 100, or 1,000 machines running the same software with the same configuration. Fleet deployment is how you get there without configuring each machine by hand.

Three properties change when Viam runs your fleet:

Three core mechanisms

Viam’s fleet deployment is built on three mechanisms that work together:

Fragments: configuration templates

A fragment is a reusable block of configuration. You define the components, services, modules, and settings a machine needs in a fragment, then apply that fragment to every machine in your fleet. When you update the fragment, every machine that uses it receives the change.

Fragments support three customization mechanisms:

Provisioning: automated first-boot setup

For machines you ship to customers or deploy in the field, provisioning (sometimes called zero-touch 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 someone 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 configures itself from the fragment automatically.

The module registry: versioned software delivery

Modules and ML models are stored as versioned packages in the Viam registry. When you configure a module or model on a machine (directly or through a fragment), the machine downloads the correct version for its platform. When you upload a new version, machines configured to track that version update over the air automatically. Maintenance windows let you control when updates happen so machines are not interrupted during operation.

What you can do

Task Guide
Create reusable configuration templates Reuse configuration with fragments
Set up automated device provisioning Provision devices
Help end users connect new devices to WiFi End-user device setup
Deploy modules to machines over the air Deploy software
Deploy ML models across your fleet Deploy ML models
Control when and how software updates reach machines Manage versions
Schedule automated tasks on machines Schedule jobs
Tag machines with custom key-value data Add custom metadata
Configure network, tunneling, and system settings System settings
Change a deployed machine’s WiFi network Change network

How fleet deployment fits with other sections