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.

184d32a034c53d328bf523c7b2ef1197?s=128

Agile Testers

March 26, 2017
Tweet

Transcript

  1. Precisamos falar sobre teste de infra Infradel Team

  2. 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)
  3. 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
  4. 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
  5. Pra que testar? Pergunta sincera...

  6. O que acontece quando não testo

  7. Como os testes eram feitos antigamente

  8. • Falta de padronização • Testes insuficientes • Sem rastreabilidade

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

    manuais teste uat prod
  10. 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
  11. 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
  12. Infraestrutura virou código!

  13. • 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
  14. Imperativo vs Declarativo

  15. Se infra virou código, precisamos testar!

  16. Necessidade de teste ops teste uat prod Teste pós UAT

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

    Testes manuais Teste pós UAT pós Prod pós
  18. 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
  19. 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
  20. TDD para infra?

  21. Soluções de teste

  22. • 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
  23. Sysadmin, você sabe desenvolver?

  24. 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
  25. Como construir seus testes!

  26. Pirâmide de testes de infra

  27. Dúvidas?

  28. Rafael Gomes: twitter.com/gomex rgomes@thoughtworks.com twitter.com/thoughtworks_pt Obrigado!