DevOps

GitOps Introduction – High velocity CICD for Kubernetes with Weaveworks

An operating model for Kubernetes and other cloud native technologies, providing a set of best practices that unify deployment, management and monitoring for containerized clusters and applications.

Weaveworks has pioneered and defined ‘GitOps‘ best practices:

“1. An operating model for Kubernetes and other cloud native technologies, providing a set of best practices that unify deployment, management and monitoring for containerized clusters and applications.

2. A path towards a developer experience for managing applications; where end-to-end CICD pipelines and git workflows are applied to both operations, and development. “

As the term suggests it’s an approached based on using Git as the central, single source of truth for application development and deployment. there is a ‘source of truth’ for both your infrastructure and application code, allowing development teams to increase velocity and improve system reliability. GitOps.tech offers this intro guide, where they state:

“The fundamental idea of GitOps can be summarized as operations managed and performed in a declarative way with Git as the source-of-truth system.”

Your system configuration is defined and stored in a version control system, with the use of software agents to detect when this changes and automatically update the production environment to match it.

This approach brings many benefits:

  • Your apps can be easily deployed and rolled back to and from Kubernetes. And even more importantly, when disaster strikes, your cluster’s infrastructure can also be dependably and quickly reproduced. This trivializes rollbacks; where you can use a `Git revert` to go back to your previous application state.
  • When you use Git workflows to manage your cluster, you automatically gain a convenient audit log of all cluster changes outside of Kubernetes. An audit trail of who did what, and when to your cluster can be used to meet SOC 2 compliance and ensure stability.
  • Continuous deployment automation with an integrated feedback control loop speeds up Mean Time to Deployment. Your team can ship 30-100 times more changes per day, increasing overall development output 2-3 times.

Your system configuration is defined and stored in a version control system, with the use of software agents to detect when this changes and automatically update the production environment to match it.

High Velocity Kubernetes

There is a ‘single source of truth’ for both your infrastructure and application code, allowing development teams to increase velocity and improve system reliability and achieve High velocity CICD for Kubernetes.

“When we say “high velocity” we mean that every product team can safely ship updates many times a day — deploy instantly, observe the results in real time, and use this feedback to roll forward or back.  The goal is for product teams to use continuous experimentation to improve the customer experience as fast as possible.

We recommend that you use the operator pattern to listen for and orchestrate service deployments to your Kubernetes cluster.  This approach is described by William Denniss in slides 15-21 of our Kubecon presentation (videoslides).  Using the operator, an agent can act on behalf of the cluster to listen to events relating to custom resource changes and apply them consistently.  In other words the operator performs reconciliation between Git and the cluster.”

Create a high velocity CICD pipeline

Tags
Show More

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Close
Close