O documento discute a abordagem de Infraestrutura como Código para gerenciar recursos de nuvem de forma declarativa através de código. É apresentado o Terraform como uma ferramenta para definir, criar e gerenciar infraestrutura de forma reprodutível através de arquivos de configuração de estado. Os benefícios incluem ter um ambiente explicitamente documentado, um processo declarado e controle de planejamento de alterações, porém existem desafios como a dificuldade de testar mudanças de forma eficiente.
4. QUAL DESSES CARAS É A MAQUINA DE
PRODUÇÃO?
Desenvolvedor perdido
INFRAESTRUTURA COMO CÓDIGO
5. ESSA MÁQUINA FAZ O QUE EXATAMENTE
AQUI?
Desenvolvedor perdido
INFRAESTRUTURA COMO CÓDIGO
6. O BANCO NÃO É ESSE RDS QUE ESTÁ
LIGADO NÃO?
Desenvolvedor perdido
INFRAESTRUTURA COMO CÓDIGO
7. INFRAESTRUTURA COMO CÓDIGO
ISSO AQUI É SÓ 10% DAS TELAS QUE TEM QUE ENTRAR PRA CRIAR SUA MÁQUINA EM UM AMBIENTE DE PRODUÇÃO NA AWS
8.
9. INFRAESTRUTURA COMO CÓDIGO
▸ CANSATIVO E SUJEITO A FALHA HUMANA
▸ DEPENDE DIRATAMENTE DA CLOUD PARA DEDUZIR QUAIS RECURSOS
ESTÃO SENDO CONFIGURADOS
▸ AS REGRAS FICAM OCULTAS DENTRO DA CONFIGURAÇÃO DA
INFRAESTRUTURA
▸ SE VOCÊ UTILIZAR OS CLI’S DE CADA NUVEM, MESMO ASSIM VAI FICAR
FALTANDO CONTROLAR OS SERVIÇOS QUE NÃO SÃO DA NUVEM, E VOCÊ
NÃO TEM CONTROLE DE ESTADO E REFERÊNCIA.
10. INFRAESTRUTURA COMO CÓDIGO
DICIONÁRIO
▸ ESTADO: SITUAÇÃO ATUAL EM QUE SE ENCONTRA SEUS RECURSOS, O QUE
IMPEDE DE AO MANDAR EXECUTAR DUAS VEZES A DEMANDA DE UMA
MAQUINA X, NÃO TEREMOS A TRISTEZA DE ENCONTRAR DUAS MÁQUINAS
X NO AMBIENTE.
12. INFRAESTRUTURA COMO CÓDIGO
▸ PODEMOS UTILIZAR ORQUESTRADORES PARA RESOLVER SERVIÇOS, MAS
NÃO ESTAREMOS USANDO 100% DA NOSSA NUVEM.
▸ MISTURAR NUVENS É O I-N-F-E-R-N-O
▸ MISTURAR CONTAS DIFERENTES NA MESMA NUVEM É IGUAL O ITEM ACIMA
▸ TEMOS QUE TER UM CONTROLE MUITO FORTE E GERENCIAR MUITA, MAS
MUITA PERMISSÃO PRA TERMOS A NOSSA INFRA ENXUTA
▸ NÃO TEMOS CONTA DE TODO ECOSSISTEMA DE SERVIÇOS QUE ENVOLVE
NOSSA SOLUÇÃO
15. INFRAESTRUTURA COMO CÓDIGO
PLAYERS INTERESSANTES ( MINHA OPINIÃO SOBRE )
▸ CLOUDFORMATION: SEMPRE COM CAPACIDADE PRA ATENDER 100% DOS
SERVIÇOS DA AWS, MAS ALÉM DE SER EM JSON ( CONFIGURAÇÕES
GIGANTES MAS NADA QUE UMA BOA MONTAGEM E A UI DELES AJUDE ),
SÓ RESOLVE SERVIÇOS DA AMAZON.
▸ ANSIBLE: MAIS FORTE E RICO EM RECURSOS NO MERCADO, MAS DEIXA
ITENS ESSENCIAIS PRA GERENCIAR INFRA NO ANSIBLE TOWER, QUE É A
VERSÃO PAGA, VOCÊ NÃO TEM UM CONTROLE CLARO DAONDE É
GERENCIADO O ESTADO E TÃO POUCO PODE CONFIGURAR. ALÉM DISSO
USA YAML, NO QUAL EU SOU DANADO PRA ERRAR ESPAÇAMENTO.
20. INFRAESTRUTURA COMO CÓDIGO
▸ Podemos interligar todos os serviços e configurações
▸ Podemos guardar o estado e aproveitar pra evitar decorar e usá-los como
referência
▸ Podemos modularizar trabalhos repetitivos
▸ Podemos mapear o que temos.
▸ uma vez interligado não se preocupe o que vai rodar primeiro, vai na raiz do
projeto e execute, terraform sabe gerenciar dependencias.
21. INFRAESTRUTURA COMO CÓDIGO
▸ terraform init
▸ terraform plan
▸ terraform apply
▸ seja feliz ( se tu fez seu trabalho direitinho é claro )
24. INFRAESTRUTURA COMO CÓDIGO
▸ Temos um ambiente explicitamente documentado
▸ Todo o processo é declarado detalhadamente
▸ Podemos levantar a qualquer momento os elementos envolvidos no projeto
▸ Temos controle de planejamento de alteração na infra
▸ Podemos usar o github pra gerenciar alterações na infraestrutura e seus
serviços
25. INFRAESTRUTURA COMO CÓDIGO
PROBLEMAS
▸ Não existe um meio eficiente de testar
▸ Teste unitário não existe
▸ Nem tudo que terraform deixa pode acontecer de verdade