Infra top com GitOps (Meetup Docker SP #27)

Infra top com GitOps (Meetup Docker SP #27)

Palestra apresentada dia 27 de junho de 2019 no 27º Meetup Docker em São Paulo (https://events.docker.com/events/details/docker-sao-paulo-presents-docker-sao-paulo-meetup-27-elo7-1/). Conceituamos o que é o GitOps, características, comparamos ao modelo tradicional de CI/CD e demostramos ao vivo como instalar, como fazer ele monitorar e aplicar mudanças rasteradas em repositórios git e também como ele rastreia e faz deploy de imagens atualizadas. Segue link para vídeo com demo apresentada: https://youtu.be/Q00vfAZuQ4I

280fecb4f048de5ecf36bec281609ea4?s=128

Wellington F. Silva

June 26, 2019
Tweet

Transcript

  1. Infra top com GitOps Meetup Docker SP #27

  2. Wellington F. Silva contato: @_wsilva nicks: wsilva, boina, tom, fisi*

    funções: pai, tec. telecom, programador, sysadmin, docker community leader, instrutor, escritor, zend certified engineer e docker certified associate * deprecation in favor of Well
  3. Agenda • O que é Gitops • CI/CD vs Gitops

    • Flux • Como funciona
  4. O que é GitOps?

  5. O que é GitOps? Modelo de operação baseado no Git

  6. GitOps • Alterações por commit / pull request

  7. GitOps • Alterações por commit / pull request • Mantém

    1 fonte de verdade para todos operadores
  8. –Kelsey Hightower
 https://youtu.be/07jq-5VbBVQ?t=208 “kubectl is the new ssh”

  9. GitOps • Alterações por commit / pull request • Mantém

    1 fonte de verdade para todos operadores • Facilita deploy / rollback de aplicações
  10. GitOps • Alterações por commit / pull request • Mantém

    1 fonte de verdade para todos operadores • Facilita deploy / rollback de aplicações • Facilita automação
  11. GitOps • Alterações por commit / pull request • Mantém

    1 fonte de verdade para todos operadores • Facilita deploy / rollback de aplicações • Facilita automação • Facilita auditoria de sistema
  12. GitOps • Alterações por commit / pull request • Mantém

    1 fonte de verdade para todos operadores • Facilita deploy / rollback de aplicações • Facilita automação • Facilita auditoria de sistema • Separa melhor responsabilidades entre CI e CD
  13. GitOps • Alterações por commit / pull request • Mantém

    1 fonte de verdade para todos operadores • Facilita deploy / rollback de aplicações • Facilita automação • Facilita auditoria de sistema • Separa melhor responsabilidades entre CI e CD • Em caso de desastre as aplicações e a infra estão no Git
  14. Posso fazer SVNOps?

  15. E MercurialOps?

  16. E CVSOps?

  17. OutrosOps?

  18. Alternativas Sim pode.

  19. Alternativas Sim pode. A ideia é • rastrear e versionar

    as mudanças usando um SCM (~199% das vezes Git)
  20. Alternativas Sim pode. A ideia é • rastrear e versionar

    as mudanças usando um SCM (~199% das vezes Git) • ter um daemon responsável por integrar as alterações na sua plataforma
  21. CI/CD tradicional

  22. CI/CD Git Artifact / 
 Registry Infraestrutura CI/CD RW RO

    RW RW RO Test / build / config / deploy RW Devs
  23. Com Flux

  24. Flux Git Artifact / 
 Registry Infraestrutura / Kubernetes CI

    RW RO RW Test / build Flux RW RW RO Devs
  25. Por que Flux?

  26. Por que Flux? • Feito pela Weaveworks

  27. Por que Flux? • Feito pela Weaveworks • Fácil implantar

  28. Por que Flux? • Feito pela Weaveworks • Fácil implantar

    • Simples
  29. Por que Flux? • Feito pela Weaveworks • Fácil implantar

    • Simples • Free
  30. Por que Flux? • Feito pela Weaveworks • Fácil implantar

    • Simples • Free • Pronto para Kubernetes
  31. Por que Flux? • Feito pela Weaveworks • Fácil implantar

    • Simples • Free • Pronto para Kubernetes • Faz track e deploy de novas versões das imagens das nossas aplicações
  32. Como instalar o Flux?

  33. Instalando Flux • Ter um cluster kubernetes rodando

  34. Instalando Flux • Ter um cluster kubernetes rodando • Clonar

    https://github.com/weaveworks/flux.git
  35. Instalando Flux • Ter um cluster kubernetes rodando • Clonar

    https://github.com/weaveworks/flux.git • Alterar deploy/flux-deployment.yaml de acordo com suas necessidades e aplicar.
  36. Instalando Flux • Ter um cluster kubernetes rodando • Clonar

    https://github.com/weaveworks/flux.git • Alterar deploy/flux-deployment.yaml de acordo com suas necessidades e aplicar. • Ou usar helm e instalar com as flags de acordo com suas necessidades
  37. Instalando Flux • Ter um cluster kubernetes rodando • Clonar

    https://github.com/weaveworks/flux.git • Alterar deploy/flux-deployment.yaml de acordo com suas necessidades e aplicar. • Ou usar helm e instalar com as flags de acordo com suas necessidades • Pegar ssh key (fluxctl identity) colocar no repo a ser monitorado
  38. –Linus Torvalds
 https://lkml.org/lkml/2000/8/25/132 “Talk is cheap. Show me the code.”

  39. Nem tudo são flores Para o Flux!

  40. Contras • Muito permissivo por padrão

  41. Contras • Muito permissivo por padrão • Documentação completa mas

    meio dispersa
  42. Contras • Muito permissivo por padrão • Documentação completa mas

    meio dispersa • Desenvolvido apenas para Git e Kubernetes
  43. Obrigado!
 Slides: https://speakerdeck.com/wsilva