Skip to content

Commit

Permalink
Add Deployment Strategies comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
David Severiano committed Jun 26, 2024
1 parent db7bd7c commit 067b5e1
Showing 1 changed file with 9 additions and 26 deletions.
35 changes: 9 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# Cloud Native Deployment Strategies

| :warning: WARNING |
|:---------------------------|
| Work in progress |

## Introduction

One important topic in the `Cloud Native` is the `Microservice Architecture`. We are no longer dealing with one monolithic application. We have several applications that have dependencies on each other and also have other dependencies like brokers or databases.
Expand All @@ -12,7 +8,7 @@ Applications have their own life cycle, so we should be able to execute independ

Another important topic in the `Cloud Native` is the `Continuous Delivery`. If we are going to have several applications doing deployments independently we have to automate it. We will use **Helm**, **Openshift GitOps**, and of course **Red Hat Openshift** to help us.

**In this repository we are going to test and compare different deployments strategies with `Cloud Native` applications. We will see real examples of how to install, deploy and manage the life cycle of `Cloud Native` applications using those strategies.**
**In this repository, we are going to test and compare different deployments strategies with `Cloud Native` applications. We will see real examples of how to install, deploy and manage the life cycle of `Cloud Native` applications using those strategies.**

## Deployment Strategies

Expand All @@ -26,28 +22,15 @@ Those are the different `Cloud Native` deployment strategies that we have develo



Those are the advantages and disadvantages of all of those deployment strategies:

Advantages:

- Minimize downtime
- Rapid way to rollback

Disadvantages:

- Backward compatibility

## Deployment Strategies comparison

This is the comparison between the different strategy:

| Name | Advantage | Disadvantage |
| ------------------------------------- | --------- | ------------ |
| Blue/Green Openshift Pipelines | | |
| Blue/Green Argo Rollouts | | |
| Canary Argo Rollouts | | |
| Canary Service Mesh | | |
| Canary Argo Rollouts and Service Mesh | | |

Here is a comparison table of the advantages and disadvantages of each deployment strategy based on the provided articles:

| **Deployment Strategy** | **Advantages** | **Disadvantages** |
|-------------------------|----------------|--------------------|
| **Blue-Green Deployment with OpenShift Pipelines** | - **Minimal Downtime**: Near-instantaneous switch between environments reduces downtime.<br>- **Easy Rollback**: Immediate rollback capability if the new version fails.<br>- **Isolation**: Complete isolation of new version for thorough testing. | - **High Resource Cost**: Requires maintaining two identical environments, doubling infrastructure costs.<br>- **Complex Data Management**: Challenges in synchronizing databases across environments.<br>- **Configuration Complexity**: Requires significant setup and maintenance effort. |
| **Blue-Green Deployment with Argo Rollouts** | - **Flexible Traffic Management**: Allows for easy traffic redirection during deployment.<br>- **Rollback Capability**: Simplified rollback to previous version in case of issues.<br>- **Seamless Transition**: Users experience minimal interruption during deployment. | - **Configuration Complexity**: Requires careful configuration and maintenance.<br>- **Limited Traffic Management**: Does not offer fine-grained control over traffic distribution​ |
| **Canary Deployment with OpenShift Service Mesh** | - **Flexible Traffic Management**: Allows for easy traffic redirection during deployment.<br>- **Fine-Grained Control**: Offers detailed traffic management and performance monitoring.<br>- **Reduced Risk**: Identifies issues early with limited user impact. | - **Monitoring Requirement**: Requires continuous monitoring and analysis to manage rollout.<br>- **Complex Setup**: Traffic routing and management can be technically challenging. |
| **Canary Deployment with Argo Rollouts** | - **Flexible Traffic Management**: Allows for easy traffic redirection during deployment.<br>- **Rollback Capability**: Easily pauses and rolls back in case of issues.<br>- **Seamless Updates**: Minimizes user disruption by gradually introducing changes. | - **Increased Complexity**: Requires sophisticated traffic routing and monitoring tools.<br>- **Constant Monitoring Needed**: Demands continuous observation to detect and address issues.<br>- **Resource Overuse Potential**: Gradual rollouts can temporarily increase resource usage. |
| **Canary Deployment with Argo Rollouts and OpenShift Service Mesh** | - **Combined Strengths**: Leverages both tools for enhanced traffic management and observability.<br>- **Enhanced Observability**: Provides comprehensive monitoring capabilities.<br>- **Reduced Risk**: Combines incremental rollout with robust monitoring to minimize failure impact. | - **High Complexity**: Requires expertise in both tools for effective deployment and management.<br>- **Increased Monitoring**: Demands more extensive monitoring efforts.<br>- **Complex Setup**: Integration of multiple tools can complicate the deployment process. |

0 comments on commit 067b5e1

Please sign in to comment.