Viktor Farcic is an Open-Source Program Manager & Developer Advocate at Shipa, a member of the Google Developer Experts, Continuous Delivery Foundation Ambassadors, and Docker Captains groups, and a published author.
His big passions are DevOps, Containers, Kubernetes, Microservices, Continuous Integration, Delivery and Deployment (CI/CD), and Test-Driven Development (TDD).
He often speaks at community gatherings and conferences.
He published The DevOps Toolkit Series, DevOps Paradox, and Test-Driven Java Development., as well as courses in Udemy.
His random thoughts and tutorials can be found in his blog TechnologyConversations.com.
He is the host of The DevOps Toolkit Series YouTube channel and a co-host of the DevOps Paradox podcast.
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](https://argoproj.github.io/argo-cd/) as a tool of choice for applying GitOps, [Argo Rollouts](https://argoproj.github.io/argo-rollouts/) for progressive delivery, and [Codefresh](https://codefresh.io/) 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.