When it comes to deploying software in AWS, two popular strategies are canary deployment and rolling deployment. Both of these strategies allow you to release new features or updates to your application with minimal disruptions. However, they differ in their approach and level of risk.
A canary deployment is a gradual release strategy in which a small portion of your infrastructure is updated with the new changes, while the rest remains unchanged. This small portion, often referred to as the “canary group,” is a representative sample of your application’s users. By monitoring the performance and stability of the canary group, you can quickly detect any issues or failures before they affect the entire user base. This allows you to make informed decisions about whether to proceed with the full deployment or roll back the changes.
On the other hand, a rolling deployment involves releasing the new changes incrementally across your infrastructure. This means that each portion of your infrastructure is updated one after the other, gradually transitioning from the old version to the new version. Rolling deployments ensure that your application remains available throughout the deployment process, as only a small portion of your infrastructure is affected at any given time. This strategy minimizes the impact of any potential issues or failures; however, it may take longer to complete the deployment compared to a canary deployment.
Both canary and rolling deployments offer benefits and risks depending on your specific requirements. Canary deployments are ideal for applications that require a higher level of risk mitigation and where immediate detection of any issues is crucial. Rolling deployments, on the other hand, are suitable for applications that can handle a higher degree of risk and can continue to function even if there are minor issues during the deployment process.
What is Canary Deployment?
Canary Deployment is a deployment strategy that is commonly used in the context of software releases. It allows for a controlled and gradual rollout of new features or changes to a production environment. This strategy is often contrasted with rolling deployment and is frequently employed in AWS environments.
In a canary deployment, a small percentage of the production traffic is routed to the new version of the software or infrastructure while the majority continues to be served by the existing stable version. This small percentage, known as the canary group, acts as a “canary in the coal mine” by providing early indicators of any potential issues or bugs that may exist in the new version.
The canary deployment process typically involves the following steps:
- Preparation: The new version of the software or infrastructure is deployed to a subset of servers or instances in the production environment.
- Monitoring: The canary group’s performance and behavior are closely monitored to ensure that there are no adverse effects on the end users.
- Analysis: The metrics and logs collected from the canary group are analyzed to detect any anomalies or errors that may have occurred during the deployment.
- Incremental rollout: If the canary group performs well and is deemed stable, the new version is gradually rolled out to a larger portion of the production environment until it encompasses the entire infrastructure.
By using a canary deployment approach, organizations can minimize the impact of potential issues and reduce the risk of widespread disruptions that may occur with a full-scale rollout. This strategy provides a safety net, allowing for early detection and remediation of any problems before they affect a larger user base.
Benefits of Canary Deployment:
- Early detection of bugs or issues.
- Reduced risk of downtime or user disruptions.
- Gradual rollout provides an opportunity for adjustments and fine-tuning.
- Improved confidence in the stability and reliability of the new version.
What is Rolling Deployment?
In the context of AWS, rolling deployment is a strategy used to update an application or service without experiencing any downtime. It is a deployment technique that involves gradually deploying changes to a live environment by rolling them out to a subset of instances at a time. This is in contrast to the canary deployment approach, where changes are first deployed to a small, controlled group of instances before being rolled out to the rest of the fleet.
With rolling deployment, updates are typically applied to a portion of instances, allowing the system to handle traffic from both the new and old versions simultaneously. This allows for a smooth transition between versions with minimal impact on user experience.
Advantages of Rolling Deployment
Rolling deployment provides several advantages:
- Reduced risk: By gradually deploying changes, any issues or bugs can be identified and resolved before the entire fleet is affected.
- Continuous availability: Rolling deployment allows the application or service to remain available to users throughout the deployment process, minimizing downtime.
- Easy rollback: In the event that an issue arises during the deployment process, rolling deployment allows for a quick rollback by simply redirecting traffic back to the previous version.
Considerations for Rolling Deployment in AWS
When implementing rolling deployment in AWS, there are a few considerations to keep in mind:
- Elastic Load Balancer (ELB): Utilize ELB to distribute traffic across the instances and enable automatic health checks to ensure the newly deployed instances are functioning correctly.
- Instance Scaling: Configure Auto Scaling groups to adjust the number of instances based on traffic patterns, ensuring optimal performance during the deployment.
- Monitoring and Metrics: Implement monitoring and metrics tools to track the performance and health of the deployment, allowing for timely detection and resolution of any issues.
Overall, rolling deployment in AWS is a powerful strategy for updating applications or services while maintaining continuous availability and minimizing risk. By gradually rolling out changes and actively monitoring the deployment, issues can be identified and resolved in a controlled manner, ensuring a smooth transition for both the development team and end users.
Benefits of Canary Deployment
When it comes to deploying software in AWS, there are different strategies to choose from. Two popular options are canary deployment and rolling deployment. Each approach has its own unique benefits and considerations.
One of the key advantages of canary deployment is its incremental nature. With canary deployment, a small portion of the production traffic is gradually shifted to the new version of the software. This allows for testing and validation of the new release in a controlled environment before exposing it to the entire user base. By incrementally deploying the changes, the risk of a major failure impacting all users is significantly reduced.
Canary deployment also helps in mitigating risks associated with deploying new features or updates. By gradually rolling out the changes to a subset of users, it becomes easier to identify any potential issues or bugs specific to that particular release. This allows for quick remediation and minimizes the impact on the overall user base. In comparison, rolling deployments expose all users to the changes simultaneously, which can increase the potential for widespread disruption if an issue arises.
Furthermore, canary deployments provide an opportunity to collect feedback from the subset of users who are using the new release. This feedback can be invaluable in identifying any usability or performance issues and making necessary adjustments before fully rolling out the changes to all users.
In summary, canary deployment offers a controlled and measured approach to software deployment, providing benefits such as incremental deployment and risk reduction. By gradually rolling out changes to a subset of users, it allows for testing, validation, and quicker mitigation of any issues that may arise. This ultimately leads to a more seamless and user-friendly software release experience.
Improved Risk Management
When it comes to deploying new features or updates, risk management is a crucial aspect in minimizing potential issues and ensuring a smooth transition. Both deployment methods, Canary and Rolling, offer their own approaches to risk management in AWS.
The Canary deployment strategy in AWS involves releasing new changes to a small subset of users or devices, allowing for real-time monitoring and assessment of any negative impacts or issues. This granular approach reduces the overall risk by limiting the exposure to a small percentage of the user base.
On the other hand, Rolling deployment involves gradually rolling out changes across the entire user base or infrastructure in small batches. By constantly monitoring the system during the deployment process, any issues or abnormalities can be quickly identified and addressed before affecting the majority of users.
Both deployment methods leverage the capabilities of AWS to manage risk efficiently. With Canary deployment, real-time monitoring and immediate rollback options enable prompt mitigation of any potential risks. Meanwhile, Rolling deployment offers a systematic and controlled release of changes, allowing for continuous monitoring and fast response to any unforeseen issues.
Overall, both Canary and Rolling deployment strategies improve risk management in AWS by providing mechanisms to closely monitor the impact of changes and swiftly address any issues that may arise. The choice between the two approaches ultimately depends on the specific requirements and priorities of the deployment process of an organization.
When it comes to deploying new features or updates to your AWS infrastructure, two commonly used strategies are rolling deployment and canary deployment. However, there is another approach called gradual rollout that can offer a balance between these two methods.
With a gradual rollout, you can control the pace at which your changes are introduced to your infrastructure. This approach allows you to mitigate risks and monitor the impact of your changes before fully deploying them.
Advantages of Gradual Rollout
One of the main advantages of a gradual rollout is the ability to reduce the impact of any potential issues or bugs. By gradually introducing changes to a subset of your infrastructure, you can identify and fix any issues before rolling out the changes to the entire infrastructure.
Another advantage is the ability to closely monitor the performance and behavior of your changes. By monitoring key metrics during the gradual rollout process, you can quickly detect any abnormalities or performance degradation, allowing you to take immediate action if needed.
Implementing a Gradual Rollout in AWS
To implement a gradual rollout in AWS, you can leverage tools and services like AWS CodeDeploy and AWS Lambda. These services allow you to define the rollout strategy and automatically manage the deployment process.
First, you can create a deployment group in AWS CodeDeploy and specify the percentage of instances that should receive the changes initially. You can also configure health checks to ensure that the changes are not negatively impacting the deployed instances.
Next, you can use AWS Lambda functions to monitor the performance of the instances and the overall infrastructure during the gradual rollout. These functions can be triggered based on specific metrics or events, allowing you to gather real-time data and make informed decisions.
In conclusion, a gradual rollout offers a more controlled and manageable approach to deploying changes in your AWS infrastructure. By introducing changes gradually and monitoring their impact, you can minimize risk and ensure a smooth transition to the updated environment.
NOTE: When choosing between rolling deployment, canary deployment, and gradual rollout, it’s important to consider the specific requirements and characteristics of your application and infrastructure.
In the battle of Canary vs Rolling Deployment in AWS, real-time monitoring plays a crucial role. Both strategies require continuous monitoring of the deployment process to ensure smooth and error-free releases.
Real-time monitoring allows you to track the performance and behavior of your applications and infrastructure in AWS. It provides a detailed view of the system’s health, alerts you to any issues, and helps you make informed decisions to ensure high availability and minimal downtime.
With canary deployment, real-time monitoring becomes even more important. As you gradually roll out the new version or feature to a small subset of users, you need to closely monitor their experience and collect feedback in real-time. This feedback helps you identify any issues or bottlenecks before scaling the deployment to the entire user base.
Real-time monitoring also plays a significant role in rolling deployment. As you deploy changes across the entire infrastructure, you need to monitor the performance, latency, and availability of the system. This monitoring allows you to detect any anomalies or performance dips caused by the new release and take immediate action to mitigate any potential impact on users.
Overall, real-time monitoring is essential in both canary and rolling deployment strategies in AWS. It enables you to identify and resolve issues promptly, ensuring a seamless deployment process and a great user experience.
One of the key advantages of canary deployment over rolling deployment in AWS is the ability to have an immediate rollback in case of any issues or failures. In a canary deployment, only a small percentage of users are exposed to the new version of the application, allowing for a controlled release. If any issues or failures are discovered, the canary deployment can be rolled back immediately, minimizing any impact on the user base.
On the other hand, with rolling deployment, the new version of the application is gradually rolled out to the entire user base. This means that if any issues or failures are discovered, it may take longer to identify them and address them, as the new version is being rolled out to more and more users. This can result in a longer downtime and a larger impact on the user base.
In conclusion, canary deployment provides the advantage of immediate rollback, allowing for a faster response to any issues or failures that may arise during the deployment process. This can help to minimize the impact on the user base and ensure a smoother deployment overall.
Both canary and rolling deployment strategies aim to minimize downtime during the deployment process. However, they approach this goal in slightly different ways.
A canary deployment involves initially deploying a new version of the software to a small subset of users, known as the canary group. This allows for testing and monitoring of the new version in a real-world environment before rolling it out to the entire user base. By limiting the exposure to a small group, any potential issues or bugs can be quickly identified and resolved without impacting a large number of users. As a result, canary deployment helps to reduce downtime and minimize the impact on the overall user experience.
On the other hand, a rolling deployment strategy involves gradually rolling out the new version to a larger percentage of users over time, until it reaches the entire user base. This approach helps to mitigate the risk of any potential issues by gradually increasing the exposure to the new version. By monitoring the performance and stability of the new version during each phase of the deployment, any problems can be identified and addressed before affecting a significant number of users. As a result, rolling deployment also helps to reduce downtime and ensure a smooth transition to the new version.
In summary, both canary and rolling deployment strategies offer a reduced downtime approach by allowing for gradual testing and monitoring of the new version before full deployment. The canary deployment limits the initial exposure to a small group of users, while the rolling deployment gradually increases the exposure over time. Both strategies help to identify and resolve any issues or bugs before they impact a large number of users, ultimately ensuring a smooth and uninterrupted user experience during the deployment process.
Benefits of Rolling Deployment
A rolling deployment is a deployment strategy where new versions of an application are gradually rolled out to a subset of servers or instances, while keeping the remaining servers running the older version. This is in contrast to a canary deployment, where only a single server or a small percentage of servers are initially updated with the new version.
Better Stability and Reliability
Rolling deployment offers better stability and reliability compared to canary deployment. By gradually rolling out the new version, any potential issues or bugs can be identified and addressed early on, reducing the impact on the entire system. This allows for a smoother transition and minimizes the risk of downtime or disruption to end-users.
Reduced Rollback Complexity
If a problem is detected during the rolling deployment, the rollout can be easily stopped or rolled back. Since only a subset of servers are updated at a time, rolling back to the previous version is a simpler process compared to canary deployment, where a rollback involves a more complex rollback procedure for all the servers or instances that were updated.
|Gradual rollout to subset of servers
|Initial update to single server or small percentage
|Offers better stability and reliability
|Provides early detection of issues
|Easier rollback process
|More complex rollback procedure
In conclusion, rolling deployment provides benefits in terms of stability, reliability, and rollback complexity compared to canary deployment. It allows for a smoother and controlled transition to new versions of an application, minimizing the risk of potential issues and improving overall system performance.
Continuous availability is a crucial aspect of deploying and managing applications in AWS. Both canary and rolling deployments help achieve continuous availability by minimizing downtime during the deployment process.
A canary deployment is a strategy where a small subset of users or traffic is directed to the new version of the application, while the majority of users are still directed to the previous version. This allows for testing and validation of the new version in a controlled manner. The canary deployment helps identify any issues or bugs before rolling out the new version to all users. In AWS, canary deployments can be achieved using services like AWS CodeDeploy or AWS Elastic Beanstalk.
On the other hand, a rolling deployment is a strategy where the new version of the application is gradually rolled out to all users or traffic. The deployment is done in small increments, which allows for monitoring and validation at each step. Rolling deployments ensure that any issues or bugs are caught early in the process and can be fixed before affecting a large number of users. AWS provides tools like AWS CodeDeploy and AWS Elastic Beanstalk for implementing rolling deployments.
By utilizing canary or rolling deployments in AWS, organizations can ensure continuous availability of their applications during the deployment process. These strategies minimize downtime and allow for testing, validation, and monitoring to ensure a smooth transition to new versions of applications.
Minimal User Impact
When it comes to minimizing user impact during deployments, both Canary and Rolling Deployment strategies offer different benefits.
Canary deployments are considered to be a more cautious approach, as they allow you to release the new version of your application to a small subset of users or servers before rolling it out to the entire user base. By doing so, you can monitor and gather feedback from a limited number of users and ensure that the new version works as expected.
This strategy minimizes the risk of introducing bugs or breaking changes that could affect a larger user base. If any issues are detected during the canary release, you can quickly roll back to the previous version without impacting the majority of your users.
Rolling deployments, on the other hand, are designed to gradually roll out the new version of your application to the entire user base. This approach allows you to update your application in a controlled manner, ensuring that each update is stable before moving on to the next server or user group. This way, if any issues arise, they can be addressed and rolled back without affecting all users at once.
One advantage of rolling deployments is that they offer a smoother transition for users, as they don’t experience sudden changes or disruptions. However, it also means that if a problem is detected after the initial rollout, it may impact a larger number of users before it can be resolved.
Choosing the Right Strategy
When deciding between Canary and Rolling Deployment strategies, it’s important to consider the specific needs and requirements of your application and user base.
If your application handles critical tasks or involves a large number of users, the Canary Deployment strategy may be the safer choice, as it allows for careful monitoring and quick rollbacks if necessary. On the other hand, if your application can tolerate minor disruptions and you want to ensure a smoother transition for users, a Rolling Deployment strategy can be a good option.
Ultimately, the choice between Canary and Rolling Deployment in AWS depends on your team’s risk tolerance, the complexity of your application, and the impact that a failed deployment could have on your users.
By considering these factors and evaluating the benefits of both strategies, you can make a well-informed decision and deploy your applications with minimal user impact in AWS.
One of the major advantages of using canary deployment in AWS is the ability to easily perform rollbacks. When a new version of the application is deployed, a canary group of instances is first created to test the new changes. If any issues or bugs are found during the canary testing, it is easy to rollback to the previous version of the application.
Rolling deployment, on the other hand, does not provide an easy rollback mechanism. In case any issues arise after deploying a new version, it can be challenging to revert back to the previous version. This can lead to longer downtime and potential loss of revenue.
|Allows easy rollback to previous version
|Lacks an easy rollback mechanism
|Reduces downtime and potential revenue loss
|Potential longer downtime and revenue loss
In conclusion, when it comes to performing rollbacks, canary deployment in AWS is the clear winner. Its ability to quickly revert back to the previous version enables faster recovery from any issues or bugs found during deployment.
The choice between canary deployment and rolling deployment in AWS can significantly impact the stability of your application.
Canary deployment involves releasing new features or updates to a small subset of users or servers, allowing you to monitor and evaluate the impact of the changes before rolling them out to a larger audience. This approach provides an extra layer of stability as any issues or bugs can be identified and resolved before affecting a larger number of users or servers.
On the other hand, rolling deployment involves gradually updating your application across all servers or users. While this approach allows for quicker deployment and wider availability of new features, it also carries a higher risk of bugs or issues affecting a larger portion of your users or servers. This can result in decreased stability and potentially significant disruptions for your users.
By using canary deployment, you can ensure increased stability by closely monitoring the performance and impact of new features or updates before rolling them out to a larger audience. This allows for early detection and resolution of any issues, minimizing the potential impact on stability.
Overall, the choice between canary deployment and rolling deployment depends on your specific requirements and risk tolerance. If stability is a top priority, canary deployment provides a reliable approach to minimize the impact of potential issues. However, if fast deployment and wider availability are more important, rolling deployment may be the preferred option, despite the higher risk of potential disruptions.
Canary vs Rolling Deployment: Factors to Consider
When it comes to deploying applications in AWS, there are two popular strategies to choose from: canary deployment and rolling deployment. Both approaches have their advantages and drawbacks, and deciding which one to use depends on several factors.
|Canary deployment allows you to minimize risk by gradually rolling out changes to a small subset of users or instances. This means that if any issues arise, they can be quickly identified and addressed before the changes are applied to the entire system.
|Rolling deployment carries a higher risk as changes are applied across the entire system at once. This means that if any issues arise, they can affect a larger portion of the user base or instances before they are identified and fixed.
|Impact on Users
|Canary deployment minimizes the impact on users by gradually exposing them to the changes. This allows you to collect feedback and monitor performance before scaling the changes to all users.
|Rolling deployment can have a larger impact on users as changes are applied to the entire system. This can result in downtime or degraded performance for a larger number of users during the deployment process.
|Canary deployment allows for easy rollback if any issues are detected during the deployment process. Since only a small subset of users or instances are affected, rolling back the changes is relatively straightforward.
|Rolling deployment can be more challenging to rollback if issues arise since the changes are applied to the entire system. This may require rolling back the entire deployment or manually fixing the issues.
|Time to Deploy
|Canary deployment can take longer to complete since changes are applied gradually to a subset of users or instances. However, this allows for more thorough testing and monitoring before scaling the changes.
|Rolling deployment is generally faster since changes are applied across the entire system at once. However, this also means that there is less time for testing and monitoring before the changes take effect for all users.
Ultimately, the choice between canary deployment and rolling deployment depends on your specific requirements and priorities. If minimizing risk and impact on users is crucial, canary deployment may be the better option. However, if speed and efficiency are more important, rolling deployment may be the preferred strategy.
In the context of rolling vs canary deployment, one of the factors to consider is the complexity of the application being deployed.
Rolling deployment is a strategy where updates are gradually rolled out to a set of instances in a phased manner. This can be a suitable approach for applications that are relatively simple and can tolerate some downtime during the deployment process.
On the other hand, canary deployment involves releasing a new version of the application to a small subset of users or instances, allowing for testing and monitoring of its performance. This approach is more suitable for complex applications with a higher risk of causing issues and requires more fine-tuning and monitoring.
The decision between rolling and canary deployment largely depends on the application’s complexity. If the application has a straightforward architecture and can handle some downtime, rolling deployment may be a more straightforward and efficient option. However, if the application is complex and has multiple dependencies, canary deployment can help identify and mitigate potential issues before a full release.
A table can be used to summarize the differences between rolling and canary deployment in terms of application complexity:
|Tolerance for Downtime
|Testing and Monitoring
|Relatively simple architecture
|Tolerates some downtime
|Less fine-tuning and monitoring
|Complex architecture with multiple dependencies
|Requires careful monitoring and fine-tuning
|Allows for testing and monitoring of performance
In the context of AWS deployment, both Canary and Rolling deployments offer different deployment frequencies.
Canary deployment is a strategy that allows you to roll out changes to a small subset of users or a specific region before pushing the changes to the entire application. By releasing the changes to a limited audience first, you can closely monitor their impact and ensure that the new version is behaving as expected. This approach enables teams to quickly detect and fix any issues that might arise.
On the other hand, Rolling deployment is a strategy that gradually rolls out changes to the entire infrastructure. It typically involves deploying the changes to a small portion of the infrastructure, such as a single server or a small group of servers, and then gradually expanding the deployment to include more components or regions over time. This approach helps to mitigate risks by allowing you to closely monitor the changes and spot any issues early on.
Both deployment strategies offer different levels of deployment frequency. Canary deployments offer a lower deployment frequency since changes are initially released to a small subset of users or regions. This allows for careful monitoring and ensures that any issues are addressed before the full release. Rolling deployments, on the other hand, can have a higher deployment frequency as changes are gradually rolled out to different parts of the infrastructure. This approach allows for faster deployment of changes, but also requires continuous monitoring to ensure the stability of the application.
Overall, the choice between Canary and Rolling deployment in AWS depends on the specific needs of your application and the level of risk tolerance. Canary deployments offer a more cautious approach with lower deployment frequency, while Rolling deployments provide a faster deployment frequency but require close monitoring to mitigate any potential issues.
|Lower deployment frequency
|Higher deployment frequency
Team Size and Expertise
When considering the deployment strategy for your AWS infrastructure, it’s important to take into account your team size and expertise.
If you have a small team with limited experience in AWS, a rolling deployment might be a better choice. With a rolling deployment, you can gradually update your infrastructure by deploying new versions of your application to a subset of instances at a time, minimizing the risk of errors or downtime. This allows your team to take a more cautious approach and troubleshoot any issues as they arise.
On the other hand, if you have a larger team with more expertise in AWS, a canary deployment might be a viable option. With a canary deployment, you can introduce new features or updates to a small percentage of users or instances before rolling it out to the entire infrastructure. This allows your team to gather feedback and monitor the performance of the new version before making it available to all users.
Ultimately, the decision between a canary and rolling deployment in AWS depends on the capabilities of your team and the level of risk you are willing to take. It’s important to evaluate your team’s expertise and resources to determine which deployment strategy is the most suitable for your specific needs.
In summary, when deciding between canary and rolling deployment in AWS:
– If you have a small team with limited expertise, consider a rolling deployment.
– If you have a larger team with more expertise, a canary deployment might be a viable option.
By considering your team size and expertise, you can make an informed decision that aligns with your resources and objectives.
When it comes to deployment in AWS, both Canary and Rolling deployment methods have their own impact on resource utilization.
Canary deployment involves gradually shifting traffic from the existing version to the new version. This means that both the old and new versions coexist for some time. As a result, resource utilization increases as both versions are running simultaneously. Depending on the scale of the application and the number of instances required, this can put a strain on the available resources.
On the other hand, Rolling deployment replaces the instances in a staggered manner. This gradual replacement allows for a smoother transition and better utilization of resources. The new version gradually takes over the workload, while the instances running the old version are gradually phased out. This ensures that resources are optimized and not wasted on running multiple versions simultaneously.
Overall, in terms of resource utilization, Rolling deployment in AWS has an advantage over Canary deployment. By gradually replacing instances, it provides a balanced approach that minimizes resource wastage and ensures optimal utilization.
What is a canary deployment?
A canary deployment is a deployment technique in which a new version of an application is gradually rolled out to a subset of users or machines, allowing for early detection of bugs or issues before rolling out the new version to the entire user base.
How does a canary deployment work in AWS?
In AWS, a canary deployment can be achieved using services like AWS Lambda and AWS CodeDeploy. The new version of the application is deployed to a small number of instances or users, and their behavior is closely monitored to ensure that the new version is performing as expected. If any issues are detected, the deployment can be easily rolled back without affecting the rest of the users or machines.
What are the benefits of using a canary deployment?
Using a canary deployment allows for early detection of bugs or issues in a new version of an application. It also reduces the risk of deploying a faulty version to the entire user base. Additionally, canary deployments allow for gradual ramp-up of the new version, which helps to minimize any impact on the overall user experience.
What is a rolling deployment?
A rolling deployment is a deployment technique in which a new version of an application is gradually rolled out to the entire user base, with no downtime. This is achieved by deploying the new version in small increments, while keeping the old version running until the new version is fully deployed.
How does a rolling deployment work in AWS?
In AWS, a rolling deployment can be achieved using services like AWS Elastic Beanstalk or AWS CodeDeploy. The new version of the application is deployed to a small number of instances at a time, and their behavior is monitored to ensure that the new version is performing as expected. If any issues are detected, the deployment can be easily rolled back without affecting the rest of the user base.