1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/applications/deployments/deployment-strategies.adoc
2025-11-20 17:24:32 +00:00

71 lines
3.7 KiB
Plaintext

:_mod-docs-content-type: ASSEMBLY
[id="deployment-strategies"]
= Using deployment strategies
include::_attributes/common-attributes.adoc[]
:context: deployment-strategies
toc::[]
_Deployment strategies_ are used to change or upgrade applications without downtime so that users barely notice a change.
Because users generally access applications through a route handled by a router, deployment strategies can focus on `DeploymentConfig` object features or routing features. Strategies that focus on `DeploymentConfig` object features impact all routes that use the application. Strategies that use router features target individual routes.
Most deployment strategies are supported through the `DeploymentConfig` object, and some additional strategies are supported through router features.
[id="choosing-deployment-strategies"]
== Choosing a deployment strategy
Consider the following when choosing a deployment strategy:
- Long-running connections must be handled gracefully.
- Database conversions can be complex and must be done and rolled back along with the application.
- If the application is a hybrid of microservices and traditional components, downtime might be required to complete the transition.
- You must have the infrastructure to do this.
- If you have a non-isolated test environment, you can break both new and old versions.
A deployment strategy uses readiness checks to determine if a new pod is ready for use. If a readiness check fails, the `DeploymentConfig` object retries to run the pod until it times out. The default timeout is `10m`, a value set in `TimeoutSeconds` in `dc.spec.strategy.*params`.
// Rolling strategies
include::modules/deployments-rolling-strategy.adoc[leveloffset=+1]
include::modules/deployments-canary-deployments.adoc[leveloffset=+2]
// Creating rolling deployments
include::modules/creating-rolling-deployments-CLI.adoc[leveloffset=+2]
// Editing a deployment
:context: rolling-strategy
include::modules/odc-editing-deployments.adoc[leveloffset=+2]
// Starting a deployment
include::modules/odc-starting-rolling-deployment.adoc[leveloffset=+2]
[role="_additional-resources"]
.Additional resources
* xref:../../applications/creating_applications/odc-creating-applications-using-developer-perspective.adoc#odc-creating-applications-using-developer-perspective[Creating and deploying applications on {product-title} using the *Developer* perspective]
* xref:../../applications/odc-viewing-application-composition-using-topology-view.adoc#odc-viewing-application-composition-using-topology-view[Viewing the applications in your project, verifying their deployment status, and interacting with them in the *Topology* view]
// Recreate strategies
include::modules/deployments-recreate-strategy.adoc[leveloffset=+1]
// Editing a deployment
:context: recreate-strategy
include::modules/odc-editing-deployments.adoc[leveloffset=+2]
// Starting a deployment
include::modules/odc-starting-recreate-deployment.adoc[leveloffset=+2]
[role="_additional-resources"]
.Additional resources
* xref:../../applications/creating_applications/odc-creating-applications-using-developer-perspective.adoc#odc-creating-applications-using-developer-perspective[Creating and deploying applications on {product-title} using the *Developer* perspective]
* xref:../../applications/odc-viewing-application-composition-using-topology-view.adoc#odc-viewing-application-composition-using-topology-view[Viewing the applications in your project, verifying their deployment status, and interacting with them in the *Topology* view]
// Custom strategies
include::modules/deployments-custom-strategy.adoc[leveloffset=+1]
// Editing a deployment
:context: custom-strategy
include::modules/odc-editing-deployments.adoc[leveloffset=+2]
include::modules/deployments-lifecycle-hooks.adoc[leveloffset=+1]