What is GitOps?

GitOps is a method used for Continuous Delivery. It uses Git as a single source of truth for infrastructures like declarative infrastructure and the applications. On Git, set delivery pipelines, make pull requests, accelerate and simplify both the application deployments and the operations task to Kubernetes. By using Git, create new features in the Applications rather than focusing on operations tasks.

  • Code – We can write our application code and push it to Git.
  • Build (Pipeline as Code) – Build pipeline code(yaml) in Git to build code using CI tools.
  • Provision (Infrastructure as Code) – Write a terraform file or Ansible playbook in Git to provision a Kubernetes cluster.
  • Deploy – Write a deployment manifest for Kubernetes or on the basis of the application.

GIT

  • Distributed Version Control System
  • Manage Source Code
  • Any Text file tracked
  • Collaboration

Ops

  • Configure,build,test,deploy
  • CI/CD
  • Monitor, fix
  • Upgrades
  • Rollbacks
  • Automation

GitOps

  • Ops practices using Git
  • Use Git as a source of truth
  • Drive operations through git repo
  • Get version control, history, peer review and rollback
  • Continuous Delivery- Automates pipelines
  • Webhooks: push to trigger build/test
  • PR’s & merge branch to deploy

GitOps Pattern

  • CI build artifacts
  • Updates Config (in a git repo)
  • Trigger Rollout(PR merge/commit)
  • Observe
  • Control

Git Source of Truth

  • Infrastructure as Code – Terraform, CloudFormation.
  • System Configuration as Code – Ansible, Chef, Puppet.
  • Application Configuration as Code – Kubernetes, Hasura.
  • Application Source Code

#insights #kubernetes #terraform #gitops pipeline #jenkins

GitOps Pipeline with Jenkins, Terraform and Kubernetes
23.95 GEEK