Deployments are parts of your Services that represent specific combinations of your project's code and configuration. Each time your Service configuration changes, a new Deployment is created and provisioned.

Deployments are realized by creating Instances in the regions specified by your configuration.

Deployment health

A Deployment's health is determined by the health of its Instances.

If any of the Deployment's Instances are unhealthy, the Deployment's health will be marked as degraded or unhealthy. You can learn more about how Instance health is determined on the health check page.

Deployment life cycle

Each Deployment's life cycle is closely related to that of the Service it belongs to and to the Instances that it manages. Instance health statuses affect Deployment health statuses. Deployment health, in turn, affects the Service and App layers.

Changes to Service configuration always result in changes to Deployments. When a Service configuration change is applied, a new Deployment is provisioned to run the configuration or code change. Any currently running Deployments for the Service will continue to run until the new Deployment is marked as healthy.

When a new Deployment is marked healthy, the existing Deployment is automatically stopped. This process involves stopping all of the original Deployment's Instances and then removing the Deployment.

Deployment statuses

Deployments can have several statuses during their life cycle:

  • Pending: This is the initial state in which the Deployment request has been received.
  • Provisioning: This is the build stage. During this process, your project's code or image is downloaded and any required build instructions are executed.
  • Scheduled: The build process is complete and all launch requirements are satisfied. The deployment is waiting for further processing by an internal scheduler.
  • Allocating: The internal Deployment process has successfully started. Instances are preparing to start.
  • Starting: The Deployment's Instances are starting and the service mesh configuration is being deployed.
  • Healthy: The Deployment's desired number of Instances are running and health checks are passing for all Instances.
  • Degraded: At least one Instance is unhealthy, but one or more healthy Instances are running. The number of healthy Instances does not match the requested number of Instances. For web Services, traffic will be routed to the healthy Instances and unhealthy Instances are automatically removed as routing destinations.
  • Unhealthy: There are no healthy Instances, so the Deployment is not working. For web Services, no traffic can be served by the Deployment.
  • Stopping: The Deployment is being stopped and waiting for Instances to shut down.
  • Stopped: All Instances of the Deployment are stopped.
  • Error: The Deployment failed. This can happen when the build of your application failed, your application crashed, or because of an internal error of the platform.