When you make a change to an API proxy, you can save it as a new revision and deploy it to your cluster.
Apigee hybrid propagates new revisions of your API proxies via the Synchronizer and MPs. The MPs continually poll the Synchronizer for changes to the API proxy bundles. When they detect one, they fetch it via HTTP and then deploy that bundle.
In Apigee hybrid, MPs act independently of one another and any given MP can be in a different state than the other MPs (such as active or disabled). This is known as an "eventually consistent deployment model" for API proxies.
The following image shows the deployment lifecycle of a new API proxy on hybrid:
Proxy revisions limitations
The following limitations apply to 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 only deploy a proxy bundle in its entirety. If you make changes to individual fragments or policies, the MPs will still deploy the entire proxy bundle.
All successful API proxy deployments to Apigee hybrid, are zero-downtime deployments. Proxy deployments happens in this order:
- Revision 1 of the proxy
/hellois deployed and handling traffic.
- Revision 2 of
- Revision 2 is deployed to the message processors in the runtime plane.
- Revision 1 is undeployed.
The proxy revision deployment is now complete with no downtime.
View deployment status
MPs communicate the status of proxies to the UDCA, which then sends that status to GCP and the management plane.
Deploying an API proxy on Apigee hybrid does not make it immediately available. It takes time for the 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.
You can get the deployment status of an API proxy in one of the following ways:
Within the hybrid UI, there are several views that provide the deployment status of your API proxies:
|Hybrid UI View||Steps & Description|
The hybrid UI uses the following icons to give a quick status for each proxy:
indicates that the
proxy has not been deployed to the selected environment.
To view the status icon, click the Develop tab; the icon is displayed next to the Deploy to button:
Alternatively, you can select Develop > API Proxies and click a proxy.
When you first load the Deployments view, hybrid polls all MP pods to get their current status. Hybrid will poll the MPs for 5 minutes, hoping to get 100% of pods to report their status, which UI then updates in this view. After 5 minutes, you can instruct hybrid to begin polling again by refreshing this view.
Alternatively, you can click the Develop tab and hover over the Details link:
During deployment, the UI displays a pod synchronization status bar. Next to this bar, the UI also displays pod status messages.
The pod synchronization status bar also shows the percentage of pods that have reported a status (any status) related to that revision within the last 5 minutes.
If you hover over the Pod synchronization status bar, the UI also displays the Runtime pods popup.
Change default deployment environment
The UI has a number of helpful indicators on the Develop tab that show the revision and status of the default environment. The following images highlight these indicators:
You can change the default environment to any environment in the hybrid organization.
To change the default environment:
- On the Develop tab, click the Deploy to drop-down list.
The drop-down list expands. Each row shows an environment, the revision that is deployed to that environment, and an Undeploy button.
The following example shows three environments with the default environment listed first:
- Click on a different environment’s row—anywhere except the Undeploy or
For example, to change the default environment to the “test-env-42” environment:
The hybrid UI updates to now display the status of the new default environment. In addition, the default environment in the Deploy to drop-down list is the newly selected environment.