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  [![Closed-loop controller](/img/autoscaling/control-loop.png)](/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  [![Nomad Autoscaler architecture](/img/autoscaling/autoscaler-arch.png)](/img/autoscaling/autoscaler-arch.png)