pontoNETpt
A comunidade PontoNetPT está direccionada a todos os programadores que trabalhem com a plataforma .NET.
Ambiente de testes

O que eu considero que é um ambiente de testes: uma réplica exacta do ambiente de produção, mas com dados dummy. Algo onde facilmente um developer possa fazer login, navegar pelas aplicações web, fazer acções, etc.

Eu diria que um ambiente de testes é fundamental. Mas infelizmente onde trabalho não há nada disto e pelo que falo com outras pessoas isto é normal. Quando não há ambiente de testes, acontece isto:

  1. Chega um gajo novo à empresa e tem de implementar uma funcionalidade
  2. Enquanto conhece os cantos à casa, não consegue fazer logins, não consegue experimentar funcionalidades nenhumas porque os ambientes estão todos desactualizados ou em baixo
  3. Além de estar a ser improdutivo, tem de ir chatear outros colegas para lhe prepararem o ambiente
  4. Por vezes preparar um ambiente não é trivial...

E não é trivial porque, na minha opinião, um processo de deploy para produção devia passar pelos seguintes passos:

  1. Full build (eu já nem falo em testes...)
  2. Especificação do deploy num documento qualquer: infelizmente é normal termos uma equipa que desenvolve e outra que faz deploy. Normalmente estas instruções vão num documento word passo a passo; eu acho que deveriam ir num makefile qualquer (tipo nant)
  3. A equipa de desenvolvimento corre os passos de deploy no ambiente de testes, e de seguida testa as funcionalidades
  4. Se está tudo bem, então segue-se o mesmo procedimento para produção

Nota que o passo 3 pode poupar muitos problemas e tempo, pois permite desde logo o despiste de vários problemas. Agora, há outro pormenor importante... se estes passos não forem corridos em todas as máquinas que que têm o projecto, vamos ficar com deploys em várias máquinas que estão outdated, levando assim a um problema de ambientes que prejudica o desenvolvimento. E aqui também incluo as máquinas dos developers... Porque muitas vezes um update não é algo tão simples como fazer um update ao código.

É que isto é diferente de integração contínua, em que sabemos que um full deploy do zero funciona bem. Na prática temos ambientes onde temos de ir fazendo updates progressivos, sem poder fazer um fresh install. Basta pensar em bases de dados.

Sendo esta problemática dos deploys e dos ambientes tão comum e tão error-prone, pergunto-me como é possível empresas andarem com processos cowboy e metodologias completamente Change and Pray.


Posted 25-10-2007 17:11 por pre

Comments

Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
He pá...Se nao fosse porque, diria que leste ou andas a ler o mesmo livro que eu... :P
Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
"infelizmente é normal termos uma equipa que desenvolve e outra que faz deploy"

Porquê infelizmente? É assim que as coisas devem ser e se assim não funciona é porque algo está mail
Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
@Nuno: qual é?

@Miguel
E porque é que estaria mal de outra forma? Só o facto de teres outra equipa estranha a fazer aquilo que tu sabes fazer é logo uma boa fonte de entropia.

Agora, há cenários onde tem mesmo de haver essa equipa, por N razões... sendo que todas as que conheço, são políticas. :-)
Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
Bom, o livro é: The Career Programmer, olha aí o link
http://www.amazon.co.uk/exec/obidos/ASIN/1590596242/203-6342489-8567968

Quanto ao que diz o Miguel, concordo tb com ele. O ideal é serem equipas diferentes a fazer o deployment e a outra a desenvolver. É preciso que que quem desenvolve faça as coisas direitas para nao haver confusao para quem vai fazer o deploy ;)
Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
Mas porque é que é ideal ser outra equipa, quando um deploy é basicamente:
- Compilar coisas
- Copiar ficheiros
- Correr scripts
- Alterar configurações

Sinceramente não percebo. :)
Há cenários onde tem mesmo de ser assim. Por exemplo, num banco convém que a equipa de DEV não tenha acesso às máquinas de produção. Mas lá está, como disse, são motivos políticos.

Outro motivo é que as entradas em produção são feitas de noite e podem ser morosas.
Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
Hehehe. Se calhar, é comodismo. Mas se eu não tiver que ir fazer deployments, tenho mais tempo para desenvolver. A "minha" principal razão é essa. Além disso, quem é que depois dá suporte ao cliente? A equipa de DEV? Ou a mesma equipa que fez o deploy no cliente? ;)
Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
A equipa de desenvolvimento serve para desenvolver, não para colocar em produção.
Para isso haverá outra equipa que pega no que a equipa de desenvolvimento fez e compila para colocar em produção. Não tem lógica a equipa de desenvolvimento aceder ao ambiente de produção. Deve, isso sim, ter um ambiente de desenvolvimento igual ao ambiente de produção.
Anonymous wrote re: Ambiente de testes
on 1-7-2009 0:53
Também estou de acordo com o que disse o Miguel.
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
He pá...Se nao fosse porque, diria que leste ou andas a ler o mesmo livro que eu... :P
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
"infelizmente é normal termos uma equipa que desenvolve e outra que faz deploy"

Porquê infelizmente? É assim que as coisas devem ser e se assim não funciona é porque algo está mail
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
@Nuno: qual é?

@Miguel
E porque é que estaria mal de outra forma? Só o facto de teres outra equipa estranha a fazer aquilo que tu sabes fazer é logo uma boa fonte de entropia.

Agora, há cenários onde tem mesmo de haver essa equipa, por N razões... sendo que todas as que conheço, são políticas. :-)
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
Bom, o livro é: The Career Programmer, olha aí o link
http://www.amazon.co.uk/exec/obidos/ASIN/1590596242/203-6342489-8567968

Quanto ao que diz o Miguel, concordo tb com ele. O ideal é serem equipas diferentes a fazer o deployment e a outra a desenvolver. É preciso que que quem desenvolve faça as coisas direitas para nao haver confusao para quem vai fazer o deploy ;)
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
Mas porque é que é ideal ser outra equipa, quando um deploy é basicamente:
- Compilar coisas
- Copiar ficheiros
- Correr scripts
- Alterar configurações

Sinceramente não percebo. :)
Há cenários onde tem mesmo de ser assim. Por exemplo, num banco convém que a equipa de DEV não tenha acesso às máquinas de produção. Mas lá está, como disse, são motivos políticos.

Outro motivo é que as entradas em produção são feitas de noite e podem ser morosas.
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
Hehehe. Se calhar, é comodismo. Mas se eu não tiver que ir fazer deployments, tenho mais tempo para desenvolver. A "minha" principal razão é essa. Além disso, quem é que depois dá suporte ao cliente? A equipa de DEV? Ou a mesma equipa que fez o deploy no cliente? ;)
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
A equipa de desenvolvimento serve para desenvolver, não para colocar em produção.
Para isso haverá outra equipa que pega no que a equipa de desenvolvimento fez e compila para colocar em produção. Não tem lógica a equipa de desenvolvimento aceder ao ambiente de produção. Deve, isso sim, ter um ambiente de desenvolvimento igual ao ambiente de produção.
Anonymous wrote re: Ambiente de testes
on 2-7-2009 1:43
Também estou de acordo com o que disse o Miguel.

Add a Comment

(requerido)  
(opcional)
(requerido)  
Remember Me?
If you can't read this number refresh your screen
Enter the numbers above:  
Powered by Community Server (Commercial Edition), by Telligent Systems