Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git based application deployment patterns for Kubernetes

Git based application deployment patterns for Kubernetes

Shahidh talks about various patterns revolving around GitOps (Git + Devops) for applications deployment onto Kubernetes.

Shahidh K Muhammed

March 29, 2018
Tweet

More Decks by Shahidh K Muhammed

Other Decks in Technology

Transcript

  1. Git based application deployment patterns for Kubernetes Git ❤ K8s

  2. Shahidh K Muhammed @shahidh_k

  3. Git • Distributed version control system • Manage source code

    • Any text files can be tracked • Collaboration
  4. 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
  5. Declarative tools ❤ Git

  6. Ops • Configure, build, test, deploy • CI/CD • Monitor,

    fix • Upgrades • Rollbacks • Automation
  7. GitOps • Ops practices using Git • Use Git as

    source of truth • Drive operations through git repo • Get version control, history, peer review, and rollback • Continuous delivery - Automated pipelines • Webhooks: push to trigger build/test • PRs & merge branch to deploy
  8. GitOps - Patterns • CI builds artifacts • Updates config

    (in a git repo) • Trigger rollout (PR merge/commit) • Observe • Control
  9. GitOps - Patterns Source: Weave Works

  10. GitOps - Patterns • Use declarative configuration to define application

    and services • All changes go through git review process, none using kubectl • Use an operator in the cluster to drive observed state to desired state, as declared by the configuration in git • pre-push hook to create manifests ◦ Render templates for correct env ◦ Secrets • pre-receive hook or webhooks to build artifacts and do kubectl set-image • Power to developer • Own tooling
  11. Shahidh K Muhammed @shahidh_k Thanks for listening! Questions?