---
layout: docs
page_title: Autoscaling
sidebar_title: Autoscaling
description: |-
  Overview of the Nomad Autoscaler that provides horizontal application and
  cluster scaling.
---

# Nomad Autoscaler Overview

This section details the Nomad Autoscaler, a horizontal application and cluster
autoscaler for Nomad. The Nomad Autoscaler is built and released separately to
Nomad. The source code can be viewed on [GitHub][autoscaler_github] and releases
are available on the [HashiCorp releases page][autoscaler_releases] or via
[Docker Hub][autoscaler_dockerhub].

The Nomad Autoscaler repository includes a number of [demos][autoscaler_demo]
which provide guided learning on running the autoscaler.

## Horizontal Application Autoscaling

Horizontal application autoscaling is the process of automatically controlling the number of instances of an application
to have sufficient work throughput to meet service-level agreements (SLA). In
Nomad, horizontal application autoscaling can be achieved by modifying the number
of allocations in a task group based on the value of a relevant metric, such as
CPU and memory utilization or number of open connections. This is enabled by configuring
[autoscaling policies][autoscaling_policy] on individual Nomad jobs using the [`scaling` block][scaling_block].

## Horizontal Cluster Autoscaling

Horizontal cluster autoscaling is the process of adding or removing Nomad clients from a cluster to ensure there
is an appropriate amount of cluster resource for the scheduled applications.
This is achieved by interacting with remote providers to start or terminate new
Nomad clients based on metrics such as the remaining free schedulable CPU or memory.
Cluster scaling is enabled by configuring the [autoscaler agent](/docs/autoscaling/agent#dir)
with policies targeting the Nomad cluster.

[scaling_block]: /docs/job-specification/scaling
[autoscaling_policy]: /docs/autoscaling/policy
[autoscaler_github]: https://github.com/hashicorp/nomad-autoscaler
[autoscaler_releases]: https://releases.hashicorp.com/nomad-autoscaler/
[autoscaler_dockerhub]: https://hub.docker.com/r/hashicorp/nomad-autoscaler
[autoscaler_demo]: https://github.com/hashicorp/nomad-autoscaler/tree/master/demo
