github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/website/content/tools/autoscaling/concepts/index.mdx (about) 1 --- 2 layout: docs 3 page_title: Autoscaling Concepts 4 description: > 5 This section covers concepts of the Nomad Autoscaler and explains 6 technical details of its operation. 7 --- 8 9 # Nomad Autoscaler Concepts 10 11 This section covers concepts of the Nomad Autoscaler and explains the technical 12 details of how it functions, its architecture, and sub-systems. 13 14 The Nomad Autoscaler is modeled around the concept of a closed-loop control 15 system. These types of systems are often at the core of self-regulating 16 mechanisms because they are able to adjust some value based on the current 17 state of the system and some user provided configuration. An example of a 18 closed-loop control system is a thermostat, where you set the desired 19 temperature and the appliance will regulate the output of cold and hot air to 20 make sure the room stays at the value set. 21 22 In closed-loop systems there are a few key components: 23 24 * **Setpoint** is the desired output as defined by the user. 25 * **Comparator** computes the difference between the setpoint and current 26 state of the system. 27 * **Controller** connects all the components together and defines what 28 needs to be done to bring the system closer to the desired state. 29 * **Actuator** applies the changes defined by the controller. 30 * **System** is the entity being controlled. 31 * **Output** is the current value of the system. 32 * **Sensor** reads the system output and translates it to a value that can be 33 used by the controller. 34 35 [](/img/autoscaling/control-loop.png) 36 37 The Nomad Autoscaler follows this same base architecture and offloads some of 38 the components to [different types of plugins](/tools/autoscaling/concepts/plugins). 39 40 * The autoscaling **policy** is how users define their desired outcome and 41 control the Nomad Autoscaler. 42 * **Target** is what users want to scale. It can be a job group, where the 43 number of allocations is scaled, or a set of Nomad clients, where the number 44 of nodes is what changes. 45 * **Strategy plugins** receive the current status of the scaling target (such 46 as the number of allocations of a group) and metrics of the system to compute 47 what actions need to be taken. 48 * **Target plugins** communicate with targets to both read its status and to 49 apply changes defined by the Autoscaler. 50 * **APM plugins** read application performance metrics from external sources. 51 52 [](/img/autoscaling/autoscaler-arch.png)