Ambiente de preparação, como lidar com o nome de domínio?

5

Para quem não está familiarizado com o termo "teste", ele consiste em implantar seu código de maneira privada em um servidor de produção (ou clone do servidor) para garantir que nada seja interrompido quando você for ao vivo .

Eu geralmente coloco meu código no domínio staging.example.com onde example.com é meu domínio de produção.

O problema com o qual me deparo freqüentemente é quando parte da lógica do aplicativo depende do nome do domínio, especialmente se o nome do domínio for codificado em algum lugar.

Como você lida com essa situação, presumindo que os ambientes de preparação e produção estejam no mesmo servidor?

    
por Olivier Lalonde 16.12.2010 / 21:13

4 respostas

5

Você pode adicionar um IP de alias (ou usar a outra NIC) e vincular o IIS ou o Apache ao host / servidor virtual do servidor de temporariedade a esse endereço IP específico; Em seguida, você poderia criar uma entrada de arquivo HOSTS para domain.com para resolver esse novo endereço IP com alias (ou secundário) em sua máquina de teste (ou se quiser acesso de toda a LAN à preparação por meio de domain.com, você criaria gravar no seu servidor DNS da LAN).

É claro que você não conseguirá acessar o servidor real, pois o novo registro A ou a entrada do arquivo HOSTS resolverá o endereço IP incorreto até ser comentado ou removido.

    
por 16.12.2010 / 22:31
6

Eu projeto todos os aplicativos para extrair informações de um banco de dados. Todo meu trabalho é em java. Estenda a classe java.util.Properties para que tudo seja extraído de um banco de dados, não de um arquivo. A única coisa que é diferente de servidor para servidor é a entrada JNDI para a fonte de dados. Toda a sua lógica sobre o que fazer é encapsulada na classe que estende a classe java.util.Properties.

Isso facilita o deslocamento de DEV - > UAT - > STAGING - > PROD. Nós temos zero alterações de código, sem DNS mucking, absolutamente Não Reconstruindo arquivos WAR quando vai de UAT - > STAGING - > PROD.

Você lida com desenvolvedores que não trabalham no mesmo ambiente, o DNS mucking / Virutal IPS pode se tornar difícil de depurar.

Isso também facilita a vida quando você começa a escalar quando você tem um ambiente de carga balanceada / em cluster. Tentar lidar com DNS / IPS virtual em seu aplicativo nesse ponto quando a ampliação é muito difícil e adiciona mais partes móveis que podem ser quebradas.

    
por 16.12.2010 / 23:51
2

Eu sempre configuro o servidor de temporariedade para responder no domínio real e, em seguida, alterar meu arquivo de hosts locais para apontar o nome de domínio real para o endereço IP do servidor de temporariedade. Claro que isso só funciona se você tiver servidores separados, o que você deve fazer!

Existem alguns utilitários para o windows alterar o arquivo de hosts na hora, no mac eu uso o Gas Mask. No Windows, você pode precisar liberar o dns (ipconfig / flushdns) no mac. O Gas Mask o altera assim que você clicar em aplicar.

    
por 16.12.2010 / 21:32
2

Você pode configurar um servidor DNS com visualizações. Na exibição interna, retorne os IPs do seu ambiente de preparação. Para evitar conflitos, configure apenas os clientes de teste para usar esses servidores DNS.

    
por 17.12.2010 / 04:36