2. Whoami
Cearense, cabra da peste,
resido em Floripa, trabalho
com tecnologia há 16 anos,
formado em Sistemas de
Informação, sysadmin root,
casado 14 anos, Pai do
Thomas, Skatista poser, Unix-
like addict e Cloud Computing
e Cloud Native Evangelist, SRE
na Pipefy.
4. Evoluir a infraestrutura, operações, segurança na mesma velocidade da
aplicação
Os times estarem na mesma página quando se trata de modificações referente
ao ambiente ou que possam causar impacto em determinada aplicação
Quebrar as barreiras entre Squads na Engenharia
Desenvolvedores precisam criar infraestrutura a todo momento
11. GITOPS
GitOps = IaC + Pull Requests + CI/CD with Anabolic Steroids
GitOps é uma maneira de fazer o gerenciamento de cluster do Kubernetes e
entrega de aplicativos e infraestrutura. Ele funciona usando Git como uma
única fonte de verdade para infraestrutura declarativa e aplicativos. Com o Git
no centro de seus pipelines de entrega, os desenvolvedores, podem fazer
solicitações pull para acelerar e simplificar as implantações de aplicativos e
tarefas operacionais.
Good question!
What was really or issue?
Where was the pain?
What are we aiming to solve?
Let’s keep going
Estamos falando de cultura self service, separar a infra estrutura da aplicação da aplicação não é um caminho que ajuda na evolução
Muitas alterações principalmente em ambientes cloud native precisam ser ontime, a aplicação precisa daquele recurso de infra no momento do deploy
Precisa de solicitação pro time de ops quando necessita de algo de infra, muitas vezes o time não tem muito tempo ou não consegue atender a demanda no momento que o Desenvolvedor precisa
Podemos colocar um chapter de SRE/Devops que atenda essa demanda pra cada time,nem sempre é possivel ter uma quantidade de Ops que atenda o time de Dev
A ideía é o time de Ops criar um framework (modulos, codigos reutilizaveis) que os devs consigam utilizar e desenvolver infraestrutura sem ter um conhecimento muito avançado e o mais importante sem a necessidade de ter acesso Administrativo a tudo
Alterações manuis além de ser um problema para a empresa, não escala, não evolui e não tem muito valor, pois codigo é ativo da empresa, mais dificil de escalar, será preciso aumentar o time de ops que permissoes para aletração para criar multiplos ambientes, o risco de erro é maior, não automatiza e não permite criar testes automatizados
Repetir codigo, repetir manifestos
As aplicações chegaram a esse nivel de evolução porque conseguimos usar projetos, modulos, codigos de terceiros e de outros times abstraindo assim algum problema ou resolvendo rapidamente um problema especifico sem precisarmos entender muito sobre o problema em si, a lib ou dependencia se encarrega de abstrair para nós o problema, o opensource é baseado nisso, as linguagens de programação são baseadas nisso, dificilmente iremos criar codigo do zero pra tudo, até porque se pensasemos em fazer isso quando nosso projeto estivesse pronto ele já seria um legado.
What is this concept of GitOps?
What does it means and what it stand for?
Let’s see in the next slides
READ THE DEFINITION ON THE SLIDE
Alterações eram manuais
Secrets e criação de infra estrutura era sempre feita antes ou depois da aplicação mas não ao mesmo tempo
Alto risco de erros e problemas
Rollback e visibilidade era mais complicada
Uma simples alteração poderia causar um incidente e era mais dificil de identificar o que foi alterado e quando foi alterado
GUYS, this is not true!!!
(JOKE)
We use to use way more tape than hi is using on the GIF
Look: Just a small peace of tape
What a noobie!
The same code of the repositories is reflected into the cluster, all the changes is tracked
The same code of the repositories is reflected into the cluster, all the changes is tracked
O mesmo código dos repositórios é refletido no cluster, todas as mudanças são rastreadas
READ THE DEFINITION ON THE SLIDE
O reconciliador verifica as diferenças entre o código e os objetos e mostra as diferenças e sincroniza.
Diferencia desired state do current state
The ArgoCD is our reconcilier controller, the argo verify the differences between the code and the objects and show the differences and apply the syncronization.
The ArgoCD is our reconcilier controller, the argo verify the differences between the code and the objects and show the differences and apply the syncronization.
Helm , se você distribuir seus manifestos de implantação externamente , ou seja, fora de sua equipe ou mesmo de sua organização, e se contiver um alto nível de complexidade, vale a pena esconder. O Helm é sua ferramenta preferida para empacotamento e configuração de aplicativos e está muito tempo no mercado . é utilizado para entregar aplicativos prontos mas é necessario criação de templates e mais dificil de lhe dar com dependencias de terceiros
Kustomize , se os manifestos são usados principalmente dentro de sua própria equipe ou são simples o suficiente (de uma forma positiva) para evitar uma camada de abstração que esconde um monte de magia, use kustomize, é simples voce nao precisa repetir codigo e pode usar os manifestos de terceiros e fazer o override com suas configurações.
Helm , se você distribuir seus manifestos de implantação externamente , ou seja, fora de sua equipe ou mesmo de sua organização, e se contiver um alto nível de complexidade, vale a pena esconder. O Helm é sua ferramenta preferida para empacotamento e configuração de aplicativos e está muito tempo no mercado . é utilizado para entregar aplicativos prontos mas é necessario criação de templates e mais dificil de lhe dar com dependencias de terceiros
Kustomize , se os manifestos são usados principalmente dentro de sua própria equipe ou são simples o suficiente (de uma forma positiva) para evitar uma camada de abstração que esconde um monte de magia, use kustomize, é simples voce nao precisa repetir codigo e pode usar os manifestos de terceiros e fazer o override com suas configurações.
Helm , se você distribuir seus manifestos de implantação externamente , ou seja, fora de sua equipe ou mesmo de sua organização, e se contiver um alto nível de complexidade, vale a pena esconder. O Helm é sua ferramenta preferida para empacotamento e configuração de aplicativos e está muito tempo no mercado . é utilizado para entregar aplicativos prontos mas é necessario criação de templates e mais dificil de lhe dar com dependencias de terceiros
Kustomize , se os manifestos são usados principalmente dentro de sua própria equipe ou são simples o suficiente (de uma forma positiva) para evitar uma camada de abstração que esconde um monte de magia, use kustomize, é simples voce nao precisa repetir codigo e pode usar os manifestos de terceiros e fazer o override com suas configurações.