precisamos falar sobre testes de infraestrutura

Post on 12-Apr-2017

64 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Precisamos falar sobre teste de infra

Infradel Team

Quem somos

Infradel:● Objetivo: Consultoria para migração de projetos

do modelo centralizado para cloud, com automação e auto-serviço.

● Membros:○ Rafael Gomes (PoA - Brasil)○ Rafael Nunes (PoA - Brasil)○ Augusto Amaral (PoA - Brasil)○ Fernando Laimer (PoA - Brasil)○ Vinicius Gama (Belo Horizonte - Brasil)○ Ronak Jain (Belo Horizonte - Brasil)○ Chris Briesemeister ( Chicago - EUA)○ Luisa Emme ( Quito - Equador)

● Principais tecnologias○ Cloud (AWS)○ Automação de infra (Ansible, Cloudformation)○ Testes de infraestrutura (ServerSpec, Testinfra)○ Container (Docker)○ Programação (Python e Ruby)

Quem sou eu

Rafael Gomes:● Soteropolitano● Apaixonado por compartilhamento● Consultor na Thoughtworks● Blog: techfree.com.br● Twitter/github: @gomex● Áreas de interesse/foco:

○ Cultura DevOps○ Cloud○ Entrega contínua○ Automação de infraestrutura○ Teste de infraestrutura○ Monitoramento

O que estou fazendo de relevante agora

Livro:

http://tinyurl.com/docker-devel

● Pague quanto quiser, inclusive nada

● Não precisa saber nada de Docker

● Licenciado com Creative Commons

O que estou fazendo de relevante agora

Livro Impresso:

● Livro numerado

● Autografado

● Recompensa de R$ 40,00 com entrega

https://www.catarse.me/versao_impressa_do_livro_docker_para_desenvolvedores_c403?ref=project_link

Pra que testar?Pergunta sincera...

O que acontece quando não testo

Como os testes eram feitos antigamente

● Falta de padronização● Testes insuficientes● Sem rastreabilidade● Pouco interesse em reproduzir● Necessidade de conhecimento especializado

Problemas dos testes manuais

Manutenção de ambientes

Dev

Necessidade de Ambientes

agent1

agent2

dev

ticket ops

devTestes

manuais

git

server app A

server app Bserver app C

teste uat prod

Manutenção de ambientes

Dev

Deploy nosAmbientes

ticket ops

Testes manuais

teste

uat

prodTestes manuais

Testes manuais

Teste pós

UAT pós

Prod pós

Manutenção de ambientes

AtualizaçãoNo ambiente

Testes manuais

ops

teste

uat

prodTestes manuais

Testes manuais

Teste pós

UAT pós

Prod pós

Infraestrutura virou código!

Imperativo vs Declarativo

Automação de ambientes

ops

teste

uat

prod

Teste pós

UAT pós

Prod pós

ops

commit

no git repo

git

● Não há como atender a

demanda de infra sem automação

● Automação como método de garantia de padronização

Infra virou código

Fatos:● Atualização de servidores

não se fazem de forma manual

● Até mesmo redes já tem SDN

Se infra virou código, precisamos testar!

Necessidade de teste

ops

teste

uat

prod

Teste pós

UAT pós

Prod pós

commit Dockerfile

no git repo

git

CDAtualiza

Testes manuais?

Testes manuais

ops

teste

uat

prodTestes manuais

Testes manuais

Teste pós

UAT pós

Prod pós

Necessidade de teste

ops

teste

uat

prod

Teste pós

UAT pós

Prod pós

commit Dockerfile

no git repo

git

CD

Testa

Atualiza

TDD para infra?

Soluções de teste

● Boa documentação

● Facilidade na execução dos testes automatizados

Soluções

Fatos:● Abstração que permitem

não DEV criarem testes

● Tem boas opções escritas em ruby e python

Veja como é fácil testar automaticamente

Arquivo "test_mytest.py":def test_nginx_is_installed(Package): nginx = Package("nginx") assert nginx.is_installed assert nginx.version.startswith("1.2")

Comandos para executar o teste:

# pip install testinfra# testinfra --sudo --connection=ssh --hosts=servidor_a_ser_testado test_mytest.py

Soluções

Lista:● Serverspec

○ Escrita em ruby, mais popular

● Testinfra○ Escrita em python

● Inspec○ Escrita em ruby, mantida pela Chef

● Beaker○ Escrita em ruby, mantida pela Puppet

Sysadmin, você sabe desenvolver?

Como construir seus testes!

Pirâmide de testes de infra

Dúvidas?

Rafael Gomes:

twitter.com/gomex

rgomes@thoughtworks.com

twitter.com/thoughtworks_pt

Obrigado!

top related