Skip to content
This repository has been archived by the owner on Sep 9, 2020. It is now read-only.

Do not scale a job group when it is in deployment. #56

Merged
merged 1 commit into from
Sep 30, 2019
Merged

Conversation

jrasell
Copy link
Owner

@jrasell jrasell commented Sep 30, 2019

When a job group is going through a Nomad deployment, it is
preferable not to trigger a scaling action. This is because with a
basic deployment in Nomad, performing a scaling register will
cancel the currently running deployment. This can therefore cause
un-expected results.

In order to track deployments, a blocking query is used on the
Nomad API. Updates are then processed and stored internally for
quick lookup. This reduces the load on the Nomad API over calling
it to check every job group when a scaling action is requested. It
does add complexity.

The deployment state is not written to the storage backend, nor is
it leader protected. Nomad itself is the state store for this info
and new servers can quickly and easily update their internal state
to ensure consistent results. This reduces load on the store and
means faster lookup times.

Closes #44

@jrasell jrasell added area/scaling Issues related to scaling kind/enhancement Issues relating to enhancements area/autoscaling Issues related to internal autoscaling labels Sep 30, 2019
@jrasell jrasell self-assigned this Sep 30, 2019
When a job group is going through a Nomad deployment, it is
preferable not to trigger a scaling action. This is because with a
basic deployment in Nomad, performing a scaling register will
cancel the currently running deployment. This can therefore cause
un-expected results.

In order to track deployments, a blocking query is used on the
Nomad API. Updates are then processed and stored internally for
quick lookup. This reduces the load on the Nomad API over calling
it to check every job group when a scaling action is requested. It
does add complexity.

The deployment state is not written to the storage backend, nor is
it leader protected. Nomad itself is the state store for this info
and new servers can quickly and easily update their internal state
to ensure consistent results. This reduces load on the store and
means faster lookup times.

Closes #44
@jrasell jrasell merged commit f411186 into master Sep 30, 2019
@jrasell jrasell deleted the gh-44 branch September 30, 2019 14:44
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/autoscaling Issues related to internal autoscaling area/scaling Issues related to scaling kind/enhancement Issues relating to enhancements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Do not scale job groups which are in deployment
1 participant