Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions content/well-architected-framework/data/docs-nav-data.json
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,10 @@
{
"title": "Create cloud budgets",
"path": "optimize-systems/manage-cost/create-cloud-budgets"
},
{
"title": "Detect cloud spending anomalies",
"path": "optimize-systems/manage-cost/detect-cloud-spending-anomalies"
}
]
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ In this section of Deploy with confidence, you learned how to implement atomic d

Refer to the following documents to learn more about deployment strategies:

- [Zero-downtime deployments](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments) to implement zero-downtime deployment strategies
- [Implement zero-downtime deployments with blue/green, canary, and rolling strategies](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments)
- [Automate deployments](/well-architected-framework/define-and-automate-processes/automate/deployments) to automate your deployment processes
- [Automation maturity model](/well-architected-framework/define-and-automate-processes/process-automation) to understand your current automation level
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
page_title: Application deployments
description: Implement zero-downtime application deployments using blue/green, canary, and rolling strategies for virtual machines and containers.
page_title: Deploy applications with zero downtime
description: Learn how blue/green, canary, and rolling deployment strategies mitigate downtime during application updates. Compare approaches for VMs and containers to choose the right method for your application.
---

# Zero-downtime application deployments
# Deploy applications with zero downtime

Application changes can use blue/green, canary, rolling, or a combination of the three. Your deployment method depends on whether you use virtual machines or containers, along with the criticality of your application. In the following sections, you will learn how these deployment strategies work with load balancers, non-containerized applications, and containerized applications.

Expand All @@ -24,7 +24,7 @@ External resources:
- [Azure Blue-Green deployments using Azure Traffic Manager](https://azure.microsoft.com/en-us/blog/blue-green-deployments-using-azure-traffic-manager/)
- [F5 Flexible Load Balancing for Blue/Green Deployments and Beyond](https://www.f5.com/resources/solution-guides/flexible-load-balancing-for-blue-green-deployments-and-beyond)

## Non-containerized applications
## Deploy applications on virtual machines

Using a blue/green or rolling deployment is a good approach if you are deploying applications on virtual machines. Blue/green deployments limit downtime and reduce risk by maintaining two identical production environments - one live, one idle. You deploy to the idle environment, test thoroughly, then switch traffic over. If problems occur, you can roll back immediately by switching traffic back.

Expand All @@ -40,7 +40,7 @@ If the canary test succeeds without errors, you can incrementally direct traffic

![Rolling deployment. After the initial canary test, traffic to the green environment is split evenly with the blue environment (50/50). Finally, all traffic is directed to the green environment.](/img/well-architected-framework/blue-green-canary-tests-deployments/rolling-deployment.png)

## Containerized applications
## Deploy containerized applications with orchestration tools

Containers can use rolling, blue/green, and canary deployments, through orchestration tools like Nomad and Kubernetes.

Expand All @@ -56,7 +56,7 @@ Nomad supports rolling updates as a first-class feature. To enable rolling updat

By default, Kubernetes uses rolling updates. Kubernetes does this by incrementally replacing current pods with new ones. The new Pods are scheduled on Nodes with available resources, and Kubernetes waits for those new Pods to start before removing the old Pods.

As described in [infrastructure-changes](#infrastructure-changes), both Nomad and Kubernetes support blue/green deployments. Before sending all your traffic to your new cluster, you can use canary testing to ensure the new cluster is working as intended.
Both Nomad and Kubernetes support blue/green deployments. Before sending all your traffic to your new cluster, you can use canary testing to ensure the new cluster is working as intended.

HashiCorp resources:
- Learn how to use blue/green deployments with the [Nomad blue/green and canary deployments](/nomad/tutorials/job-updates/job-blue-green-and-canary-deployments#blue-green-deployments) tutorial.
Expand All @@ -69,3 +69,7 @@ External resources:
## Next steps

In this section of [Zero-downtime deployments](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments), you learned about methods to deploy application changes with zero-downtime. Zero-downtime deployments is part of the [Define and automate processes pillar](/well-architected-framework/define-and-automate-processes).

- [Implement zero-downtime deployments with blue/green, canary, and rolling strategies](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments)
- [Deploy blue/green infrastructure for zero-downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/applications)
- [Deploy applications with traffic splitting for zero-downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/service-mesh)
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
page_title: Zero-downtime deployments
description: Implement zero-downtime deployment strategies to eliminate service disruption during updates and enable continuous delivery with minimal risk.
page_title: Implement zero-downtime deployments with blue/green, canary, and rolling strategies
description: Learn how to eliminate service disruption with zero-downtime deployment strategies. Compare blue/green, canary, and rolling deployments to choose the right approach for your infrastructure and applications.
---

# Zero-downtime deployments
# Implement zero-downtime deployments with blue/green, canary, and rolling strategies

Zero-downtime deployment strategies aim to reduce or eliminate downtime when you update your infrastructure or applications. These strategies involve deploying new versions incrementally rather than all at once to detect and resolve issues. Each strategy lets you test the new version in an environment with real user traffic. This helps validate the new release's performance and reliability.

Expand All @@ -25,6 +25,8 @@ Blue/green, canary, and rolling deployments all improve application reliability

The difference between these strategies is how and where the application deploys. This involves the environment the application runs in, cost considerations, deployment methods, and traffic direction.

## When to use each deployment strategy

| | Blue/Green | Canary | Rolling |
|-----------------------|-------------------------------------------------|---------------------------------------------------------------------------------------------|-------------------------------------------------|
| **Environment Setup** | Requires two nearly identical environments. | Requires two nearly identical environments. Starts with a small subset of users or servers. | Updates subsets of servers in batches. |
Expand All @@ -49,6 +51,6 @@ External resources:

In this overview of Zero-downtime deployments, you learned the benefits and tradeoffs of zero-downtime deployments techniques. Visit the following documents to learn specifics on infrastructure, application, and service mesh. Zero-downtime deployments is part of the [Define and automate processes pillar](/well-architected-framework/define-and-automate-processes).

- [Zero-downtime infrastructure deployments](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/infrastructure)
- [Zero-downtime application deployments](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/applications)
- [Zero-downtime deployments with service mesh](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/service-mesh)
- [Deploy applications with zero downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/infrastructure)
- [Deploy blue/green infrastructure for zero-downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/applications)
- [Deploy applications with traffic splitting for zero-downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/service-mesh)
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
---
page_title: Deploy blue green infrastructure for zero-downtime
description: Learn how to implement blue green deployment strategies for zero-downtime infrastructure changes.
page_title: Deploy blue/green infrastructure for zero-downtime
description: Learn how to implement blue/green deployment strategies for zero-downtime infrastructure changes.
---

# Deploy blue green infrastructure
# Deploy blue/green infrastructure

Infrastructure changes like server or network policy updates can cause costly downtime if not managed correctly. Blue green deployment strategies lower this risk by maintaining two identical production environments, allowing you to test changes before switching traffic. This guide explains what blue green infrastructure is and how Terraform can help you implement it.
Infrastructure changes like server or network policy updates can cause costly downtime if not managed correctly. Blue/green deployment strategies lower this risk by maintaining two identical production environments, allowing you to test changes before switching traffic. This guide explains what blue/green infrastructure is and how Terraform can help you implement it.

## What is blue green infrastructure
## What is blue/green infrastructure

Blue green deployments require two identical application infrastructure environments, a method for deploying your application to your two environments, and a way to route your traffic between them.
Blue/green deployments require two identical application infrastructure environments, a method for deploying your application to your two environments, and a way to route your traffic between them.

The following diagram shows a basic blue green deployment. The blue environment is the infrastructure where your current application runs. The green environment is identical, except that you have upgraded it to host the new version of the application.
The following diagram shows a basic blue/green deployment. The blue environment is the infrastructure where your current application runs. The green environment is identical, except that you have upgraded it to host the new version of the application.

![Typical blue green deployment. The green environment runs in parallel with the blue environment. When you are ready to switch to the green environment the load balancer directs traffic to the green environment.](/img/well-architected-framework/blue-green-canary-tests-deployments/blue-green-deployment.png)
![Typical blue/green deployment. The green environment runs in parallel with the blue environment. When you are ready to switch to the green environment the load balancer directs traffic to the green environment.](/img/well-architected-framework/blue-green-canary-tests-deployments/blue-green-deployment.png)

You set up the blue and green environments as similar as possible. Infrastructure as code (IaC) lets you describe your environment as code and consistently deploy identical environments.

IaC makes your operations more cost-effective by allowing you to easily build and remove resources when you do not need them. Using IaC also lets you spin up your green environment whenever you need it. Instead of letting your blue and green environments persist indefinitely or allocating time to build them, you
deploy your green infrastructure environment when you want to deploy your new software application. Once your green environment is stable, you can tear down your blue environment.

## Using Terraform for blue green deployments
## Using Terraform for blue/green deployments

HashiCorp's Terraform is an infrastructure as code tool that can help you deploy and manage blue green infrastructure environments. By using Terraform modules, you can consistently deploy identical infrastructure using the same code but in different environments through variables. You can also define feature toggles in your Terraform code to create a blue and green deployment environment simultaneously. You can then test your application in your new green environment, and then, when you are ready, set the toggle in your code to destroy your blue environment.
HashiCorp's Terraform is an infrastructure as code tool that can help you deploy and manage blue/green infrastructure environments. By using Terraform modules, you can consistently deploy identical infrastructure using the same code but in different environments through variables. You can also define feature toggles in your Terraform code to create a blue and green deployment environment simultaneously. You can then test your application in your new green environment, and then, when you are ready, set the toggle in your code to destroy your blue environment.

HashiCorp resources:

Expand All @@ -36,4 +36,8 @@ External resources:

## Next steps

In this section of [Zero-downtime deployments](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments), you learned about methods to deploy infrastructure changes with zero-downtime. Zero-downtime deployments is part of the [Define and automate processes pillar](/well-architected-framework/define-and-automate-processes).
In this section of [Zero-downtime deployments](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments), you learned about methods to deploy infrastructure changes with zero-downtime. Zero-downtime deployments is part of the [Define and automate processes pillar](/well-architected-framework/define-and-automate-processes).

- [Implement zero-downtime deployments with blue/green, canary, and rolling strategies](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments)
- [Deploy applications with zero downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/infrastructure)
- [Deploy applications with traffic splitting for zero-downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/service-mesh)
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
page_title: Service mesh deployments
description: Use service splitters and traffic routing to implement zero-downtime deployments with gradual traffic shifting and rollback capabilities.
page_title: Deploy applications with traffic splitting for zero downtime
description: Deploy application updates without downtime by routing traffic between versions dynamically. Learn gradual traffic shifting strategies that enable instant rollback and reduce deployment risk.
---

# Zero-downtime deployments with service mesh
# Deploy applications with traffic splitting for zero downtime

You can use service splitters to implement zero-downtime deployments. These components, often used in service mesh architectures, allow traffic to route between different versions of an application dynamically.

Expand Down Expand Up @@ -36,3 +36,7 @@ HashiCorp resources:
## Next steps

In this section of [Zero-downtime deployments](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments), you learned how to use service mesh to deploy with zero-downtime. Zero-downtime deployments is part of the [Define and automate processes pillar](/well-architected-framework/define-and-automate-processes).

- [Implement zero-downtime deployments with blue/green, canary, and rolling strategies](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments)
- [Deploy applications with zero downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/infrastructure)
- [Deploy blue/green infrastructure for zero-downtime](/well-architected-framework/define-and-automate-processes/deploy/zero-downtime-deployments/applications)
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
page_title: Implement data management policies
description: Implement data management policies to reduce storage costs, ensure compliance, and manage data lifecycles with infrastructure as code.
page_title: Automate cloud storage lifecycle policies
description: Learn how to automate data lifecycle policies using Terraform and infrastructure as code. Reduce cloud storage costs, ensure compliance, and manage AWS S3, GCP, and Azure data retention policies.
---

# Implement data management policies
# Automate cloud storage lifecycle policies

You can use data management policies to manage the lifecycle of your organization's data. When you store data either in the cloud or on-premises, it is important to define and automate the policies around managing that data. Defining management with infrastructure as code tools, such as Terraform, ensures you consistently apply these policies across all environments and resources.
Data lifecycle management policies help organizations automatically manage cloud storage costs, meet compliance requirements, and secure sensitive data. Using infrastructure as code tools like Terraform, you can define, version, and apply lifecycle rules across AWS S3, Google Cloud Storage, and Azure Blob Storage.

## Why you should use lifecycle policies
## Benefits of automated data lifecycle policies

Most major cloud providers offer lifecycle management features for their storage services. These features allow you to define rules that automatically transition data between different storage classes based on age or access patterns, and delete data that has reached the end of its retention period.

Expand Down Expand Up @@ -77,8 +77,8 @@ Other cloud providers, such as [Google Cloud Platform](https://registry.terrafor
HashiCorp resources:

- Search the [Terraform Registry](https://registry.terraform.io/browse/providers) for the [cloud](https://registry.terraform.io/browse/providers?category=public-cloud) or [database](https://registry.terraform.io/browse/providers?category=database) provider you use.

- Learn best practices for writing Terraform with the Terraform [style guide](/terraform/language/style).
- Start learning Terraform with the [Get started tutorials](/terraform/tutorials).

External resources:

Expand All @@ -91,4 +91,7 @@ External resources:
In this section of Lifecycle management, you learned about implementing data management policies, including why you should use lifecycle policies and how to automate policy management with infrastructure as code. Implement data management policies is part of the [Optimize systems](/well-architected-framework/optimize-systems) pillar.

To learn more about infrastructure and resource management, refer to the following resources:

- [Automate infrastructure provisioning](/well-architected-framework/define-and-automate-processes/process-automation/process-automation-workflow)
- [Tag cloud resources](/well-architected-framework/define-and-automate-processes/infrastructure-and-resource-management/tag-cloud-resources)
- [Decommission infrastructure resources](/well-architected-framework/optimize-systems/lifecycle-management/decommission-infrastructure)
Loading
Loading