Deployment overview

This page applies to Apigee and Apigee hybrid.

View Apigee Edge documentation.

When you make a change to an API proxy, you can save it as a new revision and deploy it to your cluster.

About deployment

The deployment lifecycle of an API proxy revision on Apigee is shown in the following figure.

Apigee API proxy deployment lifecycle showing management plane, runtime plane, and stackdriver.

API proxy revisions limitations

The following limitations apply to API proxy revisions:

  • If you make any changes to an API proxy, you must deploy it as a new revision.
  • After you deploy an API proxy, the revision is read-only. You cannot change an API proxy revision (such as to make incremental changes); the only way to change a revision is to create a new revision and deploy it.
  • MPs can deploy a proxy bundle only in its entirety. If you make changes to individual fragments or policies, the MPs will still deploy the entire proxy bundle.
  • If your Apigee usage distinguishes between Standard and Extensible proxies, when deploying a revision that changes an API proxy from a Standard proxy to an Extensible proxy:
    • a cost might be incurred. If you are a Pay-as-you-go (updated attributes) customer, see the Pay-as-you-go entitlements. If you are a Subscription customer, see your plan's details.
    • the deployment requires additional time. During the deployment window the API call flow is not disrupted but you can't deploy, undeploy, or delete the proxy. Also, current or new revisions cannot be deleted during the deployment window. Changes to the API proxy and new revision creation are allowed.

Zero-downtime deployment

All successful API proxy deployments to Apigee, are zero-downtime deployments. API proxy deployments happen in this order:

  1. Revision 1 of the API proxy /hello is deployed and handling traffic.
  2. Revision 2 of /hello is deployed.
  3. Revision 2 is deployed to the Message Processors in the runtime plane.
  4. Revision 1 is undeployed.

The API proxy revision deployment is now complete with no downtime.

Viewing deployment status

Deploying an API proxy on Apigee does not make it immediately available. It takes time for the API proxy to be synchronized across all MPs in the runtime plane. However, Apigee provides tools that can give you some information about the status of your API proxy revisions.

Apigee UI

Within the Apigee UI, there are several views that provide the deployment status of your API proxies.

Apigee UI View Steps & Description
Proxies
  1. Select Develop > API Proxies:

    Shows one-fish API proxy with status as currently deployed (green dot icon)

The Apigee UI uses the following icons to give a quick status for each API proxy:

Gray dot icon indicates API proxy is not deployed to selected environment Indicates that the API proxy has not been deployed to the selected environment.
Green dot icon indicates API proxy deployed without errors or warnings in selected environment Indicates that there are no errors or warnings for that proxy in the selected environment.
Yellow triange icon indicates that some routing did not update due to base path conflicts Indicates that some routing did not update due to base path conflicts.
Red box icon indicates there was an error during deployment Indicates that there was an error deploying the API proxy.

To view the status icon, click the Develop tab.

Alternatively, you can select Develop > API Proxies and click an API proxy

Apigee API

To view the deployment status of your API proxy revision in an environment, use the following API call:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Where $TOKEN is set to your OAuth 2.0 access token, as described in Obtaining an OAuth 2.0 access token. For information about the curl options used in this example, see Using curl. For a description of the environment variables used, see Setting environment variables for Apigee API requests.

The following provides an example of the response. This examples shows deployment status for revision 1 of the helloworld API proxy that is deployed in the test environment:

{
  "environment": "test",
  "apiProxy": "helloworld",
  "revision": "1",
  "deployStartTime": "1559149080457",
  "pods": [
    {
      "podName": "apigee-runtime-myorg-test-f8bdf9d-2s72w",
      "deploymentStatus": "deployed",
      "statusCodeDetails": "Deployment Success",
      "podStatus": "active",
      "podStatusTime": "1595357668001"
    }
  ],
  "state": "READY"
}

For more information, see the API proxy revision environment deployments API.

gcloud

To view the deployment status of your API proxy revision in an environment, use the following gcloud command:

gcloud alpha apigee deployments describe --api=$API --environment=$ENV

For more information and a description of the environment variables used in the examples, see Getting started using gcloud with Apigee.

The following provides an example of the response. This examples shows deployment status for revision 1 of the helloworld API proxy that is deployed in the test environment:

Using Apigee organization `my-org`
Using deployed revision `1`
apiProxy: helloworld
deployStartTime: '1598032332802'
environment: test
pods:
- deploymentStatus: deployed
  podName: apigee-runtime-myorg-test-f8bdf9d-2s72w
  podStatus: active
  podStatusTime: '1598302128087'
  statusCodeDetails: Deployment Success
revision: '1'
state: READY

For more information, see Describe deployments CLI.

Next steps

 

Learn how to deploy:

Deploying an API Proxy

 

 

Learn how to undeploy:

Undeploying an API Proxy