Slide 1

Slide 1 text

Infra top com GitOps Meetup Docker SP #27

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Agenda • O que é Gitops • CI/CD vs Gitops • Flux • Como funciona

Slide 4

Slide 4 text

O que é GitOps?

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

GitOps • Alterações por commit / pull request

Slide 7

Slide 7 text

GitOps • Alterações por commit / pull request • Mantém 1 fonte de verdade para todos operadores

Slide 8

Slide 8 text

–Kelsey Hightower
 https://youtu.be/07jq-5VbBVQ?t=208 “kubectl is the new ssh”

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Posso fazer SVNOps?

Slide 15

Slide 15 text

E MercurialOps?

Slide 16

Slide 16 text

E CVSOps?

Slide 17

Slide 17 text

OutrosOps?

Slide 18

Slide 18 text

Alternativas Sim pode.

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

CI/CD tradicional

Slide 22

Slide 22 text

CI/CD Git Artifact / 
 Registry Infraestrutura CI/CD RW RO RW RW RO Test / build / config / deploy RW Devs

Slide 23

Slide 23 text

Com Flux

Slide 24

Slide 24 text

Flux Git Artifact / 
 Registry Infraestrutura / Kubernetes CI RW RO RW Test / build Flux RW RW RO Devs

Slide 25

Slide 25 text

Por que Flux?

Slide 26

Slide 26 text

Por que Flux? • Feito pela Weaveworks

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Como instalar o Flux?

Slide 33

Slide 33 text

Instalando Flux • Ter um cluster kubernetes rodando

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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.

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

–Linus Torvalds
 https://lkml.org/lkml/2000/8/25/132 “Talk is cheap. Show me the code.”

Slide 39

Slide 39 text

Nem tudo são flores Para o Flux!

Slide 40

Slide 40 text

Contras • Muito permissivo por padrão

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

Contras • Muito permissivo por padrão • Documentação completa mas meio dispersa • Desenvolvido apenas para Git e Kubernetes

Slide 43

Slide 43 text

Obrigado!
 Slides: https://speakerdeck.com/wsilva