Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
IN PRODUCTION
A YEAR OF GITOPS
WHAT IS CURRENTLY RUNNING IN YOUR PRODUCTION?
ABOUT ME
▸ Dmitri Lerko
▸ Ask questions https://www.linkedin.com/in/lerko/
▸ I will blog about GitOps here https://deploy....
WHAT IS GITOPS?
▸ Push > Pull
▸ Definition
▸ Making changes
WHAT IS GITOPS?
▸ Push > Pull
▸ Definition
▸ Making changes
WHAT IS GITOPS?
▸ Push > Pull
▸ Definition
▸ Making changes
CALL OF HANDS
Photo by Kaleb Nimz on Unsplash
BEFORE CLOUD, KUBERNETES, GITOPS
▸ Physical servers
BEFORE CLOUD, KUBERNETES, GITOPS
▸ Physical servers
▸ KVM VMs
BEFORE CLOUD, KUBERNETES, GITOPS
▸ Physical servers
▸ KVM VMs
▸ Jenkins
BEFORE CLOUD, KUBERNETES, GITOPS
▸ Physical servers
▸ KVM VMs
▸ Jenkins
▸ Ansible
CI WITH JENKINS
CD WITH JENKINS
▸ Also known as CIOps
SNOWFLAKEOPS
Photo by Kalle Kortelainen on Unsplash
I LOVE JENKINS
▸ 42 Tabs
▸ 268 Jobs
▸ 142 Plugins
JENKINS UI ROCKS
CLOUD NATIVE ERA
Photo by Samuel Zeller on Unsplash
CI/CD GOALS
▸ Full audit trail
CI/CD GOALS
▸ Full audit trail
▸ Everything as code
CI/CD GOALS
▸ Full audit trail
▸ Everything as code
▸ No cap on concurrency and parallelism
CI/CD GOALS
▸ Full audit trail
▸ Everything as code
▸ No cap on concurrency and parallelism
▸ Minimise configurational drift
CI/CD GOALS
▸ Full audit trail
▸ Everything as code
▸ No cap on concurrency and parallelism
▸ Minimise configurational drif...
GITOPS IS THE ANSWER
▸ Full audit trail
▸ Everything as code
▸ No cap on concurrency and parallelism
▸ Minimise configurati...
POOR MAN’S GITOPS
▸ while true
▸ git pull
▸ kubectl apply -f
▸ sleep 30
BETTER GITOPS
https://github.com/weaveworks/flux
CLOUD NATIVE CI
▸ Google Cloud Build
CLOUD NATIVE CI
▸ Google Cloud Build
▸ Minimalistic
CLOUD NATIVE CI
▸ Google Cloud Build
▸ Minimalistic
▸ Unlimited parallel builds
CLOUD NATIVE CI
▸ Google Cloud Build
▸ Minimalistic
▸ Unlimited parallel builds
▸ Declarative
CLOUD NATIVE CI
▸ Google Cloud Build
▸ Minimalistic
▸ Unlimited parallel builds
▸ Declarative
CLOUD NATIVE CI - IN THEORY
CLOUD NATIVE CI - IN PRACTICE
GITOPS BUILD STEP
▸ Use git, hub (GitHub’s CLI), yq (jq for YAML)
▸ Check out GitOps repo with git
▸ Make a branch
▸ Updat...
CLOUD NATIVE CD
GITOPS IS THE ANSWER
▸ Full audit trail
▸ Everything as code
▸ No cap on concurrency and parallelism
▸ Minimise configurati...
WHY BOTHER?
▸ Best practices
WHY BOTHER?
▸ Best practices
▸ Developer friendly
WHY BOTHER?
▸ Best practices
▸ Developer friendly
▸ Quick to try
ANY DOWNSIDES?
▸ The incident
ANY DOWNSIDES?
▸ The incident
▸ Broken YAML manifests upset GitOps
LOVEHOLIDAYS + GITOPS
▸ 11,190
LOVEHOLIDAYS + GITOPS
▸ 11,190
▸ GitHub vs kubectl
FUTURE OF GITOPS AT LOVEHOLIDAYS
▸ Istio for canary and continuous deployments
FUTURE OF GITOPS AT LOVEHOLIDAYS
▸ Istio for canary and continuous deployments
▸ Roll-out https://github.com/weaveworks/ku...
FUTURE OF GITOPS AT LOVEHOLIDAYS
▸ Istio for canary and continuous deployments
▸ Roll-out https://github.com/weaveworks/ku...
HOW TO START
https://github.com/weaveworks/flux

https://www.weave.works/blog/gitops-is-cloud-native

alternatives:

https:...
WE ARE HIRING
CAREERS.LOVEHOLIDAYS.COM
QUESTIONS?
Upcoming SlideShare
Loading in …5
×

A year of GitOps at loveholidays - Dmitri Lerko

