quarta-feira, 12 de outubro de 2016

Como o Docker pode nos auxiliar nos testes?


Um dos problemas mais comuns do QAs está relacionado ao ambiente de testes. Há inúmeras variáveis que podem interferir no resultado do teste como: dependências (pacotes instalados, versão, arquitetura, etc.), configurações (php.ini, Ngnix, Apache, Tomcat, etc.), dentre outras.

Considerando esse cenário você deve estar se questionando, qual a vantagem em utilizar o docker nos ambiente de testes?

Vantagens:
  • A execução em qualquer máquina sempre irá rodar de forma esperada, com bibliotecas, dependências e permissões configuradas;
  • Elimina o uso de máquina virtual específica para realização do teste;
  • Possibilita a criação de imagens* com combinações de ambientes  diferentes;
  • Imutabilidade, ou seja, você cria o container uma única vez, versiona e distribui posteriormente.
  • Padronização dos ambientes;
  • Facilidade na distribuição das atualizações de dependências, bibliotecas e parâmetros;
  • Particiona a máquina, e roda processos menores com menor consumo de recurso;
  • Elimina a história do “Na minha máquina funciona”.
Desvantagens:

  • Perda da variação de ambientes;
  •  Devs/QAs não adquirem conhecimento sobre as parametrizações do ambiente. 
Como iniciar:
  • O primeiro passo é identificar as dependências e configurações que o software necessita;
  • Crie uma imagem considerando os parâmetros mapeados. Ver:  https://docs.docker.com/engine/reference/;
  • Distribua a imagem para o seu time de QAs/Devs;
  • Institucionalize e incentive o uso.

Como o Docker pode nos auxiliar nos testes?


Um dos problemas mais comuns do QAs está relacionado ao ambiente de testes. Há inúmeras variáveis que podem interferir no resultado do teste como: dependências (pacotes instalados, versão, arquitetura, etc.), configurações (php.ini, Ngnix, Apache, Tomcat, etc.), dentre outras.

Considerando esse cenário você deve estar se questionando, qual a vantagem em utilizar o docker nos ambiente de testes?

Vantagens:
  • A execução em qualquer máquina sempre irá rodar de forma esperada, com bibliotecas, dependências e permissões configuradas;
  • Elimina o uso de máquina virtual específica para realização do teste;
  • Possibilita a criação de imagens* com combinações de ambientes  diferentes;
  • Imutabilidade, ou seja, você cria o container uma única vez, versiona e distribui posteriormente.
  • Padronização dos ambientes;
  • Facilidade na distribuição das atualizações de dependências, bibliotecas e parâmetros;
  • Particiona a máquina, e roda processos menores com menor consumo de recurso;
  • Elimina a história do “Na minha máquina funciona”.
A imagem docker a base para o contêiner docker onde tudo começa a se formar. São muito similares às imagens de disco padrão de sistema operacional.

Desvantagens:

  • Perda da variação de ambientes;
  •  Devs/QAs não adquirem conhecimento sobre as parametrizações do ambiente. 
Como iniciar:
  • O primeiro passo é identificar as dependências e configurações que o software necessita;
  • Crie uma imagem considerando os parâmetros mapeados. Ver:  https://docs.docker.com/engine/reference/;
  • Distribua a imagem para o seu time de QAs/Devs;
  • Institucionalize e incentive o uso.