# Environments

An application can be deployed to a zone, which is a combination of an environment and a region. This explains the rules governing the various environments. A list of all zones is also available.

NameDescriptionExpiryCluster sizes
dev Used for manual development testing. 14 days 1
perf Used for manual performance testing. 7 days min(3, spec)
test Used for automated system tests. 2 hours 1
staging Used for automated staging tests. 6 hours min(max(2, 0.1 * spec), spec)
prod Hosts all production deployments. No expiry max(2, spec)

## Production

Deployments in prod must have at least one more node than required to handle peak load. A cluster is a container or content cluster, and a regular application has a container and a content cluster. A minimal, typical prod deployment therefore has 4 nodes.

## Dev and Perf

dev and perf are deployed to directly as part of development or testing.

In order to easily deploy application packages from prod applications, resources are downscaled - see Cluster sizes above. To override this downsizing, specify environment and region variants, like:

<nodes deploy:environment="perf" count="5"/>
Setting environment explicitly enables exact node count.

### Vespa version

In dev and perf, the latest active Vespa version is used when deploying. An instance is not upgraded, unless deployed to. This means that some times, a deploy takes longer than normal, as it invokes a Vespa upgrade before deploying the application package.