Combining Progressive Delivery With GitOps And Continuous Delivery
Three phrases keep popping up when talking about modern workflows and development and deployment techniques. We have continuous delivery to automate the complete lifecycle of applications from a commit to a Git repository, all the way until a release is deployable to production. Then we have GitOps to define the desired states of our environments and let the machines handle the converge the actual into the desired state. Finally, there is a lot of focus on different deployment strategies grouped under progressive delivery. They are all focused on the iterative release of features to make the process safe, prevent downtime, and reduce the blast radius of potential issues.
While those three practices and the tooling behind those are focusing on specific areas, the "real" benefits are obtained when they are combined. Nevertheless, many did not yet reach that stage. Each of those practices alone can be daunting and, frankly, scary. Yet, we should go a step further and explore how to combine them together and see the benefits such a solution might provide.
Through a hands-on demo, we will combine Argo CD as a tool of choice for applying GitOps, Argo Rollouts for progressive delivery, and Codefresh for continuous delivery pipelines that will tie those two together with the rest of the steps needed in the lifecycle of our applications. If we are successful, we might remove humans from all the actions coming after pushing changes to Git repositories.
Bio: Viktor Farcic is a Principal DevOps Architect at Codefresh, a member of the Google Developer Experts, Continuous Delivery Foundation Ambassadors, and Docker Captains groups, and a published author. He published The DevOps Toolkit Series, DevOps Paradox, and Test-Driven Java Development., as well as courses in Udemy.