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

Rafael Gomes - Precisamos falar sobre teste automatizado de infraestrutura

Rafael Gomes - Precisamos falar sobre teste automatizado de infraestrutura

Infraestrutura está virando código e, como todo código, precisa ser testada de forma automática, pois alterar o comportamento de um ambiente sem necessidade de interação manual é uma tarefa perigosa, se executada sem nenhuma checagem automatizada.

Agile Testers

March 26, 2017
Tweet

More Decks by Agile Testers

Other Decks in Technology

Transcript

  1. 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) • Principais tecnologias ◦ Cloud (AWS) ◦ Automação de infra (Ansible, Cloudformation) ◦ Testes de infraestrutura (ServerSpec, Testinfra) ◦ Container (Docker) ◦ Programação (Python e Ruby)
  2. 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
  3. 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
  4. • Falta de padronização • Testes insuficientes • Sem rastreabilidade

    • Pouco interesse em reproduzir • Necessidade de conhecimento especializado Problemas dos testes manuais
  5. Manutenção de ambientes Dev Deploy nos Ambientes ticket ops Testes

    manuais teste uat prod Testes manuais Testes manuais Teste pós UAT pós Prod pós
  6. Manutenção de ambientes Atualização No ambiente Testes manuais ops teste

    uat prod Testes manuais Testes manuais Teste pós UAT pós Prod pós
  7. • 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
  8. Necessidade de teste ops teste uat prod Teste pós UAT

    pós Prod pós commit Dockerfile no git repo git CD Atualiza
  9. Testes manuais? Testes manuais ops teste uat prod Testes manuais

    Testes manuais Teste pós UAT pós Prod pós
  10. 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
  11. 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
  12. • 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
  13. 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