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

Infra top com GitOps (Darkmira Tour PHP 2019)

Infra top com GitOps (Darkmira Tour PHP 2019)

Palestra apresentada dia 08 de junho de 2019 no Darkmira Tour PHP 2019 em Fortaleza - CE (https://php.darkmiratour.rocks/2019/schedule.html). 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, por alguns problemas com acesso ssh via rede da universidade gravamos a demo posteriormente e disponibilizamos aqui: https://youtu.be/Q00vfAZuQ4I

280fecb4f048de5ecf36bec281609ea4?s=128

Wellington F. Silva

June 08, 2019
Tweet

Transcript

  1. Infra top com GitOps Darkmira Tour PHP 2019

  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