Deployments

How are deployments connected to Nodes, Backends and ADCs.

Understanding the connection between Deployments, ADCs, Backends and Nodes is critical to using the Nova API.

Let us start with a simple set of concepts:

  • All valid ADCs must have at least one Backend
  • All active ADCs must be attached to at least one Node
  • A deployment takes the configuration template on the control plane and applies it to a list of attached Nodes

ADCs and Backends

As mentioned above, all ADCs must have at least one Backend, often multiple. When you update a Backend it's changes are applied to all ADCs that use the Backend.

However, this only takes effect (when using the API) once you trigger a deployment of the ADC to write it's changes to all affected Nodes.

WAF Profiles

The same is true for WAF Profiles, changes are automatically brought into ADCs using a WAF Profile, but the actual change you have made is only applied when you deploy. This allows you to send many changes and then "apply" the changes in one go.

Deployments

A deployment happens automatically in the Nova Web based user interface when you save an ADC that has attachments, or change something that affects that ADC.

However, in our RESTful API that is not the case. The API allows the caller to determine when a deployment is triggered and when changes are applied.

Trigger a deployment using the ADC Deployments call, for example, the below call will cause ADC ID 100 to deploy to all attached Nodes.

curl --request POST \
     --url https://nova.snapt.net/api/v2/adcs/100/deployments \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer X'

You can then query the status of that deployment (progress, success, etc) by asking for information with the ID it returned to you, as shown below for ADC ID 100 with deployment ID 5000

curl --request GET \
     --url https://nova.snapt.net/api/v2/adcs/100/deployments/5000 \
     --header 'Accept: application/json' \
     --header 'X'

Typically, a deployment will take between 3 and 10 seconds regardless of the number of Nodes (all Nodes are deployed in parallel).