Deck for the presentation at London DevOps on 4th of July 2019 (https://www.meetup.com/London-DevOps/events/262283493/)

  • Be the first to comment

A year of GitOps at loveholidays - Dmitri Lerko

  1. 1. IN PRODUCTION A YEAR OF GITOPS
  2. 2. WHAT IS CURRENTLY RUNNING IN YOUR PRODUCTION?
  3. 3. ABOUT ME ▸ Dmitri Lerko ▸ Ask questions https://www.linkedin.com/in/lerko/ ▸ I will blog about GitOps here https://deploy.live ▸ GCP, Kubernetes, AWS Certified
  4. 4. WHAT IS GITOPS? ▸ Push > Pull ▸ Definition ▸ Making changes
  5. 5. WHAT IS GITOPS? ▸ Push > Pull ▸ Definition ▸ Making changes
  6. 6. WHAT IS GITOPS? ▸ Push > Pull ▸ Definition ▸ Making changes
  7. 7. CALL OF HANDS Photo by Kaleb Nimz on Unsplash
  8. 8. BEFORE CLOUD, KUBERNETES, GITOPS ▸ Physical servers
  9. 9. BEFORE CLOUD, KUBERNETES, GITOPS ▸ Physical servers ▸ KVM VMs
  10. 10. BEFORE CLOUD, KUBERNETES, GITOPS ▸ Physical servers ▸ KVM VMs ▸ Jenkins
  11. 11. BEFORE CLOUD, KUBERNETES, GITOPS ▸ Physical servers ▸ KVM VMs ▸ Jenkins ▸ Ansible
  12. 12. CI WITH JENKINS
  13. 13. CD WITH JENKINS ▸ Also known as CIOps
  14. 14. SNOWFLAKEOPS Photo by Kalle Kortelainen on Unsplash
  15. 15. I LOVE JENKINS ▸ 42 Tabs ▸ 268 Jobs ▸ 142 Plugins
  16. 16. JENKINS UI ROCKS
  17. 17. CLOUD NATIVE ERA Photo by Samuel Zeller on Unsplash
  18. 18. CI/CD GOALS ▸ Full audit trail
  19. 19. CI/CD GOALS ▸ Full audit trail ▸ Everything as code
  20. 20. CI/CD GOALS ▸ Full audit trail ▸ Everything as code ▸ No cap on concurrency and parallelism
  21. 21. CI/CD GOALS ▸ Full audit trail ▸ Everything as code ▸ No cap on concurrency and parallelism ▸ Minimise configurational drift
  22. 22. CI/CD GOALS ▸ Full audit trail ▸ Everything as code ▸ No cap on concurrency and parallelism ▸ Minimise configurational drift ▸ Don’t give CI/CD a wildcard access to your environments
  23. 23. GITOPS IS THE ANSWER ▸ Full audit trail ▸ Everything as code ▸ No cap on concurrency and parallelism ▸ Minimise configurational drift ▸ Don’t give CI/CD a wildcard access to your environments
  24. 24. POOR MAN’S GITOPS ▸ while true ▸ git pull ▸ kubectl apply -f ▸ sleep 30
  25. 25. BETTER GITOPS https://github.com/weaveworks/flux
  26. 26. CLOUD NATIVE CI ▸ Google Cloud Build
  27. 27. CLOUD NATIVE CI ▸ Google Cloud Build ▸ Minimalistic
  28. 28. CLOUD NATIVE CI ▸ Google Cloud Build ▸ Minimalistic ▸ Unlimited parallel builds
  29. 29. CLOUD NATIVE CI ▸ Google Cloud Build ▸ Minimalistic ▸ Unlimited parallel builds ▸ Declarative
  30. 30. CLOUD NATIVE CI ▸ Google Cloud Build ▸ Minimalistic ▸ Unlimited parallel builds ▸ Declarative
  31. 31. CLOUD NATIVE CI - IN THEORY
  32. 32. CLOUD NATIVE CI - IN PRACTICE
  33. 33. GITOPS BUILD STEP ▸ Use git, hub (GitHub’s CLI), yq (jq for YAML) ▸ Check out GitOps repo with git ▸ Make a branch ▸ Update image version using yq ▸ Commit changes ▸ Push branch ▸ Create a PR with hub https://github.com/github/hub/releases/ https://github.com/mikefarah/yq/releases/
  34. 34. CLOUD NATIVE CD
  35. 35. GITOPS IS THE ANSWER ▸ Full audit trail ▸ Everything as code ▸ No cap on concurrency and parallelism ▸ Minimise configurational drift ▸ Don’t give CI/CD a wildcard access to your environments
  36. 36. WHY BOTHER? ▸ Best practices
  37. 37. WHY BOTHER? ▸ Best practices ▸ Developer friendly
  38. 38. WHY BOTHER? ▸ Best practices ▸ Developer friendly ▸ Quick to try
  39. 39. ANY DOWNSIDES? ▸ The incident
  40. 40. ANY DOWNSIDES? ▸ The incident ▸ Broken YAML manifests upset GitOps
  41. 41. LOVEHOLIDAYS + GITOPS ▸ 11,190
  42. 42. LOVEHOLIDAYS + GITOPS ▸ 11,190 ▸ GitHub vs kubectl
  43. 43. FUTURE OF GITOPS AT LOVEHOLIDAYS ▸ Istio for canary and continuous deployments
  44. 44. FUTURE OF GITOPS AT LOVEHOLIDAYS ▸ Istio for canary and continuous deployments ▸ Roll-out https://github.com/weaveworks/kubediff
  45. 45. FUTURE OF GITOPS AT LOVEHOLIDAYS ▸ Istio for canary and continuous deployments ▸ Roll-out https://github.com/weaveworks/kubediff ▸ Teach kubediff how to self-heal violations
  46. 46. HOW TO START https://github.com/weaveworks/flux https://www.weave.works/blog/gitops-is-cloud-native alternatives: https://argoproj.github.io/argo-cd/ https://razee.io
  47. 47. WE ARE HIRING CAREERS.LOVEHOLIDAYS.COM QUESTIONS?

×