Implementing Continuous Deployment in Kubernetes
Implementing Continuous Deployment in Kubernetes is not an easy task, as orchestrating releases and deployments can become a really daunting challenge. Kubernetes provides useful mechanisms to upgrade and rollback certain components such as Deployments or StatefulSets, but there are no native ways of orchestrating releases of an entire application, which is usually made up of several components, most of them without a dedicated lifecycle controller.
There are release management and deployment tools that offer integrations for Kubernetes clusters, and this release/deployment phase can be also implemented in a more ad-hoc way by means of CD pipelines using an automation server (Jenkins, DroneCI, you name it…). However, this approach implies dedicated pipelines or extra deployment tools from where deployments are orchestrated and that need to be managed. GitOps removes the need for this final segment within the CD flow.
In this talk several GitOps tools will be presented, reviewed and finally a summary comparison of the tools will be assessed.