Work in progress |
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.
Applications have their own life cycle, so we should be able to execute independent deployment. All the applications and dependencies will not change their version at the same time.
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.
Those are the different Cloud Native
deployment strategies that we have developed, you can click on each one and test it.
- Blue/Green using Openshift Pipelines
- Blue/Green using Argo Rollouts
- Canary using Openshift Service Mesh
- Canary using Argo Rollouts
- Canary using Argo Rollouts and Openshift Service Mesh (Work in progress)
Those are the advantages and disadvantages of all of those deployment strategies:
Advantages:
- Minimize downtime
- Rapid way to rollback
Disadvantages:
- Backward compatibility
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 